При добавлении нового пользователя под dc=example,dc=com
используя Apache Directory Studio, у меня есть эта древовидная структура:
dc=example,dc=com
|-- ou = engineering
|-- cn = Lawrence K.H Loh+o=IKEA+sn=Loh+uid=lawrence+displayName=Lawrence
Ниже приведен список атрибутов для cn
.
Есть эта ошибка LDAP: error code 49 - INVALID_CREDENTIALS: Bind failed: Attempt to lookup non-existant entry
когда я подключаю эту запись через uid=lawrence,ou=engineering,dc=example,dc=com
. Но он работает нормально, если я использую это cn=Lawrence K.H Loh+o=IKEA+sn=Loh+uid=lawrence+displayName=Lawrence,ou=engineering,dc=example,dc=com
. Могу я узнать, как мне перейти на uid=lawrence
вместо длинного имени для аутентификации?
С этим конкретным предметом вряд ли получится. LDAP ищет вас для привязки к выдающееся имя (DN) объекта, и основным атрибутом в этом случае является cn
. Это осознанное дизайнерское решение, поскольку нет гарантии, что любой заданный атрибут объектов в контейнере будет уникальным, кроме того, который связан с их DN.
Это не помешает службам выполнить поиск в вашем каталоге и определить, что uid=lawrence
связан с этим конкретным DN (и, таким образом, может найти любые другие атрибуты, необходимые для этого объекта), но любые вызовы, которые явно необходимо запускать для DN, могут выполняться только для основного атрибута.
Это не означает, что нельзя избежать указания DN. На ум приходит реализация аутентификации SASL и определение карты между SASL ID и DN. Но в контексте вашего вопроса нет, вы не можете переключиться на использование неосновного атрибута DN, на котором вы аутентифицируетесь, вместо DN.