OpenLDAP

From Dietrich Blog (Strato)
Jump to: navigation, search

Um Erfahrungen mit LDAP sammeln zu können, habe ich auf meinem Windows2000-Notebook einen OpenLDAP-Server installiert.

Installation OpenLDAP Server

  • Definitive Software Library ID: OpenLDAP
  • Installationsdatum: Juni 2003
  • Name: OpenLDAP Server
  • Version: 2.0.19
  • Hersteller/Bezugsquelle: http://lucas.bergmans.us/hacks/openldap/ (FiveSight)
  • Installationsplattform: W2k-Notebook
  • Installationsordner: D:\Programme\openldap
  • Konfigurations-Datei:
    • D:\Programme\openldap\slapd.conf (s.u.)
    • D:\Programme\openldap\schema\*.schema
  • Programmstart: Windows-Service
  • Systemvoraussetzungen: Berkeley DB (sleepycat)

Installationsschritte

  1. Download der Binaries von FiveSight
  2. Basic Configuration: slapd.conf
    1. Include Schemas: core, cosine, nis, inetorgperson
    2. Irgendwann möchte ich auch Teile des Domino-Schemas (dominoPerson, dominoGroup,...) von Lotus Notes einspielen. Ich habe da Fragmente im iPlanet-Netscape-Format (/dokumente/kracht/email/ldap).
    3. Define LDAP Database: database ldbm - directory d:/usr/local/var/openldap-data
    4. Setup RootDN
 rootdn cn=Manager
 rootpw secret

Datensicherung

???????????

Starten und Stoppen des OpenLDAP

Ist im Win2000 als Dienst mit dem Namen "OpenLDAP Directory Service" installiert.

Testen und Betrieb

  • Testdaten laden

slapadd -f slapd.conf -l ldiffile.ldif

  • Testweise Zugriffe als LDAP-Suche

ldapsearch -x "(&(objectclass=person)(sn=K*))"

  • Datensichern

slapcat -f slapd.conf -l backup2003mmdd.ldif

Erweiterungen des LDAP-Schemas

Für die Versuche mit verschiedenen Adressbeständen habe ich diverse Erweiterungen des LDAP-Schemas vorgenommen:

  • Lotus Domino
  • Rolodap
  • MozillaABPersonObsolete

TWiki-LDAP-Plugin

Für das TWiki gibt es ein Plugin, mit dem man dierekt auf einen LDAP-Server zugreifen kann und die Ergebnisse einer LDAP-Query dynamisch in eine Webseite einbauen kann......

Open LDAP Adressbücher

Ich möchte meine Adressbücher auf dem OpenLDAP-Server als Single-Source führen und dann meinen E-Mail-Client so konfigurieren, dass er direkt darauf zugreift. Verschiedene Testbestände habe ich auf meinem OpenLDAP-Server bereits angelegt:

  • GMO-Veteranen mit ihren privaten E-Mail-Adressen
  • .......

Ausser mit dem E-Mail-Client versuche ich mit diversen web-basierten LDAP-Clients (Rolodap,...) auf die LDAP-Adressen zuzugreifen...

Rolodap als LDAP-Client in PHP-Technik

Ein LDAP-Client wie Rolodap ist ganz leicht bei WebProvider-Anbietern zu betreiben, da es nur PHP voraussetzt. Mein Beispiel http://www.kr8.de/rolodap

Schwieriger ist es dazu auch einen eigenen LDAP-Inhalt im Internet zu plazieren. Habe einen frei nutzbaren LDAP-Server bei Netscape gefunden: http://www.nldap.com .

Problem dabei: Rolodap verwendet Erweiterungen des LDAP-Schemas um eigene ObjectClasses (rolodapContact, rolodapUser, rolodapBook,...), aber auf dem NLDAP-Server kann man keine Schema-Erweiterungen installieren (einem geschenkten Gaul...). Also versuche ich Rolodap soweit zu modifizieren, das die wesentlichen Dinge mit den Standard-ObjectClasses funktionieren.

  1. Statt rolodapContact wird inetOrgPerson verwendet.
    • Beim Suchen Filter für objectclass ändern (person) (in showperson.php)
    • Beim Suchen Filter mit "(active=yes)" weglassen
    • Jede inetOrgPerson muss das Attribut uid haben, da Rolodap durchgehend damit arbeitet.
  1. Beim Anmelden des Users nicht nach User-Adressbüchern suchen, keine User-Adressbücher anlegen...
  2. Beim Modifizieren von Contact-Daten, diejenigen Attribute totlegen, die in inetOrgPerson nicht vorkommen (z.B. officeextension, companyname, departement, affiliation, relationship, otherphone, homemail,...). Coding dazu in ldapedit_array.php.
  3. Beim Anlegen neuer User (ldapadduser-array.php) und beim Modifizieren von User-Passwörtern (ldapchangepassword.php) muss als Hash-Algorithmus {SHA} angegeben werden, dann funktioniert es in der Testumgebung mit dem lokalen OpenLDAP jedenfalls. Dazu musste die PHP-Extension php_mhash aktiviert werden.
  4. Das Authentifizieren eines Users finden in der Startseite (index.php ex. auth.php) durch eine LDAP Bind statt. Hierbei gibt es grössere Probleme beim LDAP-Server www.nldap.com. Die Probleme konnten eindeutig eingegrenzt werden auf den LDAP Bind, den kann man auch unabhängig von Rolodap testen.

LDAP-Client Rolodap im WebProvider

Rolodap als Demo im WebProvider bei Westhost: LDAP-Client Rolodap

Lesende und schreibende Zugriffe auf ein LDAP-Directory werden dort mit Hilfe des PHP-Projekts Rolodap demonstriert. Als LDAP-Server wird ein Test-Account NLDAP bei Netscape verwendet (19.09.2003 Server Name: DEVNET-PUBLIC, Server DNS Name: nldap.com, NDS Tree Name: DEVNET-TREE, NDS Login Context: .admin.lonzo.user.novell, NDS Password: lo..., NDS User Directory: vol1:user\lonzo).

-- Main.DietrichKracht - 21 Feb 2004