360 likes | 678 Vues
LDAP. von Sebastian Streitberger. Inhalt. Was ist LDAP? Geschichte und Versionen von LDAP Schema und Verzeichniseinträge LDAP Konzepte und Architektur Praktisches Beispiel: Adressbuch Quellen. Was ist LDAP?.
E N D
LDAP von Sebastian Streitberger
Inhalt • Was ist LDAP? • Geschichte und Versionen von LDAP • Schema und Verzeichniseinträge • LDAP Konzepte und Architektur • Praktisches Beispiel: Adressbuch • Quellen
Was ist LDAP? LDAP ist die Abkürzung für das Lightweight Directory Access Protocol. Wie der Name sagt, unterstützt dieses Protokoll einen Verzeichnisdienst (Directory). Was ist ein Verzeichnis? Ist eine Auflistung von Informationen über Objekte in einer gewissen Ordnung. Zu jedem Objekt kann man Detailinformationen abfragen. Beispiel: In einem Telefonbuch sind die Objekte die Personen, die Ordnung ist alphabetisch, und die Detailinformationen, die man bekommen kann, sind Adresse und Telefonnummer.
Was ein Verzeichnis nicht ist ... • Ein Verzeichnis ist keine Allzweckdatenbank • Ein Verzeichnis ist kein Dateisystem • Ein Verzeichnis ist kein Ersatz für eine lokale Dateiablage • Ein Verzeichnis ist kein 'Netzwerkmanagement-Tool'
Wie kann ein LDAP-Verzeichnis die Arbeit im Netzwerk erleichtern? LDAP ermöglicht einfach und schnell: • Normalisierte Datenhaltung • Zentrale Verwaltung der Informationen • Konsistenz in der Schnittstelle zum User • Konsistenz in den Richtlinien für das Netzwerkmanagement • Konsistenz in den Security Policies
Wieso habe ich noch nichts von LDAP gehört, wenn es so toll ist? • LDAP ist dann doch nicht ganz das Allheilmittel für alle Netzwerkwehwehchen • Fehlende Unterstützung • Microsoft stetzt intern auch auf LDAP -> Windows 2000 Active Directory; .net-Server volle LDAP-Kompatibilität • Viele Hersteller verzichten auf eine LDAP – Schnittstelle • Wenig Support und Dokumentation für Einsteiger
Geschichte und Versionen Das alte Problem: Gewachsene Strukturen und nicht kompatible Systeme. Die Lösung: Standards X.500 - Der Directory Service Standard Directory Services - Verzeichnisdienste. 1988 wurde der X.500 Standard verabschiedet X.500 organisiert Einträge in einem Verzeichnis über einen hierarchisch aufgebauten Namensraum Als Protokoll für die Kommunikation zwischen dem Directory -Client und dem Directory-Server wurde das so genannte Directory Access Protocol (DAP) spezifiziert.
Als Protokoll des obersten OSI-Layers, dem Application Layer, ist es auf den vollständigen darunterliegenden Schichtenstapel angewiesen • Es musste ein leichtgewichtig- eres Protokoll her, eben das Lightweight Directory Access Protocol • LDAP setzt als 'Light'-Version von DAP auf die verbreitete TCP/IP-Schicht auf. Außerdem vereinfacht LDAP einige X.500-Operationen
Versionen • LDAP v3 wurde im Dezember 1997 von der IETF als 'Proposed Internet Standard' bestätigt und hat LDAP v2 in einigen wichtigen Aspekten verbessert: • Globalisierungssupport: Verwendung von Unicode für die interne Repräsentierung für Daten, können Zeichen aller Weltsprachen benutzt werden • Sicherheit: LDAP v3 hat nun Standardmechanismen, um Simple Authentication and Security Layer (SASL) und Transport Layer Security (TLS) zu unterstützen. damit bietet LDAP ein umfassende Datensicherheit • Erweiterbarkeit • Offenlegen von Funktionen und Schemas
Schema und Verzeichniseinträge • LDAP-Schema definiert die Liste möglicher Typen von Einträgen (die man als Objektklassen bezeichnet) zusammen mit den mit ihnen verknüpften Attributen. Schema-Definitionen werden in Dateien gespeichert. • Jeder LDAP-Server hat ein oder mehrere bekannte Standard-Schemas • Beispiel: Durchsuchen eines LDAP Servers! öffentliche Suchanfragen akzeptiert der Server -> Objektklasse inetOrgPerson. Damit kann ich schon nach den vollen Namen [cn] den Nachnamen [sn] die E-Mail Adresse [mail] oder den Vornamen [givenname] suchen! • Objektklassen sind hierarchisch angeordnet, wobei die Objektklasse top die Wurzel des Baums bildet • Objekte der ersten Ebene (Level) sind Child-Objekte!
Aufbau einer *ldif Datei dn: cn=cool-divers,ou=users,dc=lokal,dc=de cn: cool-divers givenName: cool-divers sn: cool-divers l: Troisdorf postalCode: 53842 street: Heidegraben 30 facsimileTelephoneNumber: 02246-900695 mobile: 170-2774400 mail: info@cool-divers.com objectClass: top objectClass: inetOrgPerson telephoneNumber: 02246-302940
Schemaübersicht /etc/openldap/schema
LDAP - Architektur Bei LDAP ist die Adresse LDAP host-URL + DN weltweit eindeutig. So wird dann auch eine LDAP-URL zusammengesetzt: ldap://ldap.canon.com/o=canon,c=us
Aufbau Linux Server Linux o. Windows Client SuSE Linux 9.3 Windows 9x, 2000 o. XP
Unterschiede zwischen der Orginal-OpenLDAP-Installation und der SuSE-OpenLDAP-Installation
####################################################### # BDB database definitions ####################################################### database ldbm checkpoint 1024 5 cachesize 10000 suffix "dc=lokal,dc=de" rootdn "cn=manager,dc=lokal,dc=de" # Cleartext passwords, especially for the rootdn, should # be avoid. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw geheim # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd and slap tools. # Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq
Client File ldap.conf #ldap.conf for lokal de # # Beachten Sie auch man ldap.conf # BASE dc=lokale,dc=de HOST 127.0.0.1 /etc/openldap/ldap.conf
„Container *.ldif anlegen“ ldapadd –x –D „cn=Manager, dc=lokal,dc=de“ –W –f main.ldif -x -> Simple Authentication -D -> Bind dn -W -> promt password line -f -> File $ adding new entry „…“ # LDAP Domaine dn: dc=lokal,dc=de objectClass: domain objectClass: dcObject dc: lokal # Container fr die Benutzer dn: ou=users,dc=lokal,dc=de ou: users objectClass: top objectClass: organizationalUnit # Container fr die NT-Maschinen dn: ou=hosts,dc=lokal,dc=de ou: hosts objectClass: top objectClass: organizationalUnit # Container fr die Gruppen dn: ou=groups,dc=lokal,dc=de ou: groups objectClass: top objectClass: organizationalUnit # Manager des LDAP Verzeichnis dn: cn=manager,dc=lokal,dc=de objectClass: organizationalRole cn: manager main.ldif
Der 1. Eintrag Die Daten werden ebenfalls per *.ldif File eingefügt! dn: cn=cool-divers,ou=users,dc=lokal,dc=de cn: cool-divers givenName: cool-divers sn: cool-divers l: Troisdorf postalCode: 53842 street: Heidegraben 30 facsimileTelephoneNumber: 02246-900695 mobile: 170-2774400 mail: info@cool-divers.com objectClass: top objectClass: inetOrgPerson telephoneNumber: 02246-302940 eintrag.ldif
Hinzufügen des Eintrages ldapadd –x –D „cn=manager,dn=lokal,dc=de“ –W –f eintrag.ldif adding new entry „…“ Nun können wir schon testen ob alles klappt! ldapsearch -x Es wird alles im Directory ausgegeben! Da sollte auch unser Eintrag stehen!
Konfigurieren des Clients • Nehmen wir Thunderbird, das bietet ein sehr gutes Adressbuch und ist für Windows und Linux erhältlich Ebenso gut geht unter Linux das KDE,Gnome Adressbuch oder andere Adressbücher Anwendungen
Quellen • LDAP System Administration O‘Reilly ISBN 1-56592-491-6 • pro-linux.de http://pro-linux.de/t_office/openldap-adressbuch.html • Linux LDAP Howto http://www.linuxhaven.de/dlhp/HOWTO/DE-LDAP-HOWTO.html • Linux Magazin http://www.linux-magazin.de/Artikel/ausgabe/1998/09/LDAP/ldap.html • OpenLDAP http://www.openldap.org • MitLinX http://www.mitlinx.de/ldap • Das Verzeichnis für Verzeichnisdienste http://www.verzeichnisdienst.de/