Ist es möglich, einen Teil des Anforderungs-URI als Eingabe in die Require ldap-group
Direktive von mod_authnz_ldap zu verwenden ?
Ich versuche, den Zugriff auf eine Reihe verschiedener Projektverzeichnisse unter http://testserver.com/projects/ dynamisch zu überprüfen , sodass ein Benutzer, auf /projects/abc
den zugegriffen wird, auf Mitgliedschaft überprüft wird cn=abc,ou=groups,dc=test
. Idealerweise möchte ich dies tun, ohne für jedes Projekt eine eigene Standortrichtlinie zu erstellen, da es durchaus Hunderte davon geben könnte.
Ich habe mir das ausgedacht, das das allgemeine Konzept veranschaulicht, aber nicht funktioniert (Projektname ruft den tatsächlichen Inhalt der Variablen nicht ab):
<Location /projects>
SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1
AuthType Basic
AuthBasicProvider ldap
AuthName "Restricted Resource - SVN (LDAP)"
AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid"
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
Require ldap-group cn=%{project_name},ou=groups,dc=test
</Location>
Hilfe?
Antworten:
Ich glaube, Apache 2.4 hat in diesem Bereich mehr zu bieten als 2.2 ... könnte einen Blick wert sein.
Alternativ kann es sich lohnen, ein eigenes benutzerdefiniertes Modul zu erstellen. Es ist nicht so beängstigend, wie es scheint - vorausgesetzt, Sie fühlen sich in C wohl.
Bietet mod_perl nicht viel, um Apache über Hooks zu erweitern?
quelle
Sie könnten versuchen, dem AuthLDAPURL-Parameter einen Filter hinzuzufügen: https://httpd.apache.org/docs/2.4/en/mod/mod_authnz_ldap.html#authldapurl
Vielleicht so etwas wie:
quelle