요청 URI의 일부를 mod_authnz_ldap의 Require ldap-group
지시문에 대한 입력으로 사용할 수 있습니까?
나는 아래의 모든 동적으로 다른 프로젝트 디렉토리의 무리에 대한 액세스 권한을 확인하기 위해 노력하고있어 http://testserver.com/projects/ 사용자 액세스가되도록, /projects/abc
에서 회원 확인 될 것이다 cn=abc,ou=groups,dc=test
. 이상적으로는 수백 개가있을 수 있기 때문에 각 프로젝트마다 별도의 위치 지시문을 작성하지 않고이 작업을 수행하고 싶습니다.
나는 일반적인 개념을 설명하지만 작동하지 않는 이것을 생각해 냈습니다 (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>
도움?
답변
나는 아파치 2.4가 2.2보다이 영역에서 더 많은 것을 제공한다고 믿는다.
또는 사용자 정의 모듈을 작성하는 것이 좋습니다. 당신이 C에 편안하다고 가정하면 그것은 무서운 것처럼 보이지 않습니다.
마찬가지로, mod_perl은 후크를 통해 Apache를 확장하는 데 많은 도움이되지 않습니까?
답변
AuthLDAPURL 매개 변수에 필터를 추가 할 수 있습니다. https://httpd.apache.org/docs/2.4/en/mod/mod_authnz_ldap.html#authldapurl
아마 다음과 같은 것 :
AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid?sub?(memberof=cn=%{project_name},ou=groups,dc=test)"