Вы могли попытаться добавить фильтр к параметру 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)"
Я считаю, что Apache 2.4 может предложить больше в этой области, чем 2.2 ... возможно, стоит посмотреть.
В качестве альтернативы, возможно, стоит подумать о создании собственного пользовательского модуля; это не так страшно, как кажется - при условии, что вы хорошо знакомы с C.
Точно так же разве mod_perl не предлагает много возможностей для расширения Apache с помощью хуков?
В Apache 2.4.8 и более поздних версиях теперь это возможно:
SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1
Require ldap-group cn=%{env:project_name}, ou=groups, dc=test
Обратите внимание, что пробелы в директиве Require
могут быть необходимы. См. документацию mod_authnz_ldap, особенно пример 5.
Спасибо Buri за то, что он нашел ответ на этот старый вопрос в авторизации Apache2 ldap с именем динамической группы на основе имени сервера.