аутентификация с использованием openldap с apache 2.4

Я пытаюсь ограничить доступ к папке, используя аутентифицированного пользователя 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>
2
задан 3 May 2017 в 08:55
1 ответ

Большинство серверов 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
1
ответ дан 3 December 2019 в 12:36

Теги

Похожие вопросы