Не могу решить эту проблему, вот мой .htaccess:
AuthPAM_Enabled Off AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthName "MESSAGE" Require ldap-group cn=CHANGED, cn=CHANGED AuthLDAPURL "ldap://localhost/dc=CHANGED,dc=CHANGED?uid?sub?(objectClass=posixAccount)" AuthLDAPBindDN CHANGED AuthLDAPBindPassword CHANGED AuthLDAPGroupAttribute memberUid
AuthLDAPURL верен, BindDN и BindPassword также верны (проверяется с помощью ldapvi -D ..).
Версия Apache: Apache / 2.2.9 (Debian)
Сообщение об ошибке кажется мне непонятным, у меня AuthzLDAPAuthoritative, так в чем проблема.
РЕДАКТИРОВАТЬ:
Модули LDAP загружены, проблема не в их отсутствии.
# ls /etc/apache2/mods-enabled/*ldap* /etc/apache2/mods-enabled/authnz_ldap.load /etc/apache2/mods-enabled/ldap.load
РЕДАКТИРОВАТЬ2:
Решил, изменив фанк
Require ldap-group cn=CHANGED, cn=CHANGED
линия с
Require valid-user
Поскольку AuthzLDAPAuthoritative включен, никакие другие методы аутентификации использоваться не будут, и требование действительного пользователя будет аутентифицироваться через LDAP. (право? :/)
Ваша строка «Требовать» гласит
Требовать ldap-group cn = CHANGED, cn = CHANGED
Это не похоже на написание - я не верю, что в таком DN может быть два cn.
Для меня и apache 2.2.14 это работает как чемпион по контролю доступа для каждой группы.
AuthType Basic AuthName "Secret Area for IT Only" AuthBasicProvider ldap AuthzLDAPAuthoritative on AuthLDAPGroupAttributeIsDN off AuthLDAPGroupAttribute memberUid AuthLDAPURL "ldap://ldap1.example.int ldap2.company.int/cn=int" Require ldap-group cn=it,ou=Groups,o=int
«int» - это наш внутренний домен для закрытых серверов.
Включили ли вы ldap и authnz_ldap модули?
Вы можете сделать это с помощью:
a2enmod ldap authnz_ldap; /etc/init.d/apache2 restart