LDAP

Jan Bušta, xbusta@fi.muni.czl

Obsah

Co je to LDAP?

LDAP je zkratka za Lightweight Directory Access Protocol, tedy odlehčený protokol pro přístup k adresářovému serveru (obsahuje informace o některých objektech světa). Tento protokol umožňuje přístup k datům a jejich ukládání na adresářový server, kde jsou data uložena ve stromové datové struktuře, stejně jako v klasické adresářové struktuře. Základní jednotkou je záznam, který má své povinné a nepovinné atributy. Podle povinných atributů lze identifikovat jednotlivé záznamy, tato identifikace jej jedinečná jak v rámci jednoho patra stromu, tak i v rámci celého adresáře. Záznamy jsou hierarchicky uspořádány (dědičnost). LDAP je založena na doporučení X.500, oproti kterému je, jak je již zmíněno v názvu, odlehčenou verzí. LDAP funguje na bázi server-klient. Používá UNICODE. Podporuje přihlašování přes TLS/SSL.

Použití

LDAP je užitečný především pro udržování adresářů, práci s informacemi o uživatelích, vyhledávání uživatelů v adresářích, ověřování uživatelů služeb (telnet, ftp, ...), distribuce klíčů, DNS apod. LDAP je optimalizován pro rychlé vyhledávání nad nepříližš měnící se databází (četnost zápisů do struktury je oproti jejich čtení minimální). K záznamům lze přistupovat jak pomocí jejich jména, tak pomocí množiny jejich atributů.

LIDF & záznamy

LIDF (LDAP Data Interchange Format) je standardizovaný formát pro reprezantaci dat v adresářovém serveru. Pomocí tohoto formátu lze upravovat adresář (modifikovat, přidávat a mazat záznamy).

Příklad LIDF záznamu:

 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
Každý záznam obsahuje dn: distinguished name, což je jednoznačná (unikátní) identifikace záznamu, která je tvořená z atributů a jejich hodnot (jsou z něj patrné hierarchickém postavení ve struktuře). Dále pak obsahuje atributy, z nichž některé jsou relative distinguished name, to jsou takové, jež identifikují záznam na úrovni patra ve stromu záznamů (např. mail: mail address), jsou to atruibuty obsažené v dn. Poslední informací, kterou záznamy nesou, jsou typy, z nichž je záznam odvozen (tyto typy nesmějí být v různých hierarchických větvích).

Atributy, které lze u záznamu použít, stejně tak i to, zda mají být obligatorní či fakultativní, určuje directory schema, ve kterém jsou definovány odjekty a atributy. Standardní schemata lze najít v souboru /etc/openldap/schema/core.schema

Příklad schematu pro objekt:

objectclass ( 2.5.6.6 NAME 'person'
        DESC 'RFC2256: a person'
        SUP top STRUCTURAL
        MUST ( sn $ cn )
        MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )
a atribut
attributeType ( 2.5.4.41 NAME 'name'
        DESC 'name(s) associated with the object'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch )

Implementace

Adresářové služby poskytují následující programy:

Jak na LDAP

Ke správě záznamů v v OpenLDAP lze pouřít následující konsolové nástroje:

nebo Java klienta LDAP Browser/Editor nebo adresářový front-end pro LDAP jabook na PHP založený phpLDAPadmin nebo Lumu. Pro import uživatelů v systemu lze použít migrationtools, které vytvoří LIDF záznamy, které pak můžeme pomocí ldapadd přidat do adresáře. Kvůli mapování loginů do LDAP je třeba nastavit /etc/nsswitch.conf.

SASL

Simple Authentication and Security Layer- metoda pro zlepšování ověřování při komunikaci server-klient. Poskytuje používání různých mechanismů ověřování. Pro OpenLDAP existuje plugin, který tuto možnost poskytuje.

Replikace a jednorázová hesla

OpenLDAP podporuje replikaci. Daemon slurpd sleduje log a posílá informace dalším adresářovým serverům.

OpenLDAP podporuje tkaé jadnorázová hesla, která jsou důležiná při nebezpečí odposlechu hesel.

yakua

Literatura