Я - новичок в LDAP, и у меня есть следующая проблема:
Я использую OpenLDAP в качестве кэширующегося прокси для удаленного Active Directory.
И полный DN пользователя похож "cn=Doe\, John,ou=users,ou=others,dc=company,dc=com"
, в то время как uid
(sAMAccountName
) краткая форма первого и второго имени. Например, John Doe будет 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/#changetype man 5 slapo-rwm
. Это действительно мощная штука! cn = jdoe, ou = users, ou = others, dc = company, dc = com
может иметь объектный класс «alias», а ваша первоначальная учетная запись записана в атрибуте aliasedObjectName
. Все, что вам нужно сделать в этом случае, - это проверить, следует ли операция ldapsearch по отсылкам или нет. На моем сервере у меня аналогичная настройка, и я выбрал третий способ. Чтобы он был полностью чистым, я создал свою собственную схему, в которой у меня есть специальный класс объекта псевдонима для этого, который предоставляет необходимые дополнительные поля.