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?


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?


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.