是否可以将请求URI的一部分用作mod_authnz_ldap Require ldap-group
指令的输入?
我正在尝试动态检查对一堆不同项目目录的访问权限,这些目录都位于http://testserver.com/projects/下,以便/projects/abc
将检查用户访问的目录中的成员资格cn=abc,ou=groups,dc=test
。理想情况下,我希望在不为每个项目创建单独的Location指令的情况下执行此操作,因为其中可能有数百个。
我想出了这个例子,它说明了一般概念,但是不起作用(project_name不会检索实际的变量内容):
<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>
救命?
不可能。最好的选择是尝试使用mod_auth_external之类的东西。
—
h0tw1r3 2011年