Измените DN в OpenLDAP “на лету”

Я - новичок в 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"

?

2
задан 5 July 2013 в 17:35
1 ответ

Хотя этот вопрос может быть немного староват, у меня есть несколько мыслей по этому поводу. Возможно, это поможет кому-нибудь в будущем:

  1. Вы можете просто изменить DN, используя ldapmodify с changetype: moddn или modrdn , предоставляющий новый DN ( newrdn ). Более подробную информацию об этом можно найти в пункте № 4 в здесь: http://www.zytrax.com/books/ldap/ch8/#changetype
  2. Вы можете использовать оверлей «rwm» в OpenLDAP. Это позволяет вам либо переписать свой DN, либо изменить суффикс, либо даже предоставить виртуальное представление ваших данных. Проверьте man 5 slapo-rwm . Это действительно мощная штука!
  3. Другой способ - установить псевдоним для начальной записи. cn = jdoe, ou = users, ou = others, dc = company, dc = com может иметь объектный класс «alias», а ваша первоначальная учетная запись записана в атрибуте aliasedObjectName . Все, что вам нужно сделать в этом случае, - это проверить, следует ли операция ldapsearch по отсылкам или нет.

На моем сервере у меня аналогичная настройка, и я выбрал третий способ. Чтобы он был полностью чистым, я создал свою собственную схему, в которой у меня есть специальный класс объекта псевдонима для этого, который предоставляет необходимые дополнительные поля.

0
ответ дан 3 December 2019 в 15:26

Теги

Похожие вопросы