Difference between revisions of "OpenLDAP"

From Dietrich Blog (Strato)
Jump to: navigation, search
(LDAP-Client '''Rolodap''' im WebProvider)
(Replaced content with "Has been moved to: http://blog.kr8.de/wiki-openldap/")
 
Line 1: Line 1:
{{TOCright}}
+
Has been moved to: http://blog.kr8.de/wiki-openldap/
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  <br />
 
  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  <br />
 
slapadd -f slapd.conf -l ldiffile.ldif
 
* Testweise Zugriffe als LDAP-Suche <br />
 
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 [[Adressbuch|Adressbücher]] auf dem OpenLDAP-Server als Single-Source führen und dann meinen [[E-Mail-Client|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|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 <b>uid</b> 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 <b>{SHA}</b> angegeben werden, dann funktioniert es in der Testumgebung mit dem lokalen OpenLDAP jedenfalls. Dazu musste die PHP-Extension <b>php_mhash</b> aktiviert werden.
 
# Das Authentifizieren eines Users finden in der Startseite (index.php ex. auth.php) durch eine <b>LDAP Bind</b> statt. Hierbei gibt es grössere Probleme beim <b>LDAP-Server www.nldap.com</b>. 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: [http://www.kr8.de/rolodap LDAP-Client Rolodap]
 
 
 
Lesende und schreibende Zugriffe auf ein LDAP-Directory werden dort mit Hilfe des PHP-Projekts [http://sourceforge.net/projects/rolodap Rolodap]  demonstriert. Als LDAP-Server wird ein Test-Account [http://www.nldap.com 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).
 
 
 
[[Category:DefinitiveSoftwareLibrary]]
 
 
 
-- Main.DietrichKracht - 21 Feb 2004
 

Latest revision as of 08:33, 9 May 2020

Has been moved to: http://blog.kr8.de/wiki-openldap/