Динамическая аутентификация Apache с LDAP на основе строки запроса?


11

Можно использовать часть URI запроса в качестве входа в Require ldap-groupдирективу mod_authnz_ldap ?

Я пытаюсь динамически проверять доступ к группе различных каталогов проектов, все по адресу http://testserver.com/projects/ , так что доступ пользователя /projects/abcбудет проверен на членство в cn=abc,ou=groups,dc=test. В идеале я хотел бы сделать это, не создавая отдельную директиву Location для каждого проекта, поскольку их вполне может быть сотни.

Я пришел с этим, который иллюстрирует общую концепцию, но не работает (имя_проекта не получает фактическое содержимое переменной):

<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

Ответы:


0

Я считаю, что Apache 2.4 может предложить больше в этой области, чем 2.2 ... возможно, стоит посмотреть.

В качестве альтернативы, возможно, стоит взглянуть на создание собственного пользовательского модуля; это не так страшно, как кажется - если вы чувствуете себя комфортно в C.

Точно так же, разве mod_perl не предлагает много возможностей для расширения Apache с помощью хуков?


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.