Hoppa till innehÄllet

Lightweight Directory Access Protocol

FrÄn Wikipedia

Lightweight Directory Access Protocol (LDAP) definierar ett protokoll och en datamodell för kommunikation med en katalogtjÀnst. LDAP skapades av Tim Howes, Steve Kille och Wengyik Yeong.[1]

LDAP anvÀnds för att utföra snabba och effektiva sökningar pÄ katalogservrar. Standarden, som LDAP baseras pÄ (X.500), anvÀnder OSI-modellen som protokoll-modell medan LDAP anvÀnder TCP/IP. Innan LDAP-servrar började komma, anvÀnde LDAP-klienter en LDAP-gateway, som gjorde om LDAP-trafiken till X.500-trafik.[2] Protokollet X.500 har dock förÀndrats och kan nu anvÀndas direkt över TCP/IP. X.500 anvÀnder Directory Access Protocol (DAP) för att komma Ät X.500-katalogtjÀnster. LDAP var till en början ett lÀttviktigt alternativ för att ge Ätkomst till X.500-katalogtjÀnster, men har pÄ senare tid expanderat och blivit lika komplex som X.500.[3]

En klient kopplar upp mot en LDAP-server via TCP-porten 389 (standard). Ett alternativ för att fÄ sÀker anslutning Àr att koppla upp via en SSL-tunnel (port 636). Detta sÀtt utfasades i.o.m. att LDAPv2 officiellt gick i pension (2003).[4] Det nya sÀttet Àr att anvÀnda LDAPv3 Transport Layer Security (TLS) (operationen Start TLS). Klienten skickar förfrÄgningarna till servern asynkront medan servern skickar sina svar i turordning.

Dessa operationer kan en klient göra förfrÄgningar om:

  • Start TLS - anvĂ€nder LDAPv3 Transport Layer Security (TLS) för en sĂ€ker anslutning
  • Bind - autentisera och specificera LDAP-protokollversion
  • Search - söka och/eller hĂ€mta katalogposter
  • Compare - testa om en angiven post innehĂ„ller ett visst vĂ€rde
  • Add - lĂ€gg till en ny post
  • Delete - ta bort en post
  • Modify - Ă€ndra i en post
  • Modify Distinguished Name (DN) - flytta eller byt namn pĂ„ en post
  • Abandon - avbryt en tidigare förfrĂ„gan
  • Extended Operation - generiska operationer anvĂ€nds för att definiera andra operationer
  • Unbind - stĂ€ng ner anslutningen (har inget med 'Bind' att göra)

Servern skickar svar pÄ dessa förfrÄgningar men kan ocksÄ skicka ett "Unsolicited Notifications". Meddelandet Àr inte ett svar pÄ en förfrÄgan utan skickas till exempel innan anslutningen gör timeout.

Katalogstruktur

[redigera | redigera wikitext]

Protokollet ger Ätkomst till LDAP-kataloger (Àven X.500-kataloger):

  • En katalog Ă€r en DIT (Directory Information Tree), uppbyggt av katalogobjekt
  • Ett katalogobjekt bestĂ„r av ett antal attribut (en mĂ€ngd)
  • Varje attribut har ett namn och ett eller flera vĂ€rden
  • Om ett attribut saknar vĂ€rde sĂ„ finns inte attributet överhuvudtaget för objektet
  • Varje katalogobjekt har en unik identifierare (Distinguished Name - DN)
  • (Kataloguppgifter kan byta katalog. För att tillförlitligt kunna identifiera uppgifterna, kan en UUID (Universally unique identifier) anvĂ€ndas)

Exempel som representeras i LDAP Data Interchange Format (LDIF):

 dn: cn=John Doe,dc=example,dc=com
 cn: John Doe
 givenName: John
 sn: Doe
 telephoneNumber: +1 888 555 6789
 telephoneNumber: +1 888 555 1232
 mail: john@example.com
 manager: cn=Barbara Doe,dc=example,dc=com
 objectClass: inetOrgPerson
 objectClass: organizationalPerson
 objectClass: person
 objectClass: top

dn avser namnet pÄ kataloguppgiften och Àr inte ett attribut. cn=John Doe Àr uppgiftens RDN dc=example, dc=com Àr förÀldrarnas DN

Attributen bestÄr av namn som Àr lÀtta att förstÄ. Till exempel dn stÄr för Distinguished Name (unikt namn), mail stÄr för e-mail och sn stÄr för surname (efternamn).

NÀr klienten skickar en förfrÄgan, skickas ett meddelandeid med som servern skickar med tillbaka. Servern skickar Àven med en resultatkod som indikerar om det gÄtt bra, blivit nÄgot fel eller nÄgot annat specialfall intrÀffat.

Operationen StartTLS upprÀttar en sÀker anslutning via TLS-protokollet. Detta erbjuder datasekretess och/eller dataintegritet.

Bind (autentisera)

[redigera | redigera wikitext]

Servern autentiserar klienten med operationen Bind. Anslutningen bör vara skyddad med TLS, dÄ det finns enkla autentiseringar som skickar DN och lösenord i klartext. Förutom autentisering sÀtts LDAP-protokollversionen.

Operationen Bind mÄste vara först i sessionen om LDAPv2 anvÀnds. Detta behövs inte i LDAPv3.

Search and Compare

[redigera | redigera wikitext]

Operationerna sök och jÀmför anvÀnds för att söka och lÀsa poster.

baseObject: Den DN (Distinguished Name) dÀr sökningen ska starta.

scope: BaseObject (sök bara efter namngivna posten), singleLevel (poster direkt under roten DN), eller wholeSubtree (hela subtrÀdet med början vid roten DN).

filter: Hur varje post ska undersökas.

derefAliases: Om och hur aliasposter ska följas (poster som hÀnvisar till andra poster).

attributes: Vilka attribut som ska skickas tillbaka i resultatposterna.

sizeLimit, timeLimit: Maximala antalet poster och maximala söktiden.

typesOnly: Skicka tillbaka attributtyperna, inte deras vÀrden

Till denna parameter hör LĂ€gg till (add), Ta bort (delete) och Ändra (modify). För att kunna utföra dessa operationer sĂ„ mĂ„ste DN vara specificerat.

Extended operations

[redigera | redigera wikitext]

Denna operation anvÀnds för definiera nya operationer. Hit hör Cancel, Password, Modify och StartTLS.

Operationen skickas tillsammans med ett meddelande-id. Servern avbryter operationen (som har meddelande-id), om den vill. Abandon skickar inget svar tillbaka. Operationen Cancel har definierats att göra samma sak som Abandon och Àven skicka tillbaka ett svar.

AnvÀnds för att stÀnga ner en anslutning. Inget svar skickas tillbaka.

AnvÀndning

[redigera | redigera wikitext]

LDAP anvÀnds inom bl.a. tre omrÄden av program:[2]

  • För slutanvĂ€ndare: E-postklienter (till exempel Outlook, Thunderbird)
  • För specialister/administratörer: FörsĂ€ljarspecifika verktyg/program (till exempel JXplorer)
  • Serverprodukter: Mail-servrar, webbservrar (till exempel Apache James, Apache HTTP Server)

Externa lÀnkar

[redigera | redigera wikitext]
  • RFC2251 - Protokollspecifikation för LDAP.