Apache Authentifizierung über LDAP

From NJH-Wiki

Jump to: navigation, search
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:

  1. In einem Directory Eintrag in der /etc/apache2/httpd.conf
  2. 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

Personal tools