Я пытаюсь ограничить доступ к папке, используя аутентифицированного пользователя ldap, раньше это работало с apache на ubunbt 14.04, но теперь я пытаюсь установить 16.04, но это не так. работа, я получаю пользовательские ошибки AH1618, я уверен, что это что-то простое :)
пользователи находятся в этом "домене" ou = Users, dc = ldap, dc = kattronics, dc = com
Когда при доступе к веб-странице я получаю запрос на ввод пароля, что хорошо, однако я получаю эту ошибку.
[auth_basic: error] [pid 10821] [client 10.0.5.167:58662] AH01618: пользователь lasse.knudsen не найден: /
Возможно, ключ к разгадке содержится в завершающей косой черте
Отладка включена для apache2
AH01694: auth_ldap Authenticate: аутентификация пользователя lasse.knudsen не удалась; URI / [Ошибка LDAP: ldap_simple_bind ()] [Невозможно связаться с сервером LDAP] (не авторитетный)
Не удается связаться с сервером LDAP, меня озадачивает, хост разрешает.
Любой, кто может указать мне правильное направление.
Запись в каталоге из конфигурации сайта apache
<Directory /var/www/html>
AuthName "Restricted - Kattronics Users Only"
AuthType Basic
#Satisfy any
AuthBasicProvider ldap
AuthLDAPUrl "ldaps://dc2-ldap001:636/ou=Users,dc=ldap,dc=kattronics,dc=com?uid"
AuthLDAPBindDN "ou=Users,dc=ldap,dc=kattronics,dc=com"
AuthLDAPBindAuthoritative off
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
#Require valid-user
Require ldap-user # Gives error AH01618
</Directory>
Обходной путь ниже
<IfModule mod_authnz_external.c>
AddExternalAuth pwauth /usr/sbin/pwauth
SetExternalAuthMethod pwauth pipe
</IfModule>
<Directory /var/www/html>
AuthType Basic
AuthName "Login"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Directory>
Большинство серверов LDAP требуют от вас аутентификации, прежде чем вы сможете запросить любую полезную информацию о каталоге. На жаргоне LDAP соединение называется " привязкой " к серверу каталогов.
Это означает, что в Apache нужно будет настроить имя пользователя и пароль. Имя пользователя должно быть полным отличительным именем, которое включает полный путь к каталогу, в котором оно хранится, и ваш AuthLDAPBindDN
должен выглядеть примерно так:
AuthLDAPBindDN "CN=apache,OU=Service Accounts,DC=example,DC=com"
, и вам, вероятно, потребуется AuthLDAPBindPassword
] (предпочтительно тот, который никогда не истекает):
AuthLDAPBindPassword y0ur_p@ssw0rd
Вторая проблема при использовании защищенного TLS / SSL LDAP-соединения заключается в том, что Apache необходимо будет проверить подлинность сертификата сервера, используемого сервером LDAP. Обычно я ожидаю, что сервер LDAP не использует сертификат, выданный одним из хорошо известных общедоступных центров сертификации, а скорее сертификат, выданный внутренним центром сертификации. Загрузите сертификат CA на свой веб-сервер и загрузите его с помощью директивы LDAPTrustedGlobalCert
, т.е.
LDAPTrustedGlobalCert type directory-path/filename [password]
В качестве альтернативы в качестве небезопасного решения используйте директиву LDAPVerifyServerCert
и не проверяйте сертификат сервера. :
LDAPVerifyServerCert off