У меня проблемы с аутентификацией служб с использованием uid для аутентификации, что, как я думал, было стандартным методом аутентификации для пользователя. По сути, мои пользователи добавляются в ldap следующим образом:
# jsmith, Users, example.com
dn: uid=jsmith,ou=Users,dc=example,dc=com
uidNumber: 10003
loginShell: /bin/bash
sn: Smith
mail: jsmith@example.com
homeDirectory: /home/jsmith
displayName: John Smith
givenName: John
uid: jsmith
gecos: John Smith
gidNumber: 10000
cn: John Smith
title: System Administrator
Но когда я пытаюсь аутентифицироваться с помощью типичных веб-приложений или таких сервисов:
jsmith
password
Я получил:
ldapsearch -x -h ldap.example.com -D "cn=jsmith,ou=Users,dc=example,dc=com" -W -b "dc=example,dc=com"
Enter LDAP Password:
ldap_bind: Invalid credentials (49)
Но если я использую:
ldapsearch -x -h ldap.example.com -D "uid=jsmith,ou=Users,dc=example,dc=com" -W -b "dc=example,dc=com"
Оно работает.
ОДНАКО ... большинство веб-приложений и методов аутентификации, похоже, используют другой метод. Итак, в веб-приложении, которое я использую, если я не укажу пользователя как: uid=smith,ou=users,dc=example,dc=com
Ничего не работает.
В веб-приложении мне просто нужно, чтобы пользователи поместили: jsmith в поле пользователя.
Имейте в виду, что мой ldap использует "новый" cn=config
способ хранения настроек. Так что, если у кого-то есть очевидный ldif, который мне не хватает, пожалуйста, предоставьте.
Дайте мне знать, если вам понадобится дополнительная информация. Это OpenLDAP в Ubuntu 12.04.
В ldapsearch
инструмент в вашем примере использует простой BIND для изменения состояния авторизации соединения. Простая операция BIND требует выдающееся имя и полномочия. Отличительное имя uid=jsmith,ou=Users,dc=example,dc=com
не cn=jsmith,ou=Users,dc=example,dc=com
в записи, приведенной в качестве примера.
Эта конфигурация сервера каталогов заставляет сервер возвращать код результата для invalid credentials
когда на самом деле выдающееся имя cn=jsmith,ou=Users,dc=example,dc=com
не существует. Это рекомендуемая конфигурация: она предоставляет злоумышленнику меньше информации.