Назад | Перейти на главную страницу

Apache mod_auth_basic и заказ

У меня есть настройка Apache для аутентификации в активном каталоге через ldap для моих пользователей. Есть несколько «системных» пользователей (для автоматизированных тестов сборки), которые настраиваются вручную и проходят аутентификацию через файл.

AuthBasicProvider ldap file

Проблема, с которой я столкнулся, заключается в том, что окно Active Directory время от времени отключается для обслуживания или по другим причинам, и я не хочу, чтобы моим «системным» пользователям было отказано в доступе в течение этого времени. Я бы хотел, чтобы Apache попробовал аутентификацию с помощью файла и ТОЛЬКО ldap, но это не представляется возможным. В соответствии с http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html, «порядок обработки определяется в исходном коде модулей и не настраивается».

Это просто не кажется правильным. Я бы подумал, что (часто) нужно указать порядок поставщиков аутентификации (если не по причинам, которые я хочу, то по другим причинам). Разве это невозможно сделать без взлома исходного кода?

p.s. Изменение конфигурации на AuthBasicProvider file ldap без разницы.

В соответствии с http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html, «порядок обработки определяется в исходном коде модулей и не настраивается».

Приведенная выше цитата не говоря о том, о чем вы спрашиваете:

Это должно быть необходимо только при объединении mod_auth_basic со сторонними модулями, которые не настроен с AuthBasicProvider директива. При использовании таких модулей порядок обработки определяется в исходном коде модулей и не настраивается.

Начиная с версии 2.2 Apache позволяет использовать несколько провайдеров. Я тестировал свою систему (Apache 2.2.20), она отлично работает:

<Location />
    AuthType Basic
    AuthBasicProvider file ldap
    AuthUserFile /etc/httpd/passwords
    AuthzLDAPAuthoritative Off
    AuthLDAPURL ldap://ip:389/dc=x,dc=y?cn
    AuthLDAPBindDN cn=anonymous,ou=z,dc=x,dc=y
    AuthLDAPBindPassword pa$$w0rd
    AuthName "Restricted Area"

    AuthzLDAPGroupBase      ou=z,dc=x,dc=y
    AuthzLDAPGroupkey       cn
    AuthzLDAPMemberKey      member
    AuthzLDAPSetGroupAuth   user
    require valid-user
    AuthzLDAPLogLevel       error
</Location>

Остановите OpenLDAP, я все еще могу входить в систему с пользователями в /etc/httpd/passwords.