У меня есть настройка 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
.