Я пытаюсь ограничить доступ к папке с использованием аутентифицированного пользователя 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: ошибка аутентификации пользователя lasse.knudsen; URI / [LDAP: ldap_simple_bind () failed] [Невозможно связаться с сервером 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