OpenLDAP Server
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
- Download der Binaries von FiveSight
- Basic Configuration: slapd.conf
- Include Schemas: core, cosine, nis, inetorgperson
- 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).
- Define LDAP Database: database ldbm – directory d:/usr/local/var/openldap-data
- 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.
- 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.
- Beim Anmelden des Users nicht nach User-Adressbüchern suchen, keine User-Adressbücher anlegen…
- 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.
- 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.
- 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