Apache LDAP авторизация
Я пытаюсь использовать mod_auth_cas для AuthN и LDAP для AuthZ. mod_cas_auth на самом деле не имеет значения, потому что у меня та же проблема с BasicAuth для AuthN. Все отлично работает если я укажу <location "/">
, но как только я укажу выделение <Location "/secure">
авторизация не проходит и я получаю 403.
например, это работает и разрешает доступ людям в указанной группе LDAP:
<Location "/">
AuthType Basic
AuthUserFile var/ht.passwd
AuthName Secure
AuthLDAPUrl "ldaps://<snip>?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "CN=<snip>
AuthLDAPBindPassword <snip>
Require ldap-group CN=<snip>
</Location>
Но это не так - он просто возвращает 403 каждому
<Location "/secure">
AuthType Basic
AuthUserFile var/ht.passwd
AuthName Secure
AuthLDAPUrl "ldaps://<snip>?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "CN=<snip>
AuthLDAPBindPassword <snip>
Require ldap-group CN=<snip>
</Location>
В логах для 2-й ситуации у меня есть:
auth_ldap authorise: User DN not found, ldap_search_ext_s() for user failed
Это на Apache 2.2. Я думаю, что это должно быть ошибкой, но мне было интересно, могу ли я что-нибудь сделать, чтобы это сработало?
1 ответ
Но почему вы все еще используете "AuthUserFile"? это работает для меня:
AuthType Basic AuthName "Some name" Require ldap-group <snip> SSLOptions +FakeBasicAuth AuthBasicProvider ldap AuthLDAPBindDN uid=<snip> AuthLDAPBindPassword <snip> AuthLDAPURL ldaps://<server>/<basedn>?uid?sub AuthLDAPRemoteUserAttribute uid AuthzLDAPAuthoritative on Options MultiViews
Ошибка "DN пользователя не найден" говорит о проблеме авторизации. Итак, проверьте ваши authbinddn и authbindpassword, например, с помощью ldapsearch: ldapsearch -H ldap://server -x -D cn=