← Назад к статьям

Интеграция Jira с Active Directory / LDAP

Интеграция Jira с корпоративным каталогом (Active Directory или LDAP) — это стандартная практика для большинства организаций. Она упрощает управление пользователями, обеспечивает единый вход и повышает безопасность. Но настройка LDAP-интеграции часто вызывает проблемы: от простых ошибок конфигурации до сложных проблем с синхронизацией. В этой статье разберу практический опыт настройки и решения типичных проблем.

Зачем нужна интеграция с LDAP

Без интеграции с LDAP каждый пользователь создаётся в Jira вручную, пароли управляются отдельно, группы приходится поддерживать вручную. Это создаёт множество проблем:

  • Дублирование учётных записей в разных системах
  • Необходимость синхронизировать пароли вручную
  • Сложность управления группами
  • Проблемы при увольнении сотрудников (нужно удалять из всех систем)
  • Отсутствие единого входа (SSO)

Интеграция с LDAP решает все эти проблемы: пользователи синхронизируются автоматически, пароли управляются в одном месте, группы берутся из каталога.

Архитектура LDAP-интеграции в Jira

Jira может работать с LDAP напрямую или через Crowd. В большинстве случаев достаточно прямой интеграции, но Crowd даёт дополнительные возможности (например, поддержка нескольких директорий одновременно).

Прямая интеграция

Прямая интеграция означает, что Jira подключается к LDAP/AD напрямую. Это самый простой вариант, который подходит для большинства случаев.

Настройка происходит через: Administration → User management → User directories → Add directory → LDAP.

Интеграция через Crowd

Crowd — это отдельный продукт Atlassian, который служит прослойкой между Jira и LDAP. Используется когда нужна интеграция нескольких приложений Atlassian с одним LDAP или когда требуется поддержка нескольких LDAP-источников одновременно.

Для одного приложения Jira использование Crowd обычно избыточно, но для экосистемы Atlassian (Jira + Confluence + Bitbucket) Crowd может быть полезен.

Настройка подключения к LDAP

Первый шаг — настройка подключения. Вот основные параметры, которые нужно заполнить.

Базовые параметры подключения

Directory Type: выберите тип вашего каталога (Microsoft Active Directory, OpenLDAP, Generic LDAP и т.д.). От этого зависят некоторые настройки по умолчанию.

Name: имя директории в Jira. Может быть любым, используется для идентификации.

Hostname: адрес LDAP-сервера. Может быть доменное имя или IP-адрес.

Port: порт LDAP-сервера. Обычно 389 для LDAP или 636 для LDAPS (зашифрованный LDAP).

Protocol: LDAP или LDAPS. Рекомендую всегда использовать LDAPS (зашифрованное соединение) для безопасности. Если LDAP-сервер не поддерживает LDAPS, используйте StartTLS.

Учётная запись для подключения

Jira нужна учётная запись для подключения к LDAP и выполнения поиска пользователей. Обычно используется специальная техническая учётная запись (service account) с минимальными правами.

Username: DN (Distinguished Name) технической учётной записи. Например: CN=jira-service,OU=Service Accounts,DC=company,DC=com

Password: пароль технической учётной записи.

Важно: техническая учётная запись должна иметь права только на чтение в LDAP. Не используйте учётную запись администратора домена.

Настройка поиска пользователей

Jira нужно знать, где искать пользователей в LDAP. Это настраивается через Base DN и User Object Filter.

Base DN

Base DN — это корневая точка поиска в LDAP. Укажите DN организационной единицы, где находятся пользователи. Например: OU=Users,DC=company,DC=com

Не указывайте слишком широкий Base DN (например, корень домена) — это замедлит поиск и может создать проблемы безопасности.

User Object Filter

Фильтр, который определяет, какие объекты считаются пользователями. Для Active Directory обычно:

(&(objectCategory=Person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))

Этот фильтр находит все объекты типа Person/User, исключая отключённые учётные записи (userAccountControl содержит флаг 2 для disabled accounts).

User Name Attribute

Атрибут LDAP, который используется как имя пользователя в Jira. Для Active Directory это обычно sAMAccountName, для OpenLDAP — uid.

User DN Pattern

Паттерн для построения DN пользователя на основе имени пользователя. Например:

CN={0},OU=Users,DC=company,DC=com

Где {0} заменяется на значение User Name Attribute. Это используется для аутентификации.

Альтернатива: вместо User DN Pattern можно использовать User Search Filter, который более гибкий и работает быстрее для больших каталогов.

Настройка синхронизации групп

Группы в Jira могут синхронизироваться из LDAP. Это упрощает управление правами доступа.

Base DN для групп

Аналогично пользователям, укажите DN, где находятся группы. Например: OU=Groups,DC=company,DC=com

Group Object Filter

Фильтр для поиска групп. Для Active Directory:

(&(objectCategory=group)(objectClass=group))

Group Name Attribute

Атрибут, содержащий имя группы. Обычно cn (Common Name).

Синхронизация членства в группах

Jira может автоматически добавлять пользователей в группы на основе их членства в LDAP-группах. Это настраивается через опцию "Group Membership" с указанием атрибута членства (обычно member или memberOf).

Режимы синхронизации

Jira поддерживает два режима синхронизации: Jira Internal и Read Only.

Jira Internal (Read/Write)

В этом режиме Jira может создавать пользователей и группы, даже если их нет в LDAP. Пользователи могут менять пароли в Jira (но они будут синхронизироваться обратно в LDAP).

Когда использовать: когда некоторые пользователи не в LDAP, или когда нужно разрешить изменение паролей через Jira.

Read Only

В этом режиме Jira только читает из LDAP. Пользователи и группы должны существовать в LDAP, пароли меняются только в LDAP.

Когда использовать: стандартная настройка для большинства организаций. Все управление пользователями происходит в LDAP/AD, Jira только синхронизирует данные.

Рекомендация: используйте Read Only режим для production-систем. Это обеспечивает единую точку управления и снижает риск рассинхронизации.

Настройка синхронизации

После настройки подключения нужно настроить синхронизацию: как часто она происходит, какие атрибуты синхронизируются.

Интервал синхронизации

Jira может синхронизироваться с LDAP по расписанию (например, каждый час) или в реальном времени при логине пользователя (on-the-fly).

Рекомендация: используйте комбинированный подход:

  • Полная синхронизация по расписанию (например, раз в час ночью)
  • Инкрементальная синхронизация при логине пользователей

Это обеспечивает актуальность данных без создания большой нагрузки на LDAP-сервер.

Синхронизация атрибутов

Можно настроить, какие атрибуты LDAP синхронизируются в профиль пользователя Jira:

  • Email — из атрибута mail
  • Full Name — из атрибута displayName или cn
  • Department — из атрибута department (если нужен)
  • И другие кастомные атрибуты

Настройка маппинга атрибутов находится в разделе "User Schema Settings".

Типичные проблемы и их решение

За годы работы я накопил опыт решения типичных проблем с LDAP-интеграцией.

Проблема 1: Пользователи не могут войти

Причины:

  • Неправильный User DN Pattern или User Search Filter
  • Пользователь не попадает в User Object Filter
  • Неправильные права технической учётной записи
  • Проблемы с паролем (неправильная кодировка, истёкший пароль в AD)

Решение: включите debug-логирование LDAP в Jira и проверьте логи при попытке входа. Логи покажут, на каком этапе происходит ошибка.

Проблема 2: Медленная синхронизация

Причины:

  • Слишком широкий Base DN (поиск по всему домену)
  • Неоптимальные фильтры поиска
  • Медленная сеть до LDAP-сервера
  • Большое количество пользователей и групп

Решение: сузьте Base DN до конкретных OU, оптимизируйте фильтры, используйте инкрементальную синхронизацию, рассмотрите использование реплики LDAP ближе к Jira.

Проблема 3: Группы не синхронизируются

Причины:

  • Неправильный Base DN для групп
  • Неправильный Group Object Filter
  • Проблемы с атрибутом членства в группах

Решение: используйте инструменты для просмотра LDAP (например, AD Explorer для Active Directory) для проверки структуры и атрибутов групп. Проверьте, что техническая учётная запись имеет права на чтение групп.

Проблема 4: Пользователи видят неправильные группы

Причины:

  • Проблемы с синхронизацией членства в группах
  • Кэш групп в Jira не обновляется
  • Пользователь состоит в группах через вложенные группы, которые не поддерживаются

Решение: принудительно синхронизируйте пользователя, очистите кэш групп. Для вложенных групп может потребоваться дополнительная настройка или использование Crowd.

Безопасность LDAP-интеграции

При настройке LDAP-интеграции важно обеспечить безопасность.

Используйте LDAPS или StartTLS

Никогда не используйте незашифрованный LDAP (порт 389) для production. Пароли передаются в открытом виде, что создаёт огромную уязвимость безопасности. Всегда используйте LDAPS (порт 636) или StartTLS.

Минимальные права технической учётной записи

Техническая учётная запись должна иметь только права на чтение в LDAP, ничего больше. Не используйте учётную запись администратора домена.

Ограничьте Base DN

Указывайте Base DN как можно более узкий — только те OU, где действительно находятся пользователи и группы. Это не только повышает безопасность, но и ускоряет поиск.

Миграция с локальных пользователей на LDAP

Если в Jira уже есть локальные пользователи, миграция на LDAP требует осторожности.

Подготовка к миграции

  1. Создайте всех пользователей в LDAP (если их там нет)
  2. Убедитесь, что имена пользователей в Jira совпадают с именами в LDAP
  3. Протестируйте подключение на тестовом сервере
  4. Создайте резервную копию Jira

Процесс миграции

  1. Добавьте LDAP-директорию в Jira (но не делайте её приоритетной)
  2. Проверьте, что пользователи синхронизируются корректно
  3. Переместите LDAP-директорию в начало списка (сделайте приоритетной)
  4. Проверьте, что пользователи могут входить через LDAP
  5. После успешного тестирования можно удалить локальную директорию (но не обязательно)

Выводы

Интеграция Jira с LDAP/Active Directory — это стандартная практика, которая упрощает управление пользователями и повышает безопасность. Правильная настройка требует понимания структуры LDAP и тщательной конфигурации параметров.

Используйте Read Only режим для production, всегда применяйте шифрование (LDAPS), ограничивайте Base DN, тестируйте настройки перед применением на production. Регулярно проверяйте логи синхронизации на наличие ошибок.

Если возникают проблемы, включите debug-логирование и анализируйте логи. Большинство проблем связано с неправильной настройкой поиска пользователей или групп.

Если нужна помощь с настройкой LDAP-интеграции — свяжитесь со мной.