Lightweight Directory Access Protocol
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]
Ăversikt
[redigera | redigera wikitext]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).
Operationer
[redigera | redigera wikitext]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.
StartTLS
[redigera | redigera wikitext]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
Update Data
[redigera | redigera wikitext]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.
Abandon
[redigera | redigera wikitext]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.
Unbind
[redigera | redigera wikitext]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)
Referenser
[redigera | redigera wikitext]- â RFC1777
- 1 2 Apache Directory - Some Background. Directories, directory services and LDAP Arkiverad 16 september 2008 hÀmtat frÄn the Wayback Machine.
- â LDAP schema design
- â IESG-Announcements Arkiverad 4 oktober 2008 hĂ€mtat frĂ„n the Wayback Machine.
Externa lÀnkar
[redigera | redigera wikitext]- RFC2251 - Protokollspecifikation för LDAP.