Изменение 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: 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"

?

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

  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 перенаправлениям или нет.

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

Ответ или решение

Конечно, работа с OpenLDAP и интеграция с системами аутентификации может являться сложной задачей, особенно если вы новичок в области LDAP. Рассмотрим вашу ситуацию более подробно и предложим пути решения с учетом специфики OpenLDAP.

Ситуация и проблема

Вы используете OpenLDAP в качестве кэш-прокси для Active Directory, и столкнулись с проблемой аутентификации в YouTrack через короткую форму логина (sAMAccountName), такую как jdoe. Из-за нехватки настроек LDAP в YouTrack возникла необходимость динамического изменения Distinguished Name (DN).

Возможные решения

  1. Использование ldapmodify:

    Самым прямым способом изменения DN является использование команды ldapmodify с указанием changetype: moddn или modrdn. Это требует изменения тщательно привязанного DN у каждого пользователя, что может быть непрактичным в условиях большого количества пользователей.

  2. Использование overlay "rwm" в OpenLDAP:

    OpenLDAP предлагает мощный инструмент в виде overlay "rwm", который позволяет переписывать DN на лету. Вы можете установить правила преобразования DN таким образом, чтобы преобразовывать логин, соответствующий sAMAccountName, в нужное представление полного DN. Для более детальной информации, обратитесь к документации через команду man 5 slapo-rwm.

  3. Создание алиасов:

    Третий подход заключается в создании алиасов. Новый DN, например, cn=jdoe,ou=users,ou=others,dc=company,dc=com, может принадлежать объектному классу "alias" и ссылаться на исходный аккаунт через атрибут aliasedObjectName. Преимущество этого подхода в том, что он предоставляет непрерывность без изменения исходного DN и обеспечивает гибкость в настройке.

Рекомендации

Для правильного выбора решения рекомендуется анализ требуемой гибкости взаимодействия с системой и доступных ресурсов для внедрения решения. При наличии достаточных навыков администрирования OpenLDAP, второй подход с использованием overlay "rwm" представляется наиболее масштабируемым и гибким. Если необходима простота и структура не так критична, алиасы могут стать более простым и эффективным решением.

Независимо от выбранного метода, важно поддерживать актуальность и синхронизацию всех изменений с существующей LDAP-средой. Для этого рекомендуется разрабатывать и тестировать насколько возможно в отдельной изолированной среде перед внедрением на реальную продуктивную систему.

Удачи в интеграции и настройке OpenLDAP с системой учета задач YouTrack!

Оцените материал
Добавить комментарий

Капча загружается...