Das ganze wurde unter folgender Umgebung getestet: Windows XP SP3 mit Apache 2.20, der DC war ein Windows Server 2003 SP2

Das hier ist sehr geschickt wenn man z.B. einen bestimmten Bereich seiner Homepage nur für eine bestimmte Gruppe von Benutzern aus seinem ADS zugänglich machen möchte, z.B. einem Wiki oder sowas.

Hinweis: Bei Apache-Versionen < 2.20 sieht die Konfiguration ein wenig anders aus! Diese Anleitung funktioniert erst ab der Version 2.20 genau so.

Der Apache-Server muss selber nicht zwingend im Active Directory sein, die Abfrage funktioniert auch wenn er sich außerhalb der Domäne befindet.
So, hier nun die Vorgehensweise:

1.) Modul laden:

Zuerst müssen die passenden Module geladen werden. Dafür müssen in der "httpd.conf" die Zeilen

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so

auskommentiert sein.

2.) Konfiguration

Das ganze kann entweder innerhalb der Web-Konfigurationsdatei (z.B. httpd.conf) abgelegt werden, also innerhalb eines "Directory" -Bereiches. Oder aber in einer separaten .htaccess-Datei, die dann in das entsprechende Web-Verzeichnis gelegt wird.

AuthType Basic
AuthName "Geschützter Bereich"
AuthzLDAPAuthoritative on
AuthBasicProvider ldap # Der Pfad aus dem die Benutzer/Gruppen gelesen werden, die nachher Zugriff auf den Web-Pfad erhalten sollen
# Der Pfad muss nicht direkt angegeben werden, "Unter-OU's" werden rekursiv durchsucht
# Falls es hier Probleme gibt, mal das ganze mit Anführungsstrichen ("") probieren!
AuthLDAPURL ldap://dc1.test.net:389/ou=Benutzer,dc=test,dc=net?sAMAccountName?sub

# Der User, mit dem die LDAP-Abfrage stattfinden wird
# Ein User wird benötigt, weil eine anonyme Anfrage mit einer Fehlermeldung abgeblockt wird vom ADS
AuthLDAPBindDN test@test.net

# Das Passwort des entsprechenden Users:
AuthLDAPBindPassword "test12345"

# Die Benutzer einstellen, die Zugriff auf das Verzeichnis haben sollen
# -------------------------------------------------------------------------------------------------

# Wenn nur ein bestimmter ADS-Benutzer Zugriff auf das Verzeichnis erhalten soll:
require ldap-user Schakal

# ODER wenns mehrere ADS-User sein sollen:
require ldap-user Benutzer, test, bla

# ODER wenn's eine Gruppe sein soll, die Zugriff erhalten soll:
# Falls es hier Probleme gibt, mal das ganze mit Anführungsstrichen ("") probieren!
# Umlaute funktionieren hier auch (z.B. "Domänen-Admins")!
require ldap-group cn=testgruppe,ou=Benutzer,dc=test,dc=net

3.) Apache neustarten & testen

/etc/init.d/apache2 restart

Jetzt muss noch die entsprechende Seite aufgerufen werden. Das wars!