Назад | Перейти на главную страницу

аутентификация с использованием 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: ошибка аутентификации пользователя 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