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.