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