LDAP Authentication in Apache

2015/04/20

LDAP Authentication in Apache

Um eine LDAP Authentication in Apache zu realisieren muss wie folgt vorgegangen werden.

Als erstes stellen wir sicher, dass das Apache Modul “authnz_ldap” gestartet wird. Anschließend erstellen wir im “htdocs” Pfad die Datei “.htaccess”.

Order deny,allow
Allow from All

AuthType Basic
AuthBasicProvider ldap
AuthName "LDAP User Passwort"
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://`<LDAPSERVER>`:3268/dc=`<DOMAIN>`,dc=com?userPrincipalName?sub?(objectClass=user)"
AuthLDAPBindDN "CN=`<LDAPUSER>`,OU=User,DC=`<DOMAIN>`,DC=com"
AuthLDAPBindPassword "`<LDAPPASSWORD>`"
Require valid-user

Kurze Erklärung: Das Apache Modul wir sich am <LDAPSERVER> mit dem <LDAPUSER> und dem <LDAPPASSWORD> Anmelden um anschließend ein Objekt mit der Klasse “user” zu suchen welcher als “userPrincipalName” den Username hat, den man im AuthBasic Fenster eingetragen hat. :-) War hoffentlich verständlich…

Näheres unter https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html#authldapurl

Sollte das Anmelden nicht funktionieren, hilft es den “LogLevel” auf “debug” zu stellen. Dies kann in der entsprechenden vhosts.conf erfolgen.

LogLevel debug

Erscheint nun die Fehlermeldung ldap_search_ext_s() for user failed in der Log-Datei, wurde der falsche Port in der AuthLDAPURL angegeben. Hier muss unbedingt der Port 3268 verwendet werden um auf das Globale Katalog des LDAP Servers zuzugreifen. Dies kommt besonders dann zu tragen, wenn kein OpenLDAP sondern ein ActiveDirectory verwendet wird.