¿Autenticar dinámicamente Apache con LDAP basado en la cadena de solicitud?

11

¿Es posible utilizar una parte del URI de solicitud como entrada en la Require ldap-groupdirectiva mod_authnz_ldap ?

Estoy tratando de verificar dinámicamente el acceso a un montón de directorios de proyectos diferentes, todo en http://testserver.com/projects/ , de modo que /projects/abcse verifique la membresía de un usuario que acceda cn=abc,ou=groups,dc=test. Idealmente, me gustaría hacer esto sin crear una directiva de Ubicación separada para cada proyecto, ya que podría haber cientos de ellos.

Se me ocurrió esto, que ilustra el concepto general, pero que no funciona (nombre_proyecto no recupera los contenidos variables reales):

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

¿Ayuda?

Chris
fuente
Imposible. Su mejor opción es probar algo como mod_auth_external .
h0tw1r3

Respuestas:

0

Creo que Apache 2.4 tiene más para ofrecer en esta área que 2.2 ... podría valer la pena mirar.

Alternativamente, puede valer la pena considerar construir su propio módulo personalizado; no da tanto miedo como parece, suponiendo que te sientas cómodo en C.

Del mismo modo, ¿mod_perl no ofrece mucho para extender Apache a través de ganchos?

Cameron Kerr
fuente