LDAP- und AD-Anbindung
Konfiguration
Um die LDAP-Anbindung an einen anderen Server anzupassen, muss die Datei /init/gris_init_settings.php editiert werden. Falls diese noch nicht vorhanden ist, kann sie aus der Beispieldatei /init/gris_init_settings_example.php kopiert werden:
cd init
cp gris_init_settings_example.php gris_init_settings.php
Die Settings werden mit dem Parameter reload=true
in die DB eingelesen.
Aufruf im Browser
http(s)://[GRIS-SERVER]/index.php?reload=true
Verbindungsparameter
Die Verbindungsparameter müssen an den jeweiligen Server angepasst werden.
Die Option use_data
schaltet die Synchronisierung der Stammdaten (Tel., Fax, Raumnr. etc.) an (1) oder aus (0). Die Mailadresse wird für Nachrichten an die jeweiligen Verantwortlichen genutzt, falls Stammdaten geändert werden müssen.
GRIS hat keinen schreibenden Zugriff. Insofern müssen alle Anpassung zur Person in LDAP oder AD vorgenommen werden. Eine erneute Anmeldung an GRIS synchronisiert die Daten dann.
Der Reader-Account muss jedoch zumindest Leserechte für alle Accounts haben, die GRIS nutzen sollen.
// Name of the ldap host
$init_settings->set_setting("ldap", "ldaphost","127.0.0.1");
// Basedn for ldap
$init_settings->set_setting("ldap", "basedn","OU=kommunikation,DC=nodomain");
// Name ldapr reader
$init_settings->set_setting("ldap", "ldap_reader_name","CN=guest,DC=nodomain");
// Password of ldap reader
$init_settings->set_setting("ldap", "ldap_reader_pass","guest123");
// Use person data from ldap
$init_settings->set_setting("ldap", "use_data","1");
// Default mail address für base data changes
$init_settings->set_setting("ldap", "basedata_mail","helpdesk@domain.org");
// Filter for ldap entries
$init_settings->set_setting("ldap", "ldap_filter","Deaktiviert");
Port und Protokoll können im Feld „ldaphost“ eingegeben werden:
// Port
$init_settings->set_setting("ldap", "ldaphost","127.0.0.1:4711");
// Protokoll
$init_settings->set_setting("ldap", "ldaphost","ldaps://127.0.0.1");
// Beides
$init_settings->set_setting("ldap", "ldaphost","ldaps://127.0.0.1:4711");
LDAP-Mapping
Da die einzelnen Felder bei vielen LDAP-Servern abweichen, kann ein individuelles Mapping angelegt werden:
// Last name
$init_settings->set_setting("ldap", "sn","sn");
// First name
$init_settings->set_setting("ldap", "givenname","givenname");
// Distinguished name
$init_settings->set_setting("ldap", "dn","dn");
// Unique ID
$init_settings->set_setting("ldap", "objectguid","entryuuid");
// Mail
$init_settings->set_setting("ldap", "mail","mail");
// Postal code
$init_settings->set_setting("ldap", "postalcode","postalcode");
// Street address
$init_settings->set_setting("ldap", "streetaddress","street");
// Phone number
$init_settings->set_setting("ldap", "telephonenumber","telephonenumber");
// Fax number
$init_settings->set_setting("ldap", "facsimiletelephonenumber","facsimiletelephonenumber");
// Location
$init_settings->set_setting("ldap", "l","l");
// Room
$init_settings->set_setting("ldap", "physicaldeliveryofficename","roomnumber");
// Account name
$init_settings->set_setting("ldap", "sAMAccountName","uid");
Der Account-Name (im Original sAMAccountName
) ist der Username, der auch später zur Anmeldung an GRIS verwendet wird.
Die Felder dürfen in LDAP leer bleiben, müssen aber zumindest vorhanden sein.
Test des LDAP-Zugangs
Zum Testen oben beschriebenen Konfiguration sollte das Tool test_ldap.php benutzt werden, da eventuelle Fehler wesentlich detaillierter ausgegeben werden:
https://[GRIS-Pfad]/tools/test_ldap.php?key=my_s3cr3t
Hinweis
Der passende Schlüssel muss vorher in den Settings in der Gruppe security
als key
hinterlegt werden. Der Standardeintrag lautet my_s3cr3t
.
Settings für LDAP
- „update_su_data“:
0: Switch-User-Daten werden nicht aktualisiert
1: Switch-User-Daten werden aktualisiert
- „use_data“:
0: LDAP-Daten werden nicht aktualisiert
1: LDAP-Daten werden aktualisiert
LDAPS Fehlerbehebung
Zur Nutzung von LDAPS statt LDAP müssen betriebssystemspezifische Änderungen vorgenommen werden.
Linux
In der Datei /etc/openldap/ldap.conf muss die Zeile
TLS_REQCERT never
hinzugefügt werden.
Windows
Anlegen einer neuen Umgebungsvariablen:
LDAPTLS_REQCERT=never
Alternativ kann die Umgebungsvariable auch temporär über den Code gesetzt werden:
putenv('LDAPTLS_REQCERT=never');
Damit wird sichergestellt, dass die PHP-Instanz des Client-Webservers niemals den FQDN des Servers mit dem CN (Common Name) des Zertifikats vergleicht. Die permanenten Eintragungen führen aber auch dazu, dass die anderen Tools/Anwendungen im gesamten Betriebssystem auf dem Webserver-Rechner keine Überprüfung mehr durchführen.