PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriffssteuerung auf bestimmte Webseiten mittels LDAP



master-crown
29.01.07, 19:02
Hallo Leute,

Nach langer Suche im World-Wide-Web habe ich bis jetzt noch keine Lösung für mein Problem gefunden und zwar:

1xDebian --> Apache2 Webserver
1x Windows 2003 Server --> Active Directory(AD) 2003 (LDAP)

Ich möchte nun mittels .htaccess Dateien nur bestimmten Usern, den Zugang erlauben, die z.B nur unter (CN=Usern,DC=Example,DC=net) sind.

Mein erste tatsächliche Frage ist, was brauche ich alles (Pakete etc.) um dies zu ermöglichen. Ich habe unter Debian schon folgende Pakete installiert.
- libnss-ldap (RFC 2307 auf AD angepasst, binddn mit passwort)
- libpam-ldap (RFC 2307 auf AD angepasst, binddn mit passwort)
- ldap-utils (ldapsearch etc.)
- für den Apache2 Webserver habe ich folgende Module hinzugefügt.
- libapache-mod-ldap
- libapche2-auth-ldap

Die libnss-ldap und libpam-ldap habe ich schon bearbeitet und mittels
ldapsearch -x -D "cn=Administrator,cn=Users,dc=example,dc=net" -w "" schon getestet. Es kommt die Passwort abfrage und ich kann Informationen aus dem AD auslesen.

Wenn ich nun eine .htaccess Datei mit diesem Inhalt
-------------------------------------------------------------
AuthType Basic
AuthName "Test-DB"
AuthLDAPURL ldap://x.x.x.x/cn=Users,dc=example,dc=net?uid
require valid-user
-------------------------------------------------------------

hinzufügen z.B unter /var/www Kommt zwar das schöne Anmeldefenster,
aber egal welchen Namen ich eintrage seis Testuser1,2,3,Administrator etc mit Passwort, wird mir der Zugang verweigert.
Im Internet habe ich gelesen, von einem Zusatztool für Windows AD 2003 das nennt sich AD4Unix.

Muss ich das Installieren ??
Was hat es mit dem Kerberos auf sich ??
Ich hoffe ihr könnt mir helfen den ich saß heute 8 Stunden in der arbeit daran.

Diese Module:
- libapache-mod-ldap
- libapche2-auth-ldap
Habe ich schon in den Apache2 enabled ..

Ich hoffe einer von euch kann mir ratschläge geben.
MFG
Master-Crown

MiGo
29.01.07, 22:06
Nur ein Tip, keine Loesung:

LDAP (== OpenLdap) laesst sich anonym abfragen - ein ActiveDirectory-Server nicht. Der braucht immer Credentials.

Eventuell haengt es daran, dass dein Apache versucht, das AD anonym abzufragen - was selbiges nicht mag. Schau' mal, ob es die Moeglichkeit gibt, einen abfragenden User mitzuuebergeben.

suck
29.01.07, 22:34
Hast du die httpd.conf so abgeändernt, dass "AllowOverride all" gesetzt ist?

http://httpd.apache.org/docs/2.0/de/mod/core.html#allowoverride

Neugestartest hast du den Apache ja sicherlich..

Um den Verdacht von MiGo weiter nachzugehen, könntest Su auf dem Linux-System auch einen User namens "Administrator" anlegen und hoffen, dass der lokale Benutzername an den AD-Server gesendet wird.

Sofern dein Linux-Server zur Authorisierung PAM nutzt (wahrscheinlich), könntest du mit PAM auch direkt die Authorisierung über LDAP (AD) laufen lassen. Richtig eingestellt würde "UnixAuth" dennoch verwendet, wenn der LDAP-Server nicht erreichbar ist.

master-crown
30.01.07, 14:38
vielen dank für eure antworten, ich habe den fehler gefunden.
das Problem lag daran , dass ich nicht ?uid verwenden darf sondern
?sAMAccountName . Außerdem musste ich noch ein authldapbinddn und authldapbindpassword einfügen.

vielen dank...
gruß
master-crown