X.500 Directory System LDAP
X.500 ISO 9594 Directory
Alapelvek Alap cél: További célok: elektronikus levelezés segítése világméretű címtár kialakításával További célok: hierarchikus szerkezetek leírásához nem csak személyi adatbázis
Címtár szolgáltatás Címtár mint egy “adatbázis” attribútum alapú gyakori olvasásra, ritka írásra készült nincs tranzakció kezelés nincs visszaállás (rollback) elosztott - replikázással a gyors válaszidőért kliens-szerver modellként belső implementáció szabadon választható
A címtár Fa szerkezetű: Directory Information Tree (DIT) csomópont = entry entry = attribútum gyüjtemény attribútum: (típus, érték) együttes típus általában mnemonikus string érték 1 vagy több, nem feltétlenül string alakú példák: mail = ercsen@ella.hu nickname = Pista Pityu Pistike photo = {JPEG-format}
A címtár-csomópont Entry azonosítása minden entry-nek van neve RDN = Relative Distinguished Name megkülönböztet a szülő gyermekei között DN = Distinguished Name egyértelmű az egész fában az RDN-ek listája, alulról felfelé, vesszővel elválasztva UTF-8 típusú string a leíráshoz
Mi az UTF? UCS = Universal Character Set UTF = UCS Transformation Format 00000000 01010100 = 84 = ‘T’ (UCS-2) -0000000 00000000 00000000 01010100 = 84 = ‘T’ (UCS-4) group plane row cell -0000011 11000000 11110000 00110100 (UCS-4) 11111011 10110000 10001111 10000000 10110100 (UTF-8) 5 byte folytatás következik
UTF-8 példák ’T’ (Basic-Latin -- 00-7F) ‘É’ (Latin-1 Supplement -- 80-FF) ‘ő’ (Latin-Extended A -- 100-17F) UCS UTF-8 84 01010100 84 01010100 C9 11001001 C389 11000011 10001001 151 1 01010001 C591 11000101 10010001
Distinguished Name root c=UK o=Dial-a-Pizza aláhúzás = Relative Distinguished Name c=UK o=Dial-a-Pizza dept=Transport,city=Glasgow name=S_King Distinguished Name = name=S_King, city=Glasgow, o=Dial-a-Pizza, c=UK
RDN képzése Általában egyetlen attribútum Több értékből is állhat \ az „escape” cn = Kiskapusi Vendel cn = Nagy Ferenc + neptunCode = I29JG354 ou = Tervező\, Fejlesztő és Kivitelező Csoport + cn = Kiss Tibor
Csomópont jellemzése Csomópont, mint objektum objektum-osztály (oc) leírja, hogy milyen attribútumok tartoznak ide tartalmazza: szükséges attribútumok megengedett attribútumok összehasonlítás szabálya ábrázolási határok (pl. az egész szám hossza) egyéb szabályok (pl. duplikálás lehet-e vagy sem)
Szabványos attribútumok RFC 2256 szerint uid User Id sn Surname cn Common Name l Location dc Domain Context o Organization ou Organizational Unit st State c Country
A hierarchikus szerkezet Alapszerkezet 1. szint: országok (oc = country) 2. szint: államok vagy szervezetek (oc = organization) 3. szint: személyek (oc = person) Más szerkezet is lehetséges
Directory fa alias object entry entry ország szervezet személy
Directory Functional Model DSA user DUA DSA DUA user DSA DSA
Directory fa <--> DSA Ci = név-kontextus (naming context)
Műveletek Lekérdezés Módosítás teljes részfa gyermek szint aktuális szint Módosítás csomópont hozzáadása/törlése attribútumok változtatása csomópont nevének (RDN) változtatása
Műveletek típusai Komplexitás szerint Visszatérési érték szerint egyszerű láncolt láncolt műveletek a láncolós kapukon (chained operations on chained ports): Chained-Read Visszatérési érték szerint közvetlen közvetett referral (tkp.pointer) - melyik LDAP szerverbe kell beadni ismételten a lekérdezést
Protokoll modell alsó hat réteg alsó hat réteg alsó hat réteg LDAP UA DUA DSP ROSE DSA DSA ROSE alsó hat réteg alsó hat réteg alsó hat réteg
LDAP RFC 2251-2256,2829-2830
Jelentése, származása DAP könnyített változata TCP/IP felett működik szabványos interface van URL formában is elérhető!
LDIF LDap Interchange Format ldap info olvasható formában dn: uid=bmarshal,ou=People,dc=pisoftware,dc=com,c=uk uid: bmarshal cn: Brad Marshall objectclass: account objectclass: posixAccount objectclass: top loginshell: /bin/bash uidnumber: 500 gidnumber: 120 homedirectory: /mnt/home/bmarshal userpassword: {crypt}KDnOoUYN7Neac
LDAP séma Leírja, hogy egy entry hogyan nézzen ki szükséges attribútumok megengedett attribútumok korlátozások (pl. mekkora az egész szám mérete) hogyan történik az összehasonlítás tárolási előírások (pl. duplikációk lehetnek-e)
Séma példa objectclass machine requires objectClass, hostname, cpu, ram, usage allows rsync
Sémához tartozó LDIF dn: cn=carmack,ou=Machines,dc=pisoftware,dc=com hostname: carmack objectclass: top objectclass: machine usage: workstation rsync: etc cpu: PIII 550 ram: 256M
LDAP architektúra slapd címtár rendszer LDAP kliens
Replikáció szervezés replikáció napló szolga-slapd slapd slurpd LDAP kliens
LDAP hozzáférés Parancssoros API specifikálva ldapadd ldapmodify ldapdelete ldapsearch $ ldapmodify -r -D 'cn=foo,dc=com' -W < /tmp/user.ldif
LDAP-URL <ldapurl> ::= "ldap://" [ <hostport> ] "/" <dn> [ "?" <attributes> [ "?" <scope> "?" <filter> ] ] <attributes> ::= NULL | <attributelist> <scope> ::= "base" | "one" | "sub" <filter> ::= a string as defined in RFC 1558 ldap://ldap.bedrock.com/dc=bar, c=uk?cn?sub?uid=barney attribútumok hatókör szűrő
Szűrési kifejezések Különféle operátorok & | ! = <= >= ~= (kb. azonos) * (bármi) prefixes leírás (objectclass=posixAccount) (cn=Mickey M*) (|(uid=fred)(uid=bill)) (&(|(uid=jack)(uid=jill))(objectclass=posixAccount))