Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: LDAP Dr. Wolfgang Wörndl
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Überblick Architektur –Client-Server Modell Verzeichnisdienst LDAP –Motivation –LDAP Datenmodell –Architektur, Protokoll –Beispiel –Austauschformat (LDIF)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Einleitung Namensdienst (WH) –Abbildung Name -> Adresse –ID als eindeutiger Name –Bsp.: DNS Verzeichnisdienst (directory service) –Speicherung zusätzlicher Attribute –Erweiterte Queries (Pattern matching) –Spezielle Datenbank
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Verzeichnis Verzeichnis (directory): Liste von (sortierten) Objekten mit beschreibender Information (Metadaten) Unterschied Verzeichnis – Datenbank –Verzeichnis hat (deutlich) mehr Lese- als Schreib-Anfragen –Keine Transaktionen –Unterschiedliche Anfragesprachen (SQL bei Datenbanken)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Verzeichnisdienst Verzeichnisdienst (directory service): Namensdienst mit Objektnamen und Metadaten Anfragemöglichkeiten –„White Pages“: Zugriff mit Namen –„Yellow Pages“: Zugriff mit Metadaten LDAP (Lightweight Directory Access Protocol) als Beispiel
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Motivation X.500 –ITU Empfehlung, ISO Standard –Aufwendig und komplex Benötigt alle 7 ISO/OSI-Schichten Namen und Daten basieren auf ASN.1 –Zugriffsprotokoll (DAP) LDAP –Definiert Protokoll auf Basis von TCP/IP –Vereinfachtes Datenmodell –Verzeichnisdienst selbst wird nicht festgelegt
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Modelle Informationsmodell –Grundlegende Datentypen und Basiseinheiten Namensmodell –Referenzierung der Objekte (DN) Funktionales Modell –Protokoll, Operationen Sicherheitsmodell –Rahmen, um den Zugriff auf das Verzeichnis zu kontrollieren
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, X.500 Informationsmodell Attribut... Eintrag Kontext Alias
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Einträge Einträge setzen sich aus Attributen zusammen Attribut objectClass –Legt Attribut-Typen fest (z.B. „person“) –Optionale und verpflichtende Attribute Attribut –Typ (z.B. bin, ces, cis, tel, dn) –Ein oder mehrere Werte –Einschränkungen möglich
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Namensmodell (I) Einträge hierarchisch als Directory Information Tree (DIT) geordnet Jeder Eintrag hat (eindeutigen) Distinguished Name (DN) –Alle RDN´s von der Wurzel aus (ohne Wurzel selber) Relative Distinguished Name (RDN) –Besteht aus den Werten ein oder mehrerer Attribute –Bsp.: „cn=woerndl“
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Namensmodell (II) DN-Beispiel: „cn=woerndl, ou=users, dc=in, dc=tum, dc=de“ Alias-Namen möglich Verteilung des DIT auf mehrere Server möglich (z.B. Aufteilung nach organisatorischen Einheiten)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, DIT Beispiel
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Client Server
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDAP Protokoll Aufbau einer Verbindung –TCP-Port 389 Authentifizierung –Bind Operationen –... Abmelden –Unbind Client Server BindRequest BindResponse UnbindRequest OpRequest OpResponse...
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Operationen Search: Einträge suchen –Variante ohne/mit Timeout Modify: Attribute modifizieren Add: Neuen Eintrag ergänzen Del: Eintrag löschen ModifyRDN: Letzten Namensteil löschen CompareDN: Vergleichen AbandonRequest: Abbruch Anfrage
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Suchanfrage ldap_search_s –LDAP *ld –char *base –int scope –char *filter –char *attrs[] –bool attrsonly –LDAPMessage *res ldap_search_st (Timeout)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Filter Wildcard * Filtertypen –„present“, „substring“ –equal, approx, greater, less Kombination möglich –and, or, not Präfixnotation Beispiel: (&(cn=schmi*)(!(c=de))(mail~=abc))
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Code Beispiel #define SEARCHBASE "o=TUM,c=DE"; LDAP *ld; char *User = NULL; char *Passwd = NULL; /* open a connection */ if ((ld = ldap_open("ldapserver.in.tum.de", LDAP_PORT)) == NULL) exit(1); /* authenticate as nobody */ if (ldap_simple_bind_s(ld, User, Passwd) != LDAP_SUCCESS) { ldap_perror(ld, "ldap_simple_bind_s"); exit(1); } /* search the database */ char searchfilter[] = "cn=Wörndl"; LDAPMessage *res; if (ldap_search_s(ld, SEARCHBASE, LDAP_SCOPE_SUBTREE, searchfilter, NULL, 0, res) != LDAP_SUCCESS) {... }... /* close and free connection resources */ ldap_unbind(ld);
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, LDIF LDAP Data Interchange Format (LDIF) Zum Import und Export von Daten Beispiel im Skript
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Fazit Verzeichnisdienst zentraler Baustein verteilter Anwendungen LDAP als Beispiel Hohe Verbreitung –(relativ einfache) Standards –Zahlreiche Implementierungen, z.B. Ausblick Montag –Web Services –Remote Prozedure Call (RPC) Einleitung