Download - Lightweight Directory Access protocol (LDAP)
Lightweight Directory Access protocol (LDAP)
Projektování distribuovaných systémů
Lekce 16
Ing. Jiří ledvina, CSc.
14.4.2008 Projektování distribuovaných systémů (72 stran) 2
Agenda
Motivace Pochopení LDAP
Informační struktura Jména Funkce a operace Bezpečnost
Model protokolu Mapování na transportní služby Protokol kódování Diskuse
14.4.2008 Projektování distribuovaných systémů (72 stran) 3
Adresáře
Off-line adresáře – telefonní seznamy, … On-line adresáře – udržované v elektronické podobě a také
přístupné v elektronické podobě Vlastnosti on-line adresářů
Dynamické Vkládání, mazání, aktualizace záznamů
Flexibilní Ukládání různých typů informací Text, video, audio, certifikáty, … Informace o nastavení aplikace
Zabezpečené ACL – Access Control List – práva přístupu uživatelů
Personalizovatelné Možnost uchovat specifické informace pro jednoho uživatele
14.4.2008 Projektování distribuovaných systémů (72 stran) 4
Typy adresářů podle použití
Aplikační adresáře (IBM Lotus Notes, …) Vlastní systém ukládání záznamů, orientované na aplikaci
Adresáře síťových OS Microsoft Active Directory (LDAP, Kerberos, CIFS – Common
Interface File Systém) Novell Directory Services NIS – Network Information Services (SUN)
Účelové adresáře DNS
Univerzální standardizované adresáře X.500, LDAP
14.4.2008 Projektování distribuovaných systémů (72 stran) 5
Adresářové služby a databáze
Databáze jsou složitější Složité dotazy Propojení mnoha tabulek Možnost realizace transakcí Srovnatelný poměr mezi čtením a ukládáním dat Velká režie
Adresářové služby Jednoduché dotazy Převládá čtení nad zápisy Nepožadují transakční zpracování Decentralizované uložení informace Možnost replikací
14.4.2008 Projektování distribuovaných systémů (72 stran) 6
Motivace a vývoj
Zvyšování spolehlivosti síťových zařízení Potřeby v informacích
Funkčnost Jednoduchost použití Administrace Konzistentní organizace Integrita Důvěrnost
14.4.2008 Projektování distribuovaných systémů (72 stran) 7
X.500
X.500 standard. CCITT 1988 Refer ISO 9594 – X.500-X.521 of 1990
14.4.2008 Projektování distribuovaných systémů (72 stran) 8
Základní prvky X.500
DIT – Directory Information Tree Adresářový strom Hierarchická struktura Listy obsahují informaci (data) Uzly uvnitř stromu informační vazby
DN – Distinguished Name Jméno použité pro rozlišení informace (od kořene stromu) Sestává z relativních DN (RDN) – rozlišení v podstromu (větvi
stromu)
14.4.2008 Projektování distribuovaných systémů (72 stran) 9
DN a RDN
14.4.2008 Projektování distribuovaných systémů (72 stran) 10
X.500
Organizace položek adresáře do hierarchického stromu Výkonné prostředky pro vyhledávání Často používán pro propojení nekompatibilních systémů Používá DAP pro komunikaci klientů a serverů DAP (App. Layer) požaduje celý OSI zásobník Příliš obtížné pro malé aplikace Mnoho informací uloženo na mnoha serverech včetně
replik
14.4.2008 Projektování distribuovaných systémů (72 stran) 11
X.500
Síťová aplikace typu server/klient DUA – Directory User Agent DSA – Directory Server Agent
Předpokládá připojení klienta k libovolnému serveru, který má vazby na X.500 servery Klientovi se databáze jeví jako kompaktní (obdoba DNS) Princip modifikace informace tam, kde vzniká Dotazování mezi X.500 servery (různé způsoby dotazování)
Protokol pro komunikaci klient/server – DAP (Directory Access Protocol
Protokol pro komunikaci mezi servery (? SAP – Server Access protocol)
14.4.2008 Projektování distribuovaných systémů (72 stran) 12
Přechod DUA X.500 na LDAP
X.500 – (DAP + OSI) - standardizace ITU 1980 LDAP – (TCP/IP) – 1993
Tim Howes (University of Michigen) Steve Kille (Isode Limited) Wengyik Yeong (Performance Systems
LDBP Lightweight Directory Browsing Protocol ASN.1 + LBER
Lightweight BER (zjednodušení zpracování při zachování transparentnosti reprezentace dat
BER, ale textuální reprezentace
14.4.2008 Projektování distribuovaných systémů (72 stran) 13
Přechod DUA X.500 na LDAP
Původně představa vytvoření brány mezi jednoduchým klientem a protokolem DAP (komunikace DUA/DSA)
Později náhrada této brány vlastním serverem + úložištěm dat
Komunikace DAP nahrazena LDAP Nyní protokol LDAP verze 2 nebo 3
14.4.2008 Projektování distribuovaných systémů (72 stran) 14
LDAP Server
14.4.2008 Projektování distribuovaných systémů (72 stran) 15
Adresářový strom a adresářová struktura
14.4.2008 Projektování distribuovaných systémů (72 stran) 16
Co je to LDAP? Lightweight Directory Access Protocol Používá se pro přístup k informaci a pro její úpravu v
adresářích budovaných na X.500 model Specifikace definuje obsah zpráv přenášených mezi
klientem a serverem. Zahrnuje operace pro vytváření a ukončování spojení
se serverem
14.4.2008 Projektování distribuovaných systémů (72 stran) 17
Pochopení LDAP Zjednodušená varianta k DAP Používá TCP/IP zásobník místo zásobníku
ISO/OSI Některé funkce zjednodušuje a jiné vynechává
… K reprezentaci dat používá řetězce místo DAP
notace ASN.1
14.4.2008 Projektování distribuovaných systémů (72 stran) 18
Komponenty LDAP
Standardizovaný přístup k adresářovým službám Zahrnuje 4 modely Komponenty
LDIF – LDAP Data Interchange Format Standardizovaný formát pro výměnu dat (BER, LBER)
LDAP server LDAP klient
LDAP API – rozhraní pro vývoj vlastních aplikací C, PERL, Java, CGI, …
14.4.2008 Projektování distribuovaných systémů (72 stran) 19
LDAP schéma
Množina definic pravidel nad adresářovým stromem Definuje třídy objektů (objectclass) Definuje množinu povinných a nepovinných atributů Definuje jednotlivé atributy
14.4.2008 Projektování distribuovaných systémů (72 stran) 20
Příklad - OID organizace
objectclass ( 1.3.6.1.4.1.98546.1.2.1 NAME 'exampleObject' DESC 'example.org objects' SUP top AUXILIARY MUST displayName MAY uniqueIdentifier )
14.4.2008 Projektování distribuovaných systémů (72 stran) 21
Příklad - OID organizace
objectclass ( 1.3.6.1.4.1.98546.1.2.1 NAME 'exampleObject' DESC 'example.org objects' SUP top AUXILIARY MUST displayName MAY uniqueIdentifier )
objectclass ( 1.3.6.1.4.1.98546.1.2.2 NAME 'examplePerson' DESC 'example.org people' SUP exampleObject AUXILIARY MAY ( personalTitle $ ou ))
objectclass ( 1.3.6.1.4.1.98546.1.2.3 NAME 'exampleGroup' DESC 'example.org group' SUP top STRUCTURAL MUST displayName MAY ( member $ description $ owner ))
14.4.2008 Projektování distribuovaných systémů (72 stran) 22
Příklad adresářové položky (LDIF)
dn: cn=John Doe,dc=example,dc=com cn – uzel RDNdc – rodičovské DN
dn – Domain Name, dc – Domain Component, cn – Canonical Name
cn: John Doe givenName: John atributsn: Doe atributtelephoneNumber: +1 888 555 6789 telephoneNumber: +1 888 555 1232 mail: [email protected] manager: cn=Barbara Doe,dc=example,dc=com objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top
14.4.2008 Projektování distribuovaných systémů (72 stran) 23
LDAP
Informační struktura Struktura informace uložená v LDAP adresáři
Jmenná struktura Jak je informace uložena a pojmenována.
Funkční struktura a operace Popisuje jak mohou být operace prováděny nad informacemi
uloženými v LDAP adresáři Bezpečnost
Popisuje jak může být informace chráněna před neautorizovaným přístupem
14.4.2008 Projektování distribuovaných systémů (72 stran) 24
LDAP uložení informace
14.4.2008 Projektování distribuovaných systémů (72 stran) 25
LDAP uložení informace
Každý atribut je popsán typem/syntaxí a hodnotou Může definovat jak se budou hodnoty chovat během operací
prohledávání adresářů Syntax může být: bin, ces, cis, tel, dn, atd.
bin – binární informace ces – case exact string (directory string), při porovnávání rozlišuje
malá/velká písmena tel – telefonní číslo, reprezentace jako řetězec, mezery jsou ignorovány dn – rozlišující jméno (distinguished name) Generalized time – rok, měsíc, den a čas reprezentovány jako
tisknutelný řetězec Postal address – poštovní adresa s řádky oddělenými znakem ‘$’
14.4.2008 Projektování distribuovaných systémů (72 stran) 26
Rozumné strukurální třídy dle RFC
Není třeba vymýšlet vlastní třídy Lépe je využít to, co je hotové a kombinovat Případně rozšiřovat existující třídy o vlastní atributy
14.4.2008 Projektování distribuovaných systémů (72 stran) 27
Obecné atributy LDAP
Atribut, aliassyntax
popis příklad
commonName, cn cis Obecné jméno položky John Smith
Surname, sn cis Příjmení osoby Smith
telephoneNumber tel Telefonní číslo 123-456-789
organizationalUnitName, ou
cis Jméno organizace UWB
owner dnDN osoby vlastnící položku
cn=John Smith,o=UWB, c=cz
organization, o cis Jméno organizace UWB
jpegPhoto bin Foto v JPEG formátuSmithova fotografie
14.4.2008 Projektování distribuovaných systémů (72 stran) 28
LDAP uložení informace
Každá položka popisuje objekt (Class) Osobu, server, zařízení, atd.
Příklad položky: InetOrgPerson(cn, sn, ObjectClass)
Příklad atributů: cn (cis), sn (cis), telephoneNumber (tel), ou (cis), owner
(dn), jpegPhoto (bin)
14.4.2008 Projektování distribuovaných systémů (72 stran) 29
Identifikátory objektů
Globální OID Unikátní v celém světě ID globálních objektů přidělovány centrální autoritou (IANA) OID vychází ze záznamu tečkovou notací (čísla, jména) OID = 1.3.6.1.4.1.x
x je přípona, kterou přiděluje IANA ZČU má přiděleno číslo 11433 Další podskupiny si organizace určuje sama
14.4.2008 Projektování distribuovaných systémů (72 stran) 30
Soubor informací o objektech
Záznamy – informace o objektech Objektová třída – množina atributů Atributy jsou popsány vlastnostmi Mohou nabývat jednu nebo více hodnot Forma reprezentace dat (syntaxe) – RFC 2252 Definují sadu pravidel Atributy mají jedinečný prefix (tečková notace)
14.4.2008 Projektování distribuovaných systémů (72 stran) 31
Syntaxe některých typů
Název OID Popis
binary 1.3.6.1.4.1.1466.115.121.1.5 BER/DER
boolean 1.3.6.1.4.1.1466.115.121.1.7 boolean hodnota
distinguishedName 1.3.6.1.4.1.1466.115.121.1.12 DN
directoryString 1.3.6.1.4.1.1466.115.121.1.15 UTF-8 řetězec
IAString 1.3.6.1.4.1.1466.115.121.1.26 ASCII řetězec
Integer 1.3.6.1.4.1.1466.115.121.1.27 celé číslo
Name and Optional 1.3.6.1.4.1.1466.115.121.1.34 DN plus UID
Numeric String 1.3.6.1.4.1.1466.115.121.1.36 číselný řetězec
OID 1.3.6.1.4.1.1466.115.121.1.38 object identifier
14.4.2008 Projektování distribuovaných systémů (72 stran) 32
Pravidla shody
Název OID Typ Popis
objectIdentifierMatch 2.5.13.0 shoda OID
distinguishedNameMatch 2.5.13.1 shoda DN
caseIgnoreMatch 2.5.13.2 shoda velikost a mezery nerozlišuje
caseIgnoreOrderingMatch 2.5.13.3 uspořádání velikost a mezery nerozlišuje
caseIgnoreSubstringsMatch
2.5.13.4 uspořádání velikost a mezery nerozlišuje
caseExactMatch 2.5.13.5 shoda velikost rozlišuje, mezery ne
caseExactOrderingMatch 2.5.13.6 uspořádání velikost rozlišuje, mezery ne
caseExactSubstringsMatch 2.5.13.7 podřetězec velikost rozlišuje, mezery ne
booleanMatch 2.5.13.13 shoda boolean
14.4.2008 Projektování distribuovaných systémů (72 stran) 33
Aliasy
14.4.2008 Projektování distribuovaných systémů (72 stran) 34
Atributy
Mají definován Typ hodnoty Povolené operace Definované také pomocí OID
Mohou být Uživatelské – definované uživatelem Operační – obsahují systémové informace
14.4.2008 Projektování distribuovaných systémů (72 stran) 35
Definice atributu dle RFC2252AttributeTypeDescription = "(" whspnumericoid whsp ; Identifikátor Typu atributu[ "NAME" qdescrs ] ; Název používaný typem atributu[ "DESC" qdstring ] ; Popis[ "OBSOLETE" whsp ][ "SUP" woid ] ; Odvození od jiného typu atributu[ "EQUALITY" woid ; Název pravidla shody pro shodu[ "ORDERING" woid ; Název pravidla shody pro porovnání[ "SUBSTR" woid ] ; Název pravidla shody pro podřetězec[ "SYNTAX" whsp noidlen whsp ] ; OID syntaxe[ "SINGLE-VALUE" whsp ] ; Standardně vícehodnotové[ "COLLECTIVE" whsp ] ; Standardně not collective[ "NO-USER-MODIFICATION" whsp ]; Standardně modifikovatelné
uživatelem[ "USAGE" whsp AttributeUsage ]; Standardně userApplicationswhsp ")"
14.4.2008 Projektování distribuovaných systémů (72 stran) 36
LDAP jména
DN skládá se ze sekvence relativních DN cn=John Smith,ou=Austin,o=IBM,c=US
Directory Information Tree (DIT) Vytváří se podle geografických nebo organizačních
schémat Aliases: podobné stromům Aliases mohou odkazovat na uzly stromu, které nejsou
listy
14.4.2008 Projektování distribuovaných systémů (72 stran) 37
LDAP jména Schema
Definuje povolené třídy objektů Definuje kde jsou uloženy Definuje jaké mají atributy (objectClass) Definuje které atributy jsou volitelné (objectClass) Definuje typ/syntaxi každého atributu (objectClass)
LDAP schema musí být čitelné klientem
14.4.2008 Projektování distribuovaných systémů (72 stran) 38
LDAP příklady jmen
atribut alias
CommonName CN
LocalityName L
StateorProvinceName ST
OrganizationName O
OrganizationalUnitName OU
CountryName C
StreetAddress STREET
domainComponent DC
Userid UID
14.4.2008 Projektování distribuovaných systémů (72 stran) 39
LDAP funkce a operace Ověřování
BIND/UNBIND – připojení/odpojení ABANDON – opuštění – zrušení operace
Dotazování Search - vyhledání Compare entry - porovnání
Opravy Add an entry – přidání položky Delete an entry (pouze listy stromu, ne aliasy) – zrušení
položky Modify an entry, Modify DN/RDN (jméno, relativní jméno) –
modifikace položky nebo jména položky
14.4.2008 Projektování distribuovaných systémů (72 stran) 40
Komunikace klient/server Klient vytváří relaci se serverem (BIND)
Podle DNS jména/IP adresy a portu Bezpečnost
Ověřování založené na ID uživatele a heslu Anonymní připojení – implicitní práva přístupu Podpora Kerbera a šifrování
Klient provádí operace Read/Update/Search SELECT X,Y,Z FROM PART_OF_DIRECTORY
Klient ukončuje relaci (UNBIND) Klient může relaci přerušit (ABANDON)
14.4.2008 Projektování distribuovaných systémů (72 stran) 41
Operace BIND/UNBIND/ABANDON
Požadavek obsahuje verzi LDAP, jméno pod kterým se chce klient připojit, typ ověřování Jednoduché – anonymní, jednoduché nešifrované heslo Kerberos v4 k LDAP serveru (krbv42LDAP) Kerberos v4 k DSA serveru (krbv42DSA)
Server odpovídá indikací stavu UNBIND: ukončuje relaci
UnbindRequest ::= [APPLICATION 2] NULL
ABANDON: MessageID to abandon
14.4.2008 Projektování distribuovaných systémů (72 stran) 42
Operace vyhledávání a porovnávání Požadavek zahrnuje
baseObject: an LDAPDN Scope: kolik úrovní stromu má být prohledáváno derefAliases: zpracování aliasů sizeLimit: max počet vrácených položek timeLimit: max čas prohledávání attrsOnly: vrací typy atributů nebo také jejich hodnoty Filter: podmínky které mají být splněny při prohledávání Attributes: seznam atributů, ke kterým se hledá odpověď
Čtení i výpis seznamu je realizován jako vyhledávání Porovnání: podobné vyhledávání, ale vrací true/false
14.4.2008 Projektování distribuovaných systémů (72 stran) 43
Parametry vyhledávání
Base – prohledávání podle DN (strom, podstrom) Size – maximální počet položek Attributes – seznam atributů, které se mají vrátit Attrsonly –
true – hodnoty/atributy False – pouze seznam atributů
Scope – hloubka prohledávání Time – maximální doba prohledávání Search_filter – omezení prohledávání na specifické
atributy nebo jejich hodnoty “objectclass = *” “cn=novak*”
14.4.2008 Projektování distribuovaných systémů (72 stran) 44
Rozsah prohledávání
Base Omezeno pouze na základní objekt Informace o uživatelích
One level Omezeno pouze na následující úroveň (potomky) Informace o členech organizace
Subtree Prohledání celého podstromu
14.4.2008 Projektování distribuovaných systémů (72 stran) 45
Filtrování, operátory filtrování
Vyhledají se objekty podle DN a rozsahu vyhledávání V dalším kroku je možné vytvořit podmnožinu podle
zadaných kritérií filtrování Jednoduché operace
Logické &, |, ! Relační
~= - přibližně stejné >= - větší nebo rovno <= - menší nebo rovno * - libovolné
14.4.2008 Projektování distribuovaných systémů (72 stran) 46
Filtrování, operátory filtrování
Příklady (objectClass=název objektu) (cn=Josef P*) (|(uid=novak)(uid=patek)) (&(|(uid=Petr)(uid=Pavel))(objectclass=person))
14.4.2008 Projektování distribuovaných systémů (72 stran) 47
LDAP URL
RFC 4516 ldap://host:port/DN?atributy?scope?filter?extensions Host – jméno nebo adresa LDAP serveru Port – síťový port DN – jméno použité jako základ pro prohlrdávání Atributy – seznam atributů oddělených čárkou Scope – rozsah prohledávání (base, one, sub) Filter – filtr prohledávání (RFC4515) – objectClass=*
14.4.2008 Projektování distribuovaných systémů (72 stran) 48
LDAP URL
ldap://foo.bar.com/dc=bar,dc=com ldap://argle.bargle.com/dc=bar,dc=com??sub?uid=barney ldap://ldap.bedrock.com/dc=bar,dc=com?cn?sub?uid=barney ldap://ldap.zcu.cz:389/uid=ledvina, ou=Users, ou=rfc2307, o=zcu,
c=cz??base?(objectClass=*)
Scope Base One Sub
14.4.2008 Projektování distribuovaných systémů (72 stran) 49
Příklad výpisu Softerra LDAP Browser 2.5
#-------------------------------------------------------------------------------# This file has been generated on 04.15.2008 at 11:33 from ldap.zcu.cz:389# by Softerra LDAP Browser 2.5 (http://www.ldapbrowser.com)#-------------------------------------------------------------------------------version: 1dn: uid=ledvina,ou=Users,ou=rfc2307,o=zcu,c=czobjectClass: personobjectClass: organizationalPersonobjectClass: inetOrgPersonobjectClass: posixAccountobjectClass: pleiadesPerson
14.4.2008 Projektování distribuovaných systémů (72 stran) 50
Příklad výpisu Softerra LDAP Browser 2.5
uid: ledvinauidNumber: 1330gidNumber: 100givenName: JiriloginShell: /bin/tcshhomeDirectory: /users/l/ledvina/homemail: [email protected]: Jiri LEDVINAsn: LEDVINA
14.4.2008 Projektování distribuovaných systémů (72 stran) 51
Příklad výpisu Softerra LDAP Browser 2.5
memberof: cn=acl$linux_kiv,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=acl$linux_public,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=acl$tacacs,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=dbadmin,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=staff,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=users,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=fav,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=kiv,ou=Groups,ou=rfc2307,o=zcu,c=czmemberof: cn=teachers,ou=Groups,ou=rfc2307,o=zcu,c=czuserPassword: {crypt}*
14.4.2008 Projektování distribuovaných systémů (72 stran) 52
Operace ADD/MODIFY/DELETE
Operace ADD Entry: LDAPDN Seznam artributů a jejich hodnot (nebo množina hodnot)
Operace MODIFY Používá se k přidání, rušení a modifikaci atributů Požadavek obsahuje
Object: LDAPDN Seznam modifikací (atomické provedení)
Add, Delete, Replace Operace DELETE
Object: LDAPDN Operace MODIFY RDN: LDAPDN, newRDN, DEL_FLAG
14.4.2008 Projektování distribuovaných systémů (72 stran) 53
LDAP zprávy
LDAPMessage (MessageID unique)
14.4.2008 Projektování distribuovaných systémů (72 stran) 54
LDAP zprávy
LDAPString ::= OCTET STRING LDAPDN ::= LDAPString RelativeLDAPDN ::= LDAPString AttributeValueAssertion ::=
Sequence {attributeType attributeValue,
attributeValue attributeValue
} attributeType ::= LDAPString attributeValue ::= OCTET STRING
14.4.2008 Projektování distribuovaných systémů (72 stran) 55
LDAP zprávy
LDAP Result Chyby
Truncated DIT RDN sequence is sent
noSuchObject aliasProblem invalidDNSyntax isLeaf etc.
14.4.2008 Projektování distribuovaných systémů (72 stran) 56
Bezpečnost LDAP
Současná verze LDAP podporuje Heslo v textové podobě Ověřování KERBEROS v 4 SASL – Simple Authentication and Security Layer (RFC4422)
Prostředek pro ověřování a zajištění bezpečných dat v Internetu
Odstranění ověřovacích mechanizmů z aplikací Využití libovolného ověřovacího mechanizmu
podporovaného SASL v libovolné aplikaci Nabízí též data security layer (integrita a důvěrnost dat)
14.4.2008 Projektování distribuovaných systémů (72 stran) 57
Mechanizmus SASL
Protokol pracující s výzvami a odpověďmi Definuje následující mechanizmy:
EXTERNAL - ověřování zahrnuto implicitně (IPsec, TLS) ANONYMOUS – neautorizovaný přístup PLAIN – jednoduché ověřování prostým textem – heslem OTP – jednorázové heslo – nahrazen SKEY SKEY – mechanizmus SKEY – rekurzivní generování hesla CRAM-MD5 – jednoduchá výměna výzva-odpověď založená na HMAC-
MD5 DIGEST-MD5 - jednoduchá výměna výzva-odpověď pomocí HTTP
založená na MD5, podpora bezpečného přenosu dat NTLM – ověřovací mechanizmus NT LAN Manager GSSAPI – ověřování Kerberos V prostřednictvím GSSAPI, podpora
bezpečného přenosu dat.
14.4.2008 Projektování distribuovaných systémů (72 stran) 58
Mechanizmus GSSAPI
Generic Security Services Application Program Interface API pro přístup k bezpečnostním službám IETF standard Poskytuje 45 knihovních volání Podpora C, Java, C# Předpokládá architekturu klient/server
14.4.2008 Projektování distribuovaných systémů (72 stran) 59
Bezpečnost LDAP
Bezpečnost založená na modelu připojování (BIND) LDAPv1 - heslo LDAPv1,2,3 – Kerberos LDAPv3 - SASL Navrhováno TLS (Transport Layer Security)
Založeno na SSL v3 (Netscape)
14.4.2008 Projektování distribuovaných systémů (72 stran) 60
Bezpečnost LDAP
Bez ověřování Základní ověřování
DN a heslo Otevřený text nebo kódování BASE64
SASL (RFC 4422) Parametry: DN, mechanism, credentials Zajišťuje vzájemné ověřování Případné dohadování o šifrování dat ldap_sasl_bind() (ver3 call) Ldap://<ldap_server>/?supportedsaslmechanisms
14.4.2008 Projektování distribuovaných systémů (72 stran) 61
Bezpečnost LDAP
LDAP a SASL s SSL/TLS
14.4.2008 Projektování distribuovaných systémů (72 stran) 62
Bezpečnost LDAP
Ověřování SSL/TLS
14.4.2008 Projektování distribuovaných systémů (72 stran) 63
LDAP protokol (klient/server)
Klient aktivuje komunikaci se serverem Klient posílá serveru požadavek Server požadavek zpracuje Server vrací odpověď nebo chybu
Server zpracovává požadavky asynchronně
14.4.2008 Projektování distribuovaných systémů (72 stran) 64
Spolupráce klient/server
14.4.2008 Projektování distribuovaných systémů (72 stran) 65
Mapování na transportní služby
LDAP používá spolehlivý přenos dat (TCP) TCP
LDAPMessage PDU mapována na TCP stream LDAP naslouchá na portu 389
Connection Oriented Transport Service (COTS) LDAP PDU mapováno přímo na T-Data
14.4.2008 Projektování distribuovaných systémů (72 stran) 66
Kódování protokolových prvků
Pro kódování zpráv se používá BER (Basic Encoding Rules)
BER definováno v Abstract Syntax Notation One (ASN.1)
BER má velkou režii Omezení na zvýšení efektivity
Pevná délka kódovaných položek Bitové řetězce i řetězce oktetů jsou kódovány pouze v
základní podobě.
14.4.2008 Projektování distribuovaných systémů (72 stran) 67
Implementace LDAP
C Library API LDAPv2 - RFC 1823 ‘The LDAP API’ LDAPv3 – RFC
Java JNDI LDAP v3 používá UTF-8 kódování Existuje brána LDAP HTTP Existuje brána LDAP X.500 (ldapd)
14.4.2008 Projektování distribuovaných systémů (72 stran) 68
LDAP v2
RFC 1777: LDAP v1 RFC 1778: The String Representation of Standard
Attribute Syntaxes RFC 1779: A String Representation of Distinguished
Names RFC 1959: An LDAP URL Format RFC 1960: A String Representation of LDAP Search
Filters
14.4.2008 Projektování distribuovaných systémů (72 stran) 69
Verze 2 versus Verze 3
Referrals Server který nemá k dispozici požadovaná data může odkázat
klienta na jiný server.
Bezpečnost Rozšířené ověřování s využitím Simple Authentication and
Security Layer (SASL)
Internacionalizace Podpora národních abeced – kódování UTF-8.
Rozšiřitelnost Nové typy objektů a operací mohou být definovány dynamicky a
schémata publikována standardním způsobem
14.4.2008 Projektování distribuovaných systémů (72 stran) 70
Implementace
PHP (podpora Apache) Java JNDI (Java Naming Directory Interface) OpenLDAP – server, klient, API TinyLDAP Softerra LDAP browser Luma LDAP browser LDAP Explorer Tool GAWOR LDAP browser/editor