Я новичок в LDAP, и у меня возникла следующая проблема:
Я использую OpenLDAP в качестве кэширующего прокси для удаленного Active Directory.
А полный DN пользователя похож на "cn=Doe\, John,ou=users,ou=others,dc=company,dc=com"
, в то время uid
(sAMAccountName
) - это краткая форма имени и фамилии. Например Джон Доу будет jdoe.
У меня уже есть сервер SVN, Bugzilla и ReviewBoard, которые отлично работают с этим, потому что у них есть много настроек для поддержки LDAP. Но сейчас я пытаюсь настроить YouTrack, а в нем нет настроек LDAP.
Я хочу иметь возможность войти в YouTrack, используя краткую форму входа (например, "jdoe"), но когда я установил строку преобразования в YouTrack как "sAMAccountName=$login$,ou=users,ou=others,dc=company,dc=com"
У меня все время возникает следующая ошибка:
[LDAP: код ошибки 49 - 80090308: LdapErr: DSID-0C0903A9, комментарий: ошибка AcceptSecurityContext, данные 52e, v1db1], что является «недопустимыми учетными данными».
Но если я явно укажу полное имя в строке преобразования, я могу войти в систему (но, конечно, никто другой):
"cn=Doe\, John,ou=users,ou=others,dc=company,dc=com"
Итак, мой вопрос: могу ли я изменить DN пользователя «на лету», чтобы получить что-то вроде этого, например:
"cn=jdoe,ou=users,ou=others,dc=company,dc=com"
?
Хотя этот вопрос может быть немного староват, у меня есть несколько мыслей по этому поводу. Может быть, это кому-нибудь поможет в будущем:
ldapmodify
с участием changetype: moddn
или modrdn
предоставление нового DN (newrdn
). Более подробную информацию об этом можно найти в пункте № 4 здесь: http://www.zytrax.com/books/ldap/ch8/#changetypeman 5 slapo-rwm
. Эта штука действительно мощная!cn=jdoe,ou=users,ou=others,dc=company,dc=com
может относиться к объектному классу "псевдоним" и иметь вашу первоначальную учетную запись, записанную в атрибут aliasedObjectName
. Все, что вам нужно сделать в этом случае, - это проверить, следует ли операция ldapsearch по рефералам или нет.На моем сервере у меня аналогичная установка, и я выбрал третий способ. Чтобы он был полностью чистым, я создал свою собственную схему, в которой у меня есть специальный класс объекта псевдонима для этого, который предоставляет необходимые дополнительные поля.