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

Проблемы с UID аутентификации OpenLDAP и CN

У меня проблемы с аутентификацией служб с использованием 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 не существует. Это рекомендуемая конфигурация: она предоставляет злоумышленнику меньше информации.