380 likes | 488 Views
Hálózati Operációs Rendszerek. LDAP, OpenLDAP Előadó: Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. Forrás. Brian Arkils: LDAP directories explained. Tartalom/1. LDAP LDAP névtér LDAP objektum struktúra LDAP objektum elnevezés Kliens LDAP műveletek
E N D
Hálózati Operációs Rendszerek LDAP, OpenLDAP Előadó: Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv
Forrás • Brian Arkils: LDAP directories explained
Tartalom/1 • LDAP • LDAP névtér • LDAP objektum struktúra • LDAP objektum elnevezés • Kliens LDAP műveletek • Cimtárképes alkalmazások • Keresés • LDAP protokol • LDAP séma • Objektum osztályok • Attribútumok • Szintakszisok • Egyezési szabályok • OID-k • Séma ellenőrzés • Cimtár menedzsment
Tartalom/2 • OpenLDAP • Névtér • Műveletek és kliensek • Séma • Menedzsment • Biztonság
LDAP – könnyűsúlyú X.500 DAP • Működő kód (jobb mint a rideg szabványok) • Több éve fejlesztik (RFC 1487 (1993): LDAPv1; RFC 1777 (1995): LDAPv2; RFC 2251 (1997): LDAPv3) • Csak könyvtár-hozzáférési protokoll nem teljes címtár • Csak azt specifikálja hogyan társalogjon a kliens és a szerver • Nem specifikálja a címtár működését
LDAP v3 RFC3377 • RFC2251 (LDAP a vezetéken) • RFC2252(Attribútum szintakszis definiálás) • RFC2253(UTF-8) • RFC2254(LDAP kereső kulcsszavak) • RFC2255(LDAP URL) • RFC2256(X500-ból átvett felhasználói séma) • RFC2829(Azonosítási módszerek) • RFC2830(Bővítmények TLS számára)
LDAP objektum struktúra • Csak fa struktúra – DIT • Minden elem lehet tároló elem • Struktúra szabályok korlátozhatják ezt • X.500 • c –country • l –locale • o –organization • ou –organization unit • Névterek (Naming contexts) • Lapos névtér • gyors növekedés • Nem skálázható • Gyakorlatban: • Politikai/funkció • Földrajzi • Erőforrás alapú • Felhasználó alapú
LDAP objektum elnevezés(1) • RDN – relativ megkülönböztető név • Elnevezési attribútum (nincs definiálva az LDAP-ban) • Több attribútum is lehet • Mit érdemes RDN-nek választani? • DN – megkülönböztető név • OID - Objektum azonositó • Minden attribútum tipusnak van egy OID-je 2.5.4.3 • Egyértelmű azonositás • Gyakoribb attribútumok: • cn – common name • l – locality name • st – state or province name • c – country name • dc – domain component • uid – user identity • Speciális karakterek \, • Kód beszúrás ?
LDAP objektum elnevezés(2) • URL elnevezés RFC 2255 • ldap://[hostname][/dn[?[attributes]?][?[scope][?[filter]?][?[extensions]] • 389-es port • scope • Base • One • Sub • Filter – (objectclass=*) • ldap://wanda.cab.u-szeged.hu:389/cn=Vilmos Bilicki,ou=Staff,dc=cab,dc=u-szeged,dc=hu?sn • LDAPv2 , szóköz ‘
LDAP kliens műveletek(1) • LDAP kliens – amit a felhasználó lát a cimtárból • Cimtár képes alkalmazások • Email szerverek • Sendmail • Exchange • Csoportmunak támogató alkalmazások • Email klinesek • Netscape mail • Pine • Outlook • Tanúsitvány szolgáltatók
LDAP kliens műveletek(2) • Keresés • Nincs olvasás -> keresni kell • Kötelező paraméterek • Alap DN, legalább a gyökeret ismernünk kell (dc=cab,dc=u-szeged,dc=hu) • A keresés hatóköre • Base – csak egy bejegyzést • One – mindent egy szinten • Subtree – minden DN alatti • Kereső szűrő, attribótum tipus+összehasonlitó operátor+érték (cn=Bilicki Vilmos) • =, <=, >=, ~= • Lehet szűrőket kombinálni &, |, !(|(cn=Vilmos Bilicki)(cn=Bilicki Vilmos)) • Opcionális paraméterek • Mit szeretnénk visszakapni • derefAliases • sizeLimit • timeLimit • typesOnly
LDAP protokol (RFC2251) • Címtár hozzáférési protkoll írás/olvasás • Egyszerűsített DAP (egyszerűbb kliensek) • Hivatkozások használata (Referral) • SASL (Simple Authentication and Security Layer) • Bővíthető • Publikált séma
LDAP protokol (RFC2251) • Kliens – szerver • LDAP, CLAPD • Minimalizálja a kliens feladatait • Aszinkron működés • a szerver nem köteles sorrendben válaszolni, a kliens nem köteles megvárni a választ • Adatmodell: • X.500 adatmodell • Egy vagy több szerver • DIT • RDN • DN
LDAP kommunikációs minta • Kliens kapcsolódik a szerverhez - bind művelet • A szerver visszaadja a bind ereményét • Kliens keresés művelet • Szever válasz (találatok) • Szerver válasz eredménykód • Kliens lekapcsolódás – unbind művelet • Szerver unbind üzenet
LDAP műveletek • Bind • Üres string anonym • Search • Compare • Add • Delete • Modify • ModifyRDN, Rename • Megtarthatja az átnevezettet is • Unbind • Abandon • Extend
LDAP vezérlők • A kliens kérheti a szervert, hogy a normál művelete egy kicsit máshogy hajtsa végre • root DSE – supportedControl tulajdonság • Példák • paged search – egységenként kapja az erdményt nem egyszerre, sizeLimit • server-side sort – a szerver sorbarendezve adja át • persistent search – a szűrüben eső tartalom változáskor értesiti a klienset
LDAP séma (1) • A felhasználók elől rejtve van • Megadja a tárolható információ leirását • Módositásával a cimtár kiterjeszthető • Objektum osztály – definiálja a megengedett bejegyzéseket • Tartalom szabályok • Struktúra szabályok • Név formátum • Tulajdonság tipus – tipust definiál • Szintakszis • Egyezési szabályok • Alapételmezett séma: RFC 2252 • Felhasználói séma: RFC 2256 • X.500 definiciók érvényesek • Nincs kötelező séma • LDAPv3 – minden bejegyzés alséma bejegyzésbe kell a séma helyét publikálni subschemaSubentry
LDAP séma(2) • Objektum osztályok • Bejegyzések tipusai • objectclass tulajdonság • Tipusai • Absztrakt – a hierarchia alapja • Kiegészitő – nem lehet hierarchiába rendezni • Strukturális - származtatott • Függőségi hierarchiába rendezhetőek (öröklés, nincs szűkités) • Elemei: • OID • Név • Leirás • Inaktiv állapot • Alap osztály • Kategória • Kötelező tulajdonságok • Opcionális tulajdonságok • Gyakran – Elnevezési attribútum, Tartalmazó szabályok • Szövegfájlban vagy cimtárban tárolják
LDAP séma(3) • Tulajdonságok • RFC 2252, RFC 2251 • Tulajdonság tipus • Szintakszis • Egyezési szabályok • Elemei: • OID • Név – több is lehet • Leirás – opciók pl. bináris • Inaktiv állapot • Alap osztály • Egyezőség szabály • Sorbarendezés szabály • Részegyezés szabály • Szintakszis • Megengedett értékek száma – többnyelvű bejegyzések • Kollektiv • Módositható • Használata
LDAP séma(4) • Tulajdonságok • Működési tulajdonságok • createTimestamp • modifyTimestamp • creatorsName • modifiersName • subschemaSubentry • attributeTypes • altServer • Alséma
LDAP séma(5) • Szintakszisok • ASN.1 • RFC2252 - 58 alap szintakszis • Binary 1.3.6.1.4.1.1466.115.121.1.5 0 vagy 1 • Nincs szabvány • Összehasonlitási szabályok • OID • Garantálja az egyediségét? • IANA • Bővithető
LDAP séma(6) • Bővitmények • DNS • dc - tulajdonság • domain, dcObject – kiegészitő objektum osztály • dynamicObject – kiegészitő osztály • lejár – pl. gyűlés, ideiglenes dolgozó • time-to-live – tulajdonság • Java • DHCP • KDC
OpenLDAP (1) • University of Michigan • http://www.openldap.org/ • Nyilt forráskódú szoftver • Gyakori kibocsátás (heti, havi) • Minőséges szoftver • Operációs rendszer független • Általános cimtár szerepkörre törekszik • Szigorúan követi az LDAP RFC-ket • Moduláris felépités • Biztonság • Adatbázis • … • Két process: • slapd – szöveges konfig. fájlok • slurpd – log fájl mentén replikáció
OpenLDAP (2) • Névtér • Egyszerű névtér • Az LDAP szabványokat követi • Használhatja DNS-t a névterében (RFC 2247) • dc=inf, dc=u-szeged, dc=hu • Támogatja DNS SRV rekordokat • Az OpenLDAP működtet egy gyökér szervert (RFC 3088) • root.openldap.org • LDAP URL-t ad vissza a DN lekérdezésekre(SRV) • specifikáció • _ldap._tcp.mycompany.com • ldap://server1. mycompany.com
OpenLDAP (3) • Névtér: • Egy szerveren több névtér is tárolható • Ajánlott külön-külön adatbázis minden névtérnek • Nagyobb tervezési szabadság • Replikációs topológia • Konfiguráció • Indexelés… • Hivatkozások (referrals) • Tipusai: • Felső (superior) – slurpd szövegfájlában ! • Alsó (subordinate) • Külső (extrenal) • class=referral • ManageDsaIT támogatva van • Replikáció • Single Master ajánlott • Multimaster van de kisérleti • Slapd replog fájl • Slurpd LDAP műveletek
OpenLDAP (4) • Névtér: • Adatbázis támogatás • LDBM az alapértelmezett • Más adatbázis is használható • Shell háttér – az LDAP parancsokat le kell kódolnunk • Proxy használat • Indexelés • LDBM támogatja, slapd ckonfig. fájl • Komolyabb hangolást igényel mint más termékeknél • Minden hagyományos operátor alapján indexelhetünkindex st eqindex userCretificate pres
OpenLDAP (5) • Működés, kliensek: • Szabványos de kevés plussz szolgáltatás • Parancssoros kliens: • ldapadd • ldapdelete • ldap.. • Kevés integrált alkalmazás • sendmail • Terméktámogatás mint más open source projektnél, levelezőlista • Vezérlők • Password Modify Control • ManageDsaIT
OpenLDAP (6) • Séma: • Minden RFC –ben leirt definiciót tartalmaz néhány kisérletivel kiegészitve • BNF formátumú • Zárójel opcionális elem • Nagybetű kötelező elem(oid NAME ‘objectclassname’ SUP superclass objectclasskind MUST (attribute1 $ atribute2) MAY (attribute3 $ atribute4))( 2.5.6.6 NAME ‘person’ SUP top STRUCTURAL MUST (sn $ cn) MAY (userPassword $ telephoneNumber)) • Slapd konfig. fájlban + 9 séma fájl • További fájlokat lehet hozzáadnunk
OpenLDAP (7) • Séma: • 58 szintaxis (bővithető) • 33 egyezési szabály (bővithető) • schema_init.c-ben tehetjük meg ezt • 81 osztályt támogat (igyekszik a szabványokat követni) • Többszörös öröklődés • Alias támogatás (cimtáron belüli hivatkozás) • 192 tulajdonság • Altipusok • Opciók (nyelvi változatok) • Néhány működési tulajdonság (modifiersName, …) ezeket autómatikusan használja
OpenLDAP (8) • Menedzselés: • LDIF támogatás • slapadd • slapcat • Indexelés • Slapindex (változáskor ójra kell épiteni az indexet)
OpenLDAP (9) • Biztonság: • RFC 2829 • RFC 2830 • Cyrus SASL (Simple Authentication and Secutity Layer) modul • ANONYMOUS • CRAM-MD5 • KERBEROS_V4 • PLAIN • GSSAPI • DIGEST-MD5 • LOGIN • SRP
OpenLDAP (10) • Biztonság: • Azonositás • SASL id -> OpenLDAP iduid=bilicki, cn= mycompany.com, cn=KERBEROS_V4, cn= AUTH • slapd konfig.fájl hozzárendelés • saslRegexpsaslRegexp uid=(.*),cn=MYCOMPANY.COM,cn=KERBEROS_V4,cn=auth uid=$1,ou=People,dc=Mycompany,dc=com
OpenLDAP (11) • Biztonság: • Személytelenités (impersonation) • Web szerver -> cimtár • Trükkös ACL • slapd konfig. Fájl • saslAuthzTo • saslAuthzFromsaslAuthzTo=uid.*,ou=People,dc=Mycompany,dc=com
OpenLDAP (12) • Biztonság: • Engedélyezés • slapd konfig. Fájl dirketivák • Adatbázis szintű • Globális szintű • acces to <mit> by <ki> <hozzáférés> • acces to dn=_.*,ou=People,dc=Mycompany,dc=com by dn=_cn=Han Solo,ou=Peolpe,dc=Mycompany,dc=com writedn=_.*,ou=Peolpe,dc=Mycompany,dc=com read • Módositás után újra kell inditani !!!!!!!!!!!
Áttekintés/1 • LDAP • LDAP névtér • LDAP objektum struktúra • LDAP objektum elnevezés • Kliens LDAP műveletek • Cimtárképes alkalmazások • Keresés • LDAP protokol • LDAP séma • Objektum osztályok • Attribútumok • Szintakszisok • Egyezési szabályok • OID-k • Sáma ellenőrzés • Cimtár menedzsment
Áttekintés/2 • OpenLDAP • Névtér • Műveletek és kliensek • Séma • Menedzsment • Biztonság
A következő előadás tartalma • Directory Server • Active Directory