Конфигурации LDAP Apache2 не удается привязать / принять учетные данные

#ldap #apache2.4

#ldap #apache2.4

Вопрос:

Это моя первая публикация, поэтому заранее извините, если я что-то делаю неправильно. Я заменю IP-адреса и имена пользователей.

У меня установлена Windows Active Directory, и я пытаюсь использовать это для аутентификации на веб-странице, которая у меня есть на отдельном сервере Ubuntu 18.04. Я пытаюсь использовать apache2 (2.4.18), чтобы настроить это. Документация в Интернете кажется довольно простой, но я не добился успеха. Во-первых, я не могу использовать теги <Location «/auth»>, поскольку, похоже, они просто не работают вообще. Я должен использовать тег <Directory /auth>.

Сервер AD использует самозаверяющий сертификат, и у меня возникли проблемы с тем, чтобы заставить его доверять ему с помощью LDAPTrustedGlobalCert. Я получал [Can't contact LDAP server] , но отключение LDAPVerifyServerCert, похоже, позволяет мне преодолеть это препятствие на данный момент.

Самая большая проблема, с которой я сталкиваюсь, заключается в том, что я не думаю, что привязка работает. При простой загрузке веб-страницы я вижу, что это отображается в журнале ошибок:

 [authz_core:debug] [pid 2397] mod_authz_core.c(809): [client <myclientIP>:56969] AH01626: authorization result of Require valid-user : denied (no authenticated user yet)
[authz_core:debug] [pid 2397] mod_authz_core.c(809): [client <myclientIP>:56969] AH01626: authorization result of <RequireAny>: denied (no authenticated user yet)
  

Оттуда я ввожу учетные данные, чтобы попытаться пройти аутентификацию, и получаю:

 [Thu Aug 27 08:36:22.831527 2020] [authnz_ldap:debug] [pid 2396] mod_authnz_ldap.c(520): [client <myClientIP>:56887] AH01691: auth_ldap authenticate: using URL ldaps://<myLDAPIP>/dc=my,dc=example,dc=com?uid
[Thu Aug 27 08:36:22.888784 2020] [authnz_ldap:info] [pid 2396] [client <myClientIP>:56887] AH01695: auth_ldap authenticate: user <myUser> authentication failed; URI /auth/ [LDAP: ldap_simple_bind() failed][Invalid credentials]
[Thu Aug 27 08:36:22.888825 2020] [auth_basic:error] [pid 2396] [client <myClientIP>:56887] AH01617: user <myUser>: authentication failure for "/auth/": Password Mismatch
  

Это моя конфигурация для apache. Я оставил строки с комментариями, чтобы вы могли увидеть пару из множества вариантов, которые я пробовал:

 LDAPVerifyServerCert Off

<Directory "/var/www/html/auth">
AuthType Basic
AuthName "Authentication required"
AuthBasicProvider ldap
AuthLDAPURL ldaps://<myLDAPIP>/dc=my,dc=example,dc=com?uid
#AuthLDAPURL ldaps://<myLDAPIP>:636/cn=Users,dc=my,dc=example,dc=com
AuthLDAPBindDN <myUser>
#AuthLDAPBindDN cn=<myUser>,dc=my,dc=example,dc=com
AuthLDAPBindPassword <myPassword>
Require valid-user
#require ldap-group cn=Users,dc=my,dc=example,dc=com
#require ldap-group cn=Users
LogLevel debug
</Directory>
  

Я искал повсюду и перепробовал много конфигураций, но я не понимаю, почему это не работает с этой. У меня есть по крайней мере три другие программы, которые используют LDAP с этим сервером Active Directory. Разница в том, что все они имели встроенную поддержку для этого, и мне не нужно было ничего делать с apache.

Любая помощь будет оценена! Заранее спасибо

Ответ №1:

На самом деле я продолжал пробовать несколько конфигураций и, наконец, нашел ту, которая сработала. Ниже приведен код функционирования:

 <Directory "/var/www/html/auth">
 AuthType Basic
 AuthName "Authentication required"
 AuthBasicProvider ldap
 AuthLDAPURL "ldaps://<myLDAPIP>/dc=my,dc=example,dc=com?sAMAccountName"
 AuthLDAPBindDN "myUser@my.example.com"
 AuthLDAPBindPassword "<Password>"
 Require valid-user
LogLevel debug
</Directory>
  

* Если ваш сертификат не является доверенным, вы можете добавить LDAPVerifyServerCert Off, который должен находиться за пределами блока virtualhost