340 likes | 463 Views
Lightweight Directory Access Protocol (LDAP). CTO, René Viborg. LDAP bruges til at tilgå (bruger) data. LDAP = Lightweight Directory Access Protocol Standard protocol TCP/IP Tilgå data over netværk Directory Service Bruger, oplysninger om disse, tlf. Nr., ip-adr, password
E N D
Lightweight Directory Access Protocol (LDAP) CTO, René Viborg
LDAP bruges til at tilgå (bruger) data • LDAP = Lightweight Directory Access Protocol • Standard protocol • TCP/IP • Tilgå data over netværk • Directory Service • Bruger, oplysninger om disse, tlf. Nr., ip-adr, password • LDAP bredt anvendt access-protokollen til f.eks authentication af bruger oplysninger eller lignende • ”Mager” data-struktur, beregnet til at udvide med leverandørafhængige objekter (Skema)
LDAP er en protokol • Baseret på X.500 (Directory System fra 1988) • International Telecom Union (ITU), International Organization for Standards (ISO) • Nu er der ikke så mange der præcist benytter X.500, men X.500 har på en måde stået fadder til Vines, Novell NDS og Microsoft Active Directory. • LDAP er nem at implementere i forhold til X.500 • Gemmer data med et tilhørende skema baseret på attributes • Data arrangeret i en træ-struktur • Beskrevet i RFC1777 and RFC2251
LDAP har sin egen definitions-struktur • Der læses mere end der skrives • Ofte extension,plug-in på ”normal” relationel db (f.eks IBM Dir) • Ingen transaktions model • Ingen Rollback • Client-server model • Baseret på “entries” - objekter • Med tilhørende attributer • Key, Naming Attribute • Key = Distinguished Name (DN) – OFTE I DOMINO • Key andre stedet uid=User ID (SUN ONE)
LDAP er et produktet af en universistetsopgave • University of Michigan skrev den første LDAP implementation • Fandt X400 Gateway for omfangsrig • NetScape brugte det iforb med webapps • skulle bruge et bruger bibliotek • iPlanet, nu Sun One
LDAP Server eksempler • IBM Directory Server 5.1 • Sun ONE Directory Server 5.2 (iPlanet) • Novell (e-directory), • Microsoft (Active Directory) • Domino • Linux (Redhat, SUSE m.fl.)
LDAP er go til at hente, læse data • LDAP definerer en nem måde at komme i forbindelse med informationen i et bibliotek (X.500 Directory) • Authentication af brugeroplysninger • Security – gemme brugernavne og passwords • Finde ting • Personer, Ressourcer • Telefonbog • Et fundament for IP Telefoni • Directories • Dele bruger oplysninger • Eliminere “N + 1” • Lightweight database applications – bøger, links etc. • Små datamængder pr. record • Digital certificates, PKI etc
Portal (Web) Domino User1 User2 User3 LDAP AD, Exchange User1 User2 User3 User4 User5 User6 .... Custom app. User4 User5 User6 GroupWise Cisco (ip tlf) ......
LDAP er ikke velegnet til skrivning af data • LDAP er ikke relationel db, men kan være baseret på det • Ingen rollback • LDAP er ikke et filsystem • Ingen søgning i BLOB data • LDAP er ikke egnet til dynamiske objekter • Optimeret for read, ikke write • Ingen locking, dvs. Ingen sekvens i skrivninger • Ingen generisk SQL lignende “reporting language” • Ikke nyttig uden applikationer
Schema er grundstrukturen i LDAP data • Template i Domino terminologi • Data strukturen og definition af denne • Skema checking, er ofte enablet i serveren • Overholdes Skema strukturen ikke kan man ikke gemme oplysninger • Mulighed for at disable dette • Uden Skema er det samme som • Ingen Forms i en Domino db. • Selvstændig ”ben” på LDAP serveren
Name space uid=rv uid=jod
UID er den relativ betydende del Yderste venstre del RDN (relative distinguished name) F.eks. uid=rviborg, ou=People,dc=IntraVision,dc=dk resten er base distinguished name dvs. RDN er uid=rviborg Base DN er ou=People,dc=IntraVision,dc=dk
LDAP Entry • Entries består af attributes, egenskaber • Attributes består af typer med en eller flere værdier • Type beskriver hvad informationen det er • Value er information i tekst format • Attributes har en syntax, altså hvilken type af data
Objekter er data og Attributes egenskaberne Data Struktur F.eks. telephoneNumber Number • ”Næsten” det samme som XML schema
Schema definere indholdet • Regler for hvilken slags data som gemmes • Hjælper til at vedligeholde konsistens og kvaliteten af data • Reducere dubletter • Sikre at applikationer har et konsistent interface til data • Object class attribute bestemmer regler som de enkelte entry må følge
Schema eksempel # name : inetOrgPerson # objectClass : top # objectClass : person # objectClass : organizationalPerson # objectClass : inetOrgPerson PREFIX: uid REQUIRED ATTRIBUTES OPTIONAL ATTRIBUTES givenName telephoneNumber sn userPassword ou l roomNumber mail facsimileTelephoneNumber uid cn
LDIF (LDAP Data Interchange Format) • Filbasert udveklingsformat (lidt som en CSV-fil) • Bruges mellem LDAP biblioteker • Kan bruges som et generisk import/eksport format for directory data • Domino • Er i Config i NAB • IBM Directory Server • Som skema fil • Active Directory • Som skema fil • command-line utility, LDIFDE
DSML (Directory Service Markup Language) • XML-baseret fil format • Kan indeholde schema og data • Kan bruges som et generisk import/eksport format for directory data • Mere komplekst end LDIF • Kan omfore LDAP data til næsten hvilket som helst format • Ikke alle LDAP servere suportere det
Forskelle ml. LDAP og AD (Microsoft) • Organisation = DC (Domain Component) • Skal man test anbefaler jeg • Active Directory Application Mode (ADAM) • Understøtter både DC og X.500 • Forskelle i skema
Demo af Sun ONE • Nemt af sætte op • Hurtig tilgang • Skalerbart
The TOOLS • LDAPSearch • LDAPBrowser/Editor • LDAPBrowser • Softerra • LDAP Script klasser • Java
The TOOLS • LDAPSearch • Leveres med Domino • Example ldapsearch -b "ou=People,dc=example,dc=com" –h wse.ibm.com:43404 -D "cn=Directory Manager" -w password "uid=rviborg”
The TOOLS • LDAP Browser/Editor (version 2.8.1) • http://www-unix.mcs.anl.gov/~gawor/ldap/ • Softerra LDAP Browser • FREE
LDAP Script klasser (LSX) • IBM Sandbox • http://www-10.lotus.com/ldd/sandbox.nsf • Række script klasser • LSX
Directory Servers • Domino … kun til test • Active Directory Server • IBM Directory Server 5.1 • Sun ONE Directory Server 5.2 (iPlanet) • Microsoft ADAM
Ressourcer • RFC 2251 Lightweight Directory Access Protocol (v3). • RFC 2252 Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions. • RFC 2253 Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names. • RFC 2254 The String Representation of LDAP Search Filters. • RFC 2255 The LDAP URL Format. • RFC 2256 A Summary of the X.500(96) User Schema for use with LDAPv3.
Links • LDAP • http://www.openldap.org/ • http://www.ldapguru.net • http://developer.novell.com • http://www.sun.com • DSML • http://www.dsmltools.org/ • ADAM • http://www.devx.com/dbzone/Article/27241
Spørgsmål? René Viborg IntraVision Lyngsø Alle 3 2970 Hørsholm www.intravision.dk rv@intravision.dk