Apache Authentifizierung über LDAP
From NJH-Wiki
- Autor
- Frank Prößdorf
Contents |
Voraussetzungen
Diese Howto geht von folgenden Gegebenheiten aus:
- Installiert ist ein SuSE Linux und ein LDAP Server.
- Auf dem Rechner auf dem der Apache läuft muss ebenfalls das openldap-Paket installiert sein.
Das meiste gilt aber für andere Distributionen genauso.
Schritt für Schritt
Paket installieren
Zunächst installieren wir das Apache2 Paket über:
yast -i apache2
Dann editieren wir die Datei /etc/sysconfig/apache2 und fügen zu den APACHE_MODULES ldap und auth_ldap hinzu. Es folgt der Aufruf von SuSEconfig, der dazu dient das Modul hinzuzufügen und den Webserver neu zu starten:
SuSEconfig --modul apache2 /etc/init.d/apache2 restart
Apache2 konfigurieren
Nun gibt es zwei Möglichkeiten den Zugriff zu sichern:
- In einem Directory Eintrag in der /etc/apache2/httpd.conf
- In einer .htaccess Datei im Verzeichnis das man schützen möchte
Eintrag in der httpd.conf
<Directory />
Options None
AllowOverride all
Order deny,allow
Deny from all
AuthName "eDirectory Identifikation"
AuthType Basic
AuthLDAPURL ldap://server1/ou=abt,o=firma
require valid-user
</Directory>
Erstellen einer .htaccess Datei
Wir erstellen diese im Verzeichnis, das wir schützen wollen und es sieht prinzipiell genauso aus, wie der Eintrag in der httpd.conf. Um .htaccess Dateien nutzen zu können muss wie im oberen Eintrag AllowOverride erlaubt sein. Wichtig dabei ist, dass es in allen nötigen Konfigurationsdateien auch eingetragen ist. Das bedeutet auf jeden Fall /etc/apache2/httpd.conf und eventuell auch /etc/apache2/default-server.conf.
AuthName "eDirectory Identifikation" AuthType Basic AuthLDAPURL ldap://server1/ou=abt,o=firma require valid-user
Require Direktive
Welche Möglichkeiten gibt es nun bestimmte Benutzer und Gruppen abzufragen? Wie schon in obigem Beispiel beschrieben kann man abfragen ob der sich authentifizierende Benutzer im LDAP existiert und das Passwort korrekt eingegeben hat. Das macht man über:
require valid-user
Möchte man nur bestimmte Benutzer zulassen so kann man hierzu einfach die folgende Direktive verwenden:
require user proessdo grabsch
Man kann auch nach ganzen Gruppen abfragen. Hiermit sind jedoch nicht posixGroups die man eingerichtet hat gemeint, sondern die Objektklassen groupOfNames oder groupOfUniqueNames. Das sieht dann so aus:
require group cn=testgroup,ou=abt,o=firma
Siehe auch
- mod_auth_ldap Dokumentation von Muhammad A Muquit
- mod_auth_ldap Dokumentation für den Apache2

