Authentifier dynamiquement Apache avec LDAP en fonction de la chaîne de demande?

11

Il est possible d'utiliser une partie de l'URI de la demande comme entrée dans la Require ldap-groupdirective de mod_authnz_ldap ?

J'essaie de vérifier dynamiquement l'accès à un tas de répertoires de projets différents, tous sous http://testserver.com/projects/ , de sorte qu'un utilisateur accédant /projects/abcserait vérifié pour l'adhésion à cn=abc,ou=groups,dc=test. Idéalement, je voudrais le faire sans créer de directive d'emplacement distincte pour chaque projet, car il pourrait bien y en avoir des centaines.

J'ai trouvé cela, qui illustre le concept général, mais qui ne fonctionne pas (nom_projet ne récupère pas le contenu réel de la variable):

<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>

Aidez-moi?

Chris
la source
Pas possible. Votre meilleur pari est d'essayer quelque chose comme mod_auth_external .
h0tw1r3

Réponses:

0

Je crois qu'Apache 2.4 a plus à offrir dans ce domaine que 2.2 ... pourrait valoir la peine d'être examiné.

Alternativement, il peut être intéressant de créer votre propre module personnalisé; ce n'est pas aussi effrayant qu'il n'y paraît - en supposant que vous êtes à l'aise en C.

De même, mod_perl n'offre-t-il pas beaucoup pour étendre Apache via des hooks?

Cameron Kerr
la source