Настройка apache2 - LDAP и понимание конфигурации LDAP

Я пытаюсь настроить и понять apache2 LDAP-авторизацию.

На самом деле я использую openSUSE 13.1 64 Bit в качестве виртуальной машины, и я включил необходимые модули и выполнил следующие шаги: http://www.yolinux.com/TUTORIALS/LinuxTutorialApacheAddingLoginSiteProtection.html

Мой httpd-local.conf (включен в исходный httpd.conf):

 AuthType              Basic
 AuthName              "Mein geschütztes Verzeichnis"
 AuthBasicProvider     ldap
 AuthLDAPURL           "ldap://ldap_server.DOMAIN1.DOMAIN2.de/ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DOMAIN2,dc=de"
 AuthLDAPBindDN        "cn=Firstname Lastname,ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DOMAIN2,dc=de"
 AuthLDAPBindPassword  "MyAccountPassword"
 Require valid-user

При попытке войти с помощью: Пользователь: "Имя Фамилия" Пароль "MyAcountPassword" я получаю:

[Mon Jul 14 11:05:38.527956 2014] [auth_basic:error] [pid 5318] [client xxx.x.x.xxx:xxxxx] AH01618: user Firstname Lastname not found: /
[Mon Jul 14 11:05:38.528605 2014] [auth_basic:error] [pid 5318] [client xxx.x.x.xxx:xxxxx] AH01618: user Firstname Lastname not found: /error/HTTP_UNAUTHORIZED.html.var

При изменении моей конфигурации:

 AuthType              Basic
 AuthName              "Mein geschütztes Verzeichnis"
 AuthBasicProvider     ldap
 AuthLDAPURL           "ldap://ldap_server.DOMAIN1.DOMAIN2.de/ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DOMAIN2,dc=de"
 AuthLDAPBindDN        "cn=username,ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DOMAIN2,dc=de"
 AuthLDAPBindPassword  "MyAccountPassword"
 Require valid-user

и пытаюсь войти через: Пользователь: "username" Пароль "MyAcountPassword" Я получаю:

[Mon Jul 14 11:09:01.972015 2014] [auth_basic:error] [pid 5372] [client xxx.x.x.xxx:xxxxx] AH01617: user username: authentication failure for "/": Password Mismatch
[Mon Jul 14 11:09:01.973896 2014] [auth_basic:error] [pid 5372] [client xxx.x.x.xxx:xxxxx] AH01617: user username: authentication failure for "/error/HTTP_UNAUTHORIZED.html.var": Password Mismatch

~~~~~~~~~ Редактировать #1: ~~~~~~~~~

ldapsearch "ldap://ldap_server.DOMAIN1.DOMAIN2.de/ou=Test,ou=Benutzer,ou=DOMAIN1/DOMAIN2,dc=DOMAIN1,dc=DOMAIN2,dc=de"

получает: ldap_sasl_interactive_bind_s: не может связаться с сервером LDAP (-1)

~~~~~~~~~~~~~~~~~~~~~~~~~~

Я не могу отладить, потому что получил пару вопросов без ответа. Я никогда раньше не работал с LDAP, просто чтобы вы знали. Почему мне нужно что-то BindDN, я хочу иметь возможность подключаться к каждому пользователю, а не только с одним. Когда я закончу, я создам домашнюю страницу, которая требует аутентификации LDAP при входе в систему, и в зависимости от группы пользователей (я хотел бы вернуть это при аутентификации), пользователям показывается разный контент.

Может кто-нибудь объяснить мне это и попытаться помочь мне?

Спасибо за совет. С наилучшими пожеланиями.

2 ответа

Просто для справки: оригинальная документация (для версии 2.4: https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html) содержит только следующие сведения о AuthLDAPBindDN:

AuthLDAPBindDN distinguished-name

Мой опыт показывает, что необходимо точно идентифицировать привязывающую учетную запись, либо по точному DN (например, CN=...,OU=...), описывающему точную позицию этой учетной записи в дереве ldap, либо просто по значению userPrincipalName учетной записи. (Чрезмерное использование термина "точный" является преднамеренным.)

Я видел сообщения, что этот параметр может быть чувствительным к регистру на некоторых платформах.

Решение:

AuthType Basic
AuthName "Mein geschütztes Verzeichnis"
AuthBasicProvider ldap
AuthLDAPURL "ldap://SERVER_IP.DOMAIN1.DOMAIN2.de/ou=DOMAIN1/DOMAIN2,dc=lfm,dc=DOMAIN2,dc=de?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "USERNAME@DOMAIN1.DOMAIN2.de"
AuthLDAPBindPassword "PASSWORD"
Require valid-user
Другие вопросы по тегам