IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

LDAP

Introducció

Ldap:Lightweight Directory Access Protocol

  • És un protocol lleuger,és ràpid,la xarxa no es satura,i el més important és que et deixa accedir a un directori
  • És un control d'aplicació,capa 4 del model TCP/IP i 7 del model OSI
  • LDAP no és una base de dades,és la forma d'accedir a la base de dades
  • És per fer directoris
  • Directori:Carpeta,organitzat amb arbre
  • LDAP és un format en arbre,és del mòdel jerarquica
  • Gestió d'usuaris i recursos d'una empresa,és poden donar d'alta usuaris

Per què Ldap?

  • És àmpliament utilitzat i suportat per múltiples aplicacions

Avantatges

  • Rapidessa en operacions de lectura
  • Fàcils de ser distribuïdes,per tal de repartir la càrrega,en definitiva molt escalable
  • Treballa amb xarxes TCP/IP

Inconvenients

  • Bastant més lentes en operacions d'escriptura o modificació(eliminació o afegir)
  • No sofisticacions en les bases de dades
  • Base de dades centralitzada on es modifiquen tots els usuaris
  • Autenticació: Linux,Postfix,Courier,Egroupware,Phpgroupware,Gforge,Jabber,Apache,Moodle, Mediawiki, Mozilla Thunderbird,Evolution, Plone, Samba, servidors de FTP...
  • Llenguatges de programació:PHP,Phyton,Ruby On Rails,Mono,Java,ASP,C,C++...
  • Estàndard Obert: (Amb implementacions tancades)
  • Hi han múltiples eines (tant lliures com privades)per treballar amb Ldap

X.500

  • X.500 és una sèrie de protocols de xarxa per oferir serveis de directori
  • Va ser creat per la ITU-T (ara CCITT) i adoptat per la OSI (ISO/IEC 9594)
  • X.500 implementava els següents protocols
    • DAP (Directory Access Protocol)
    • DSP (Directory System Protocol)
    • DISP (Directory Information Shadowing Protocol)
    • DOP (Directory Operational Bindings Management Protocol)
  • Antecessor de LDAP. LDAP és més simple i més adaptat a les necessitats actuals (suporta TCP/IP)
  • Actualment s'utilitzen els certificats X.509 en criptografia de clau pública

Arbre LDAP

  • Serà la manera que tindrà un directori de com es guardaràn les dades

Model DNS

Exemple1122.png


  • No utilitzar l'arrel,sempre crear un directori que penji
  • .net,.com,.cat,.es són dominis primaris assignats per la IANA i cada país agafa el seu subomini
  • Millor utilitzar el model DNS que el territorial
  • Nodes poden ser de 2 tipus
    • Fulles:S'acaba la jerarquia no pot tenir fills,són els OBJECTES
    • Nodes

Objectes

  • UO:És una carpeta
  • Person:És l'objecte final

Arbre Ldap

L'organització del directori segueix una estructura d'arbre invertit

  • El model és l'establert per X.500. Un directori és un arbre d'entrades de directori (nodes de l'arbre)
  • Cada entrada és pot considerar com un objecte amb un conjunt d'atributs
  • Els atributs tenen un nom, una descripció i un o més valors.
  • Cada entrada té un identificador únic anomenat Distinguished Name (DN)
  • Cada entrada té un RDN (Relative Distinguished Name) que la distingeix de la resta d'entrades del mateix node de l'arbre
  • Tothom a de tenir un DN
  • RDN és el nom del fitxer
  • Dintre la mateixa carpeta no poden haber fitxers amb el mateix DN
  • DN (Distinguished Name): fent una similitud amb un sistema de fitxers és el camí absolut al fitxer RDN (Relative Distinguished Name): és el camí relatiu a un fitxer
  • El DN d'una entrada és forma pel RDN de la entrada més el DN del node pare.
  • Per tant els DN són composicions de RDN:
DN= RDN(arrel), RDN(avi), RDN (pare), ... ,RDN(fill)

Model Territorial

Exemple1123.png


Apache Directory Studio

  • DIT: Directory information tree (l'arrel de tot,ojo que l'arrel esta per sota)


Exemple2000.png


  • Root DSE: És l'arrel de l'arrel
  • Objectes schema i system
  • Un objecte com a minim té que tenir un atribut
  • schema:És la classe,objectes possibles de la base de dades
  • Object classes:
  • Temps de compilació:
  • Temps d'execució:

Arbre Ldap

  • Objectes amb common

name (cn)

    • person:Definir persones
    • InetorgPerson:Quan vulguem definir una persona,és l'objecte més complert,inclou internet,correu electrònic,fill de organizationAllPerson
    • PosixAccount:Nom d'usuari,contes d'usuari posixAccount windows,afegirà la password,quant expira la password
    • SambaAccount:Nom d'usuari,SambaAccount per linux
    • Organization:Organitzar carpetes
    • Organization OUOrganitzar carpetes

Paràmetres

gn (givenName):Nom a seques sn(surName):Cognom

Atributs

  • Matching Rules:Compara valors
  • Syntaxes:Tipus de paràmetres
  • Description:Tipus de string

OID

  • Object identyfaied:És un identificador
  • Un objecte el podem coneixer pel nom o pel OID
  • Esta gestionat per la IANA
  • IANA:S'encarrega d'assignar les ip's,s'encarrega de que no hi haigui més d'un domini igual
  • RFC:Defineix els objectes


Oid112.png


  • Definir un objecte
  • Primer ens demanem un PEN a la següent web

www.pen.iana.org/pen/PenApplication.page

  • Utilitzarem el següent numero 1.3.6.1.4.1.37589
  • Cada cop que definim un objecte o un atribut assignarem un numero
  • Per la pràctica mirar pàg 19 de pdf LDAP1
  • Definir el MUST i el MAY
  • OID
  • Nom de l'objecte
  • Descripcio
  • Defineixen el pare SUP
  • Objectes de dos tipus:structurals,auxiliary o abstract
  • auxiliary:El podem ficar a qualsevol objecte,mai tindrem problemes,partim d'un objecte base,no estan pensades per ser objectes principals
  • structurals:Com a minim un dels objectClass a de ser structural
  • abstract:Per a objectes especials com el top
  • MAY:Són els atributs opcionals
  • MUST(Obligatori):Si no esta l'atribut MUST en un objecte es que esta definit en el pare
Oid113.png


Exercici LDAP

  • Primer creem l'object class
Oid114.png


  • On seguim tots aquestos passos
  • Exportem els fitxers a Apache directory studio
Oid115.png


  • Exportem els fitxers a OpenLdap


Oid256.png


  • Li diem el fitxer que volem exportar


Oid257.png


  • Contingut de fitxer OpenLdap
attributetype ( 1.3.6.1.4.1.37589.107.2 
	NAME 'IDspain' 
	DESC 'Identificador de la persona,sera obligatori' 
 )

attributetype ( 1.3.6.1.4.1.37589.107.3 
	NAME 'cognom1' 
	DESC 'cognom 1 de la persona' 
 )

attributetype ( 1.3.6.1.4.1.37589.107.4 
	NAME 'cognom2' 
	DESC 'cognom 2 de la persona' 
 )

objectclass ( 1.3.6.1.4.1.37589.107.1 
	NAME 'mp' 
	DESC 'una persona' 
	SUP inetOrgPerson 
	AUXILIARY 
	MUST IDspain 
 )


  • Contingut de fitxer Apache directory studio
# Generated by Apache Directory Studio on 24 de febrero de 2012 20:26:28

# SCHEMA "MIPERSONA"
dn: cn=miPersona, ou=schema
objectclass: metaSchema
objectclass: top
cn: miPersona
m-dependencies: inetorgperson

dn: ou=attributeTypes, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: attributetypes

dn: m-oid=1.3.6.1.4.1.37589.107.2, ou=attributeTypes, cn=miPersona, ou=schema
objectclass: metaAttributeType
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.37589.107.2
m-name: IDspain
m-description: Identificador de la persona,sera obligatori

dn: m-oid=1.3.6.1.4.1.37589.107.3, ou=attributeTypes, cn=miPersona, ou=schema
objectclass: metaAttributeType
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.37589.107.3
m-name: cognom1
m-description: cognom 1 de la persona

dn: m-oid=1.3.6.1.4.1.37589.107.4, ou=attributeTypes, cn=miPersona, ou=schema
objectclass: metaAttributeType
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.37589.107.4
m-name: cognom2
m-description: cognom 2 de la persona

dn: ou=comparators, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: comparators

dn: ou=ditContentRules, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: ditcontentrules

dn: ou=ditStructureRules, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: ditstructurerules

dn: ou=matchingRules, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: matchingrules

dn: ou=matchingRuleUse, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: matchingruleuse

dn: ou=nameForms, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: nameforms

dn: ou=normalizers, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: normalizers

dn: ou=objectClasses, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: objectClasses

dn: m-oid=1.3.6.1.4.1.37589.107.1, ou=objectClasses, cn=miPersona, ou=schema
objectclass: metaObjectClass
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.37589.107.1
m-name: mp
m-description: una persona
m-supObjectClass: inetOrgPerson
m-typeObjectClass: AUXILIARY
m-must: IDspain

dn: ou=syntaxCheckers, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: syntaxcheckers

dn: ou=syntaxes, cn=miPersona, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: syntaxes

LDAP. Implementacions

IMPORTANT: Ldap és una especificació amb múltiples implementacions

  • Active Directory: Juntament amb altres protocols (DNS, DHCP, Kerberos...) és el que utilitza Microsoft per a la seva implementació d'una xarxa distribuïda
  • OpenLDAP: Implementació lliure àmpliament utilitzada
  • Novell Directory Services:Utilitzat en sistemes operatius de xarxa Novell
  • iPlanet
  • Red Hat Directory Server
  • Per instal·lar el servidor
$ sudo apt-get install slapd
  • Per instal·lar el client
$ sudo apt-get install ldap-utils

Protocol LDAP

  • LDAP és un protocol Client-Servidor
  • El client es connecta al servidor Ldap (normalment utilitzant el port 389) iniciant una sessió LDAP
  • Podem consultar els ports amb la següent comanda
$ cat /etc/services | grep ldap
ldap   389/tcp   # Lightweight Directory Access Protocol
ldap   389/udp   
ldaps  636/tcp   # LDAP over SSL
ldaps  636/udp

aqui imatge1

dn: cn=admin,dc=rpinyol,dc=rpinyol.........falta documentar

  • Un objecte implementa una classe


Install-gosa

  • Primer obrim els repositoris
$ sudo nano /etc/apt/sources.list
  • Ara afegim la següent línia
deb http://www.iesebre.com/ubuntu/custompackages ./
  • Executem la següent línia per tal de que no ens doni cap error d'autenticitat on afegim la clau asimètrica
$ sudo wget -q http://www.iesebre.com/ubuntu/custompackages/iesebre.asc -O- | sudo apt-key add -
  • Si tot anat bé ens dirà OK
  • Ara ja podem instal·lar el gosa amb la següent comanda
$ sudo apt-get update && sudo apt-get install install-gosa
  • Ara ens sortirà un assistent

On seguirem l'assistent

  • Fem un reconfigure on ens tornarà a sortir l'assistent però amb més opcions
$ sudo dpkg-reconfigure install-gosa
  • Ara executem la comanda per la instal·lació del gosa
$ sudo install-gosa -v 
  • Un cop fet els passos anteriors,obrirem el navegador on ficarem el següent
http://IpServidor/gosa
  • On ens validarem per iniciar sessió,podrem veure el següent


Gosa ramon 1.png


  • Creem un servidor


Gosa ramon 2.png



  • Vegeu També

OID

IANA

PEN

PRIVATE ENTERPRISE NUMBERS

  • Enllaços Externs