¿Es posible utilizar una parte del URI de solicitud como entrada en la Require ldap-group
directiva 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/abc
se 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?
Respuestas:
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?
fuente
Puede intentar agregar un filtro al parámetro AuthLDAPURL: https://httpd.apache.org/docs/2.4/en/mod/mod_authnz_ldap.html#authldapurl
Tal vez algo como:
fuente