21x9.org

Apache: LDAP-Authentifizierung

Categories: [blog]
Tags: [imported]

Wer einen Webserver betreibt hat meistens einige Inhalte, die nicht für die Öffentlichkeit bestimmt sind und daher mit einem Kennwort geschützt werden sollen. Zum Beispiel die Zugriffsstatistiken.

Normalerweise verwendet man hierzu eine .htaccess-Datei in Verbindung mit einer Kennwortdatei. Praktischer ist es jedoch wenn man auf Benutzer in einer LDAP-Datenbank zurückgreifen kann, da die Benutzer sich keine zusätzlichen Kennwörter merken müssen.

Auch hierbei kann eine .htaccess-Datei verwendet werden, die Kennwortdatei entfällt jedoch.

Zunächst sind aber erst einmal die entsprechenden Apache-Module für die LDAP-Authentifizierung einzuschalten:

a2enmod ldap
a2enmod authnz_ldap
/etc/init.d/apache restart

Anschließend kann die .htaccess in dem zu schützenden Verzeichnis angelegt werden (alternativ kann man die entsprechenden Zeilen auch direkt in die Apache-Konfiguration einfügen):

#/var/www/webalizer/.htaccess

AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthName "Password protected. Enter your username and password."
AuthLDAPURL "ldap://localhost/ou=people,dc=ldap,dc=example,dc=com?uid?sub?(objectClass=*)"
Require valid-user

Mit AuthBasicProvider wird die LDAP-Authentifizierung eingeschaltet. AuthLDAPURL legt zum einen die Verbindung zum LDAP-Server fest, zum anderen wird hier das Attribut ausgelesen, mit dem der Benutzer identifiziert wird (hier also die uid).

Die Option Require valid-user erlaubt den Zugriff jedem im LDAP-Verzeichnis gefundenen Benutzer. Mit der Option Require ldap-user könnte der Zugriff auch auf einzelne Benutzer eingeschränkt werden. Mit Require ldap-group auf bestimmte LDAP-Gruppen.

Siehe auch: http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html