Вопрос или проблема
Я новичок в 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: error code 49 – 80090308: LdapErr: DSID-0C0903A9, comment:
AcceptSecurityContext error, data 52e, v1db1]
что означает “неверные учетные данные”.
Но если я укажу полное имя явно в строке преобразования, я могу войти (но, конечно, никто другой не сможет):
"cn=Doe\, John,ou=users,ou=others,dc=company,dc=com"
Поэтому мой вопрос:
Могу ли я модифицировать DN пользователя “на лету”, чтобы иметь что-то типа этого, например:
"cn=jdoe,ou=users,ou=others,dc=company,dc=com"
?
Хотя этот вопрос может быть немного устаревшим, я пришел к нескольким мыслям по этому поводу. Возможно, это поможет кому-то в будущем:
- Вы можете просто изменить DN, используя
ldapmodify
с
changetype: moddn
илиmodrdn
, предоставив новый DN (newrdn
).
Больше информации по этому поводу можно найти в пункте 4 здесь: http://www.zytrax.com/books/ldap/ch8/#changetype - Вы можете использовать накладку “rwm” в OpenLDAP. Это позволяет либо переписать ваш DN, изменить суффикс или даже предоставить виртуальный вид на ваши данные. Проверьте
man 5 slapo-rwm
. Это действительно мощная вещь! - Другой способ – настроить алиас для начальной записи.
cn=jdoe,ou=users,ou=others,dc=company,dc=com
может быть объектным классом “alias” и иметь вашу начальную учетную запись, записанную в атрибутеaliasedObjectName
. Все, что вам нужно сделать в этом случае, это проверить, следует ли операция ldapsearch перенаправлениям или нет.
На моем сервере у меня аналогичная настройка, и я выбрал третий способ. Чтобы все было полностью чисто, я создал свою собственную схему, где у меня есть предназначенный для этого объектный класс алиаса, предоставляющий необходимые дополнительные поля.
Ответ или решение
Конечно, работа с OpenLDAP и интеграция с системами аутентификации может являться сложной задачей, особенно если вы новичок в области LDAP. Рассмотрим вашу ситуацию более подробно и предложим пути решения с учетом специфики OpenLDAP.
Ситуация и проблема
Вы используете OpenLDAP в качестве кэш-прокси для Active Directory, и столкнулись с проблемой аутентификации в YouTrack через короткую форму логина (sAMAccountName
), такую как jdoe. Из-за нехватки настроек LDAP в YouTrack возникла необходимость динамического изменения Distinguished Name (DN).
Возможные решения
-
Использование ldapmodify:
Самым прямым способом изменения DN является использование команды
ldapmodify
с указаниемchangetype: moddn
илиmodrdn
. Это требует изменения тщательно привязанного DN у каждого пользователя, что может быть непрактичным в условиях большого количества пользователей. -
Использование overlay "rwm" в OpenLDAP:
OpenLDAP предлагает мощный инструмент в виде overlay "rwm", который позволяет переписывать DN на лету. Вы можете установить правила преобразования DN таким образом, чтобы преобразовывать логин, соответствующий
sAMAccountName
, в нужное представление полного DN. Для более детальной информации, обратитесь к документации через командуman 5 slapo-rwm
. -
Создание алиасов:
Третий подход заключается в создании алиасов. Новый DN, например,
cn=jdoe,ou=users,ou=others,dc=company,dc=com
, может принадлежать объектному классу "alias" и ссылаться на исходный аккаунт через атрибутaliasedObjectName
. Преимущество этого подхода в том, что он предоставляет непрерывность без изменения исходного DN и обеспечивает гибкость в настройке.
Рекомендации
Для правильного выбора решения рекомендуется анализ требуемой гибкости взаимодействия с системой и доступных ресурсов для внедрения решения. При наличии достаточных навыков администрирования OpenLDAP, второй подход с использованием overlay "rwm" представляется наиболее масштабируемым и гибким. Если необходима простота и структура не так критична, алиасы могут стать более простым и эффективным решением.
Независимо от выбранного метода, важно поддерживать актуальность и синхронизацию всех изменений с существующей LDAP-средой. Для этого рекомендуется разрабатывать и тестировать насколько возможно в отдельной изолированной среде перед внедрением на реальную продуктивную систему.
Удачи в интеграции и настройке OpenLDAP с системой учета задач YouTrack!