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

LDAP

Introducció

Lightweight Directory Access Protocol (LDAP).

  • Protocol de xarxa que permet l'accès a un servei de dirextori per tal de compartir informació en una xarxa. servei de directori per tal de compartir informació en una xarxa.
  • Típicament s'utilitza per emmagatzemar la informació dels usuaris i els recursos d'un domini tot i que pot tenir altres usos. El seu objectiu principal és permetre l'autenticació en xarxa.
  • LDAP NO és una base de dades, realment és una interficies per accedir a una base de dades jeràrquica.
  • L'estructura de la base de dades (estructura jeràrquica) difereix força de l'estructura relacional (taules i registres) de les bases de dades "tradicionals".

Avantatges

  • Rapidessa en operacions de lectura.
  • Són faciles de ser distribuïdes per tal de repartir la càrrega, és molt escalabre.


Inconvenients

  • Bastant més lentes en operacions d'escriptura i/o modificacions.

Per què LDAP

  • Perque és un estàndar de facto per a temes d'autentificació d'usuaris.
  • 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) èr treballar amb Ldap.

Historia 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

  • 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

  • Model DNS

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

Carlesrisa abre ldap.png

  • 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)
  • DN (Distinguished Name): fent una similitud amb un sistema de fitxers és el camí absolut al fitxer.
  • Cada entrada té un RDN (Relative Distinguished Name) que la distingeix de la resta d'entrades del mateix node de l'arbre.
  • Per tant els DN són composicions de RDN:
  • RDN(fill),RDN(pare),RDN(avi), ...RDN(arrel).
  • els RDNsón parells de valors formats per un atribut de l'entrada més el seu valor.
  • nom_atribut=valor


  • Model Territorial

Fitxer:Faustomendoza1 model territorial.png

  • La majoria de servidors ldap tenen un esquema anomenat core.schema amb objectes bàsics.


Nodes

  • Un node és equivalent a un objecte.
  • Un objecte pot tenir més objectes.
  • Una objecte ha de tenir un nom únic DN(Distinguished Name).

Apache Directory Studio

Apache_Directory_Studio

  • És una eina independent plugin de l'eclipse.
  • Requisits:
  • Tenir java instal·lat.

Quan obrim una nova connexió:

DIT Directory information tree(Arrel de tot).

Serveis de directori

Arbre LDAP

  • Objectes amb common name(cn)
  • person: per definir persones.
  • inetorgperson: inclou altres atributs per a la persona.
  • postfixaccount: Qüestions de sessió, passwords, etc.
  • sambaaccount:
  • Objectes organitzatius
  • organitzation:
  • InetOrgPerson
  • gn(givenName)


OID(Object identifier)

OIDs

Codi d'identificació única universal per a un objecte a estructura.


Esquemes

  • Els objectes poden ser: STRUCTURAL, AUXILIARY o ABSTRACT.
  • Si un objecte no té MUST és perque un dels pares ha de tenir definit el MUST.
  • Exemples d'esquema:

Faustomendoza1ExempleEsquema.png


Generació d'un esquema propi

  • A continuació generarem un esquema amb l'Apache Directory de la següent forma:

Faustomendoza1EsquemaMipersona.png

  • Exportat en DS
# Generated by Apache Directory Studio on 24 / febrer / 2012 20:34:01

# 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.38991.111.2.1, ou=attributeTypes, cn=mipersona, ou=schema
objectclass: metaAttributeType
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.38991.111.2.1
m-name: SID
m-description: DNI,NIF,NIE,PASSPORT

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.38991.111.1.1, ou=objectClasses, cn=mipersona, ou=schema
objectclass: metaObjectClass
objectclass: metaTop
objectclass: top
m-oid: 1.3.6.1.4.1.38991.111.1.1
m-name: personeta
m-description: Una persona
m-supObjectClass: inetOrgPerson
m-must: SID

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


  • Exportat en format OpenLDAP
attributetype ( 1.3.6.1.4.1.38991.111.2.1 
	NAME 'SID' 
	DESC 'DNI,NIF,NIE,PASSPORT' 
 )

objectclass ( 1.3.6.1.4.1.38991.111.1.1 
	NAME 'personeta' 
	DESC 'Una persona' 
	SUP inetOrgPerson 
	STRUCTURAL 
	MUST SID 
 )

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
  • OpenLDAP
  • Implementació lliure àmpliament utilitzada.
  • Novell Directory Services
  • Utilitzat en sistemes operatius de xarxa Novell.
  • iPlanet
  • Red Hat Directory Server

OpenLDAP

Definició: OpenLDAP és una implementació de codi obert i gratuïta de l'estàndard (LDAP)

Instal·lació servidor

Instal·lació del client

S'ha d'instal·lar el paquet ldap-utils.

Configuració del SLAPD

Vegeu també

LDAP

Enllaços externs

LDAP