LDAP (Lightweight Directory Access Protocol)

Jakub Štěpán, xstepan3@chemi.muni.cz

Obsah

Úvod

V tomto referátu bude stručně popsán systém LDAP, jeho účel, použití a vlastnosti.

Co je to LDAP

LDAP je protokol, určený k správě a uchovávání informací v adresářové struktuře. Jedná se většinou o informace o osobách, zaměstnancích, uživatelích (jméno, heslo, e-mail, domovský adresář, telefonní čísla, id, pozice, bydliště), zařízení (umístění, cena, detaily), nebo třeba společnostech (jméno, IČO, sídlo, kontaktní osoba). Služba LDAP funguje na bázi server - klient dotazování, které probíhá přes IP protokol. Je tedy obecně vhodná pro účely databáze v niž jsou data strukturovaná do stromové struktury (skupiny, podskupiny libovolné úrovně, seznamy).

Adresářové služby

Adresářové služby slouží pro organizaci a uchování dat v hierarchické struktuře, které se říká adresář. Specifikem adresářů je datový model, ten obsahuje položky uspořádané v zmíněné hierarchické struktuře a každá položka obsahuje atributy (atribut je nositel hodnoty). Adresáře můžeme rozdělit podle toho jakým způsobem spolupracují s ostatními aplikacemi [K. Benák].

X.500 je označení standardů pro adresářové služby, které jsou definovány dokumenty X.500 až X.521 [Recommendations X.500] vytvořenými CCITT (Consultative Committee on International Telephony and Telegraphy) [J. Sitera]. Tyto standardy specifikují adresářové datové struktury a operace nad nimi. Součastně jsou vystavěny na modelu server - klient (komunikace klienta s adresářovým serverem - directory access protocol DAP). LDAP byl navržen jako zjednodušená forma DAP (lightweight) přizpůsobená protokolům TCP/IP, tento projekt se postupem času osamostatnil.

Pro adresáře obvykle platí, že jsou vhodné pro taková data ke kterým je často přistupováno, ale nebyvají tak často měněna (databáze osob, společností, zařízení).

Strom objektů

Strom objeků (DIT - Directory Information Tree) je konkretní struktura adresářového stromu. Zahrnuje specifikaci větvení stromu, rozdělení položek do skupin, atributy jednotlivých položek. Každá položka má unikátní jméno, které je složené z části popisující větev do které patří a jméno položky v dané větvi. Pro návrh struktury stromu objektů existuje mnoho postupů, členění konkretního stromu je totiž danné a neměné, ale existuje mnoho různých hledisek jak k datům přistupovat, což je třeba zohlednit při návrhu.

LDAP Schema

Data jsou tedy v LDAP informačním modelu uložena v hierarchické struktuře v položkách, každá položka obsahuje atrubuty s hodnotou definovaného typu. LDAP schéma určuje soubor povolených typů položek stromu, určuje jména a typy atributů každé položky.

Standartní LDAP atributy jsou například: c - country, o - organisation, ou - organization unit, cn - common name, uid - identification

Příklad definice standartní položky Person a atributu Surname je uveden níže.

objectclass ( 2.5.6.6 NAME 'person'

DESC 'RFC2256: a person'
SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword$telephoneNumber$seeAlso$description ))

attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' )

DESC 'RFC2256: last (family) name(s) for which the entity is known by'
SUP name )

LDAP Schema obsahuje definici standartních typů dat, atributů a položek. Základními typy jsou: ces - řetězec znaků (case sensitive), cis - retězec znaků (Case Insensitive), tel - telefonní číslo, bin - libovolná (binární) data, dn - rozlišovací jméno (objektu v adresářových službách). Je možné definovat vlastní datové typy, atributy a položky.

Každý záznam v LDAP má unikátní jméno - distinguished name (DN), složené z atributů a jejich hodnot určujících, kde se daný záznam nachází ve stromové struktuře.

Příklad DN: uid=xstepan3,ou=students,o=intranet,c=cz

Nástroje na práci s LDAP (ldapsearch, ldapadd, GQ ...)

Pro práci v LDAP slouží nástroje konzolové (ldap-utils, ldaptor-utils), nebo s grafickým rozhraním (GQ). Všechny tyto nástroje se snaží uživateli poskytnout přístup k LDAP operacím. LDAP operace můžeme rozdělit do 3 tříd: a) prohledávání, b) změny dat, c) autentizace.

Prohledávání (ldapsearch) - jediná operace pro získávání dat z databáze, je navržena obecně, jak pro prohledávání, tak pro získání konkretních dat.

Změny dat - ldapadd, ldapdelete, ldapmodify

Autentizace - ldapbind, ldapunbind

OpenLDAP

OpenLDAP [OpenLDAP] je open source implementace protokolu LDAP, vyvíjený OpenLDAP Project od roku 1998. Software je dostupný pro různé platformy: Linux, BSD-variants, AIX, Android, HP-UX, Mac OS X, Solaris, Microsoft Windows (NT, 2000, XP, Vista, Windows 7), a z/OS. Součástí balíku je:

Základní nastavení

Server je po instalaci v základním nastavení, konfigurační soubor je umístěn na Linuxu v /etc/ldap/slapd.conf. Schéma je umístěno v adresáři /etc/ldap/schema/.

Příklady práce s LDAP

Připojení uživatele xstepan3 na server můjhost, port 389, s heslem heslo.

ldapbind -h můjhost -p 389 -D "cn=xstepan3" -w heslo

Vyhledání všech položek (filtr "objectclass=*"), prohledávaná oblast je specifikována pomocí "ou=people,dc=acme,dc=com", anonimní autentifikace.

ldapsearch -h můjhost -p 389 -b "ou=students,o=muni,dc=cz" "objectclass=*"

Přidání položky z textového souboru novyuzivatel.ldif

ldapadd -h můjhost -p 389 -D "cn=xstepan3" -w heslo -f novyuzivatel.ldif

Smazání položky.

ldapdelete -h můjhost -p 389 -D "cn=xstepan3" -w heslo "uid=uzivatel,ou=students,o=muni,dc=cz"

Unixoví uživatelé v LDAPu (PosixAccount, ShadowAccount)

Atributy PosixAccount a ShadowAccount odpovídají obsahově záznamům v unixových souborech /etc/passwd, /etc/shadow. Tyto záznamy jsou nutné pro autentizaci v unixových systémech.

Autentizace, Spolupráce se SASL

Existuje několik možností autentizace:

Jak na LDAP v unixu (nsswitch.conf, nscd/nsd ...)

Pro možnost použití LDAP serveru pro autentizaci v unixu je třeba mít nastavené položky posixAccount a shadowAccount. Dále je třeba nainstalovat podporu LDAP v nsswitch a pam modul pro LDAP. Konfigurace nsswitch bývá v souboru /etc/nsswitch.conf, je zde potřeba nastavit možnost dotazování na informace o uživatelích:

passwd: files ldap
group: files ldap

Pam modul je treba nastavit na adresu konkretního LDAP serveru, a začlenit pam modul pam_ldap.so do autentizačního systému /etc/pam.d/common.

Replikace, fragmentace

Důležitým faktorem LDAP serveru je jeho dostupnost, robustnost a rychlost. Pro zlepšení těchto vlastností lze použít následující postupy.

Členění na části, kdy každá část obsahuje určitou část LDAP stromu a je zajištěna jinými prostředky. Jednotlivé části jsou potom spojeny odkazy.

Pro zvýšení rychlosti a dostupnosti je možné utvořit několik replik, kdy v případě výpadku jedné zajistí dostupnost služby druhá. Při běžném provozu je nápor rozložen na jednotlivé repliky, což zvyšuje rychlost.

Literatura