RhodeCode интеграция с Active Directory

by Anton Chernousov aka GITA-DEV


Опубликовано: 12 Мар 2018 (последние правки 2 месяца)


RhodeCode интеграция с Active Directory

При работе с множеством внутренних корпоративных сервисов всегда возникает желание как-то унифицировать логины и пароли пользователей и упростить создание новых пользователей. Не сказать, что у нас большая текучка, но болшьшое число внутренних сервисов создает некоторые проблемы с заведением новых пользователей, так как даже следуя плану предоставления доступа можно что-то забыть. Я предпочитаю привязывать все сервисы в ActiveDirectory компании и повозможности интегрировать пользователей и группы различных сервисов с пользователями и группами в ActiveDirectory.

1. Отключение регистрации пользователей и анонимного входа

Интеграцию с корпоративной сетью мы начнем с того, что отключим регистрацию пользователей (использовать мы будем только созданных вручную системных пользователей и учетные записи разработчиков из Active Direcory).

Для отключения регистрации пользователей перейдите "Admin » Permissions" и в разделе Application переключите режимы Anonymous Access и Registration в режим:

  • Anonymous Access - Disabled
  • Registration - Disabled
  • Password Reset - Disable Password Recovery

Отключение анонимной авторизации в RhodeCode

2. Настраиваем административные оповещения на электронную почту (сбои и т.п.)

Для настройки RhodeCode для отправки административных сообщений с использованием аккаунта на Yandex-почте измените следующие параметры в файле /home/git/.rccontrol/community-1/rhodecode.ini

email_to = chernousov.a@domain.net
error_email_from = hg@domain.net
app_email_from = hg@domain.net
email_prefix = [RhodeCode]
smtp_server = smtp.yandex.ru
smtp_username = hg@domain.net
smtp_password = Password
smtp_port = 465
smtp_use_tls = false
smtp_use_ssl = true
smtp_auth = LOGIN

Для проверки настроек электронной почты перейдите в раздел Admin » Settings меню Email и в поле Test Email введите адрес электронной почты на который будет отправлено тестовое сообщение.

Настройка оповещений по электронной почте для RhodeCode

3. Настройка интеграции с Active Directory

Для настройки интеграции с Active Directory вам прежде всего требуется включить соответствующий плагин в разделе Admin » Authentication Plugins (плагин отвечающий за использовние AD в качестве источника внешних пользователей называется LDAP (egg:rhodecode-enterprise-ce#ldap).

Включаем плагин интеграции в ActiveDirectory

После подтверждения активации плагина, он станет доступен для настройки в разделе Admin » Authentication Plugins » LDAP. Настройка авторизации пользователей с использованием LDAP каталога идентична для всех подобных систем и вам понадобится непривилегированный пользователь в Active Directory от имени которого будет происходить взаимодействие "Приложение -> Active Directory", базовая область поиска и фильтр выборки пользователей.

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

  • Enabled - Включает режим использования внешних LDAP-пользователей
  • LDAP Host - Перечень LDAP-серверов (разделенных запятыми) которые используются для авторизации и здесь укажите все ваши контроллеры домена для обеспечения отказоустойчивости.
  • Account - Аккаунт пользователя (в AD для чтения) который используется для интеграции с LDAP. Для Active Directory можно использовать запись вида domino\rhodecode или полная запись cn=admin,dc=mydomain,dc=com для OpenLdap.
  • Base DN - Область поиска пользователей
  • LDAP Search Filter - Фильтр поиска

Наиболее сложный для понимания параметр, это Ldap Search Filter и его лучше тестировать в отдельной среде, например в Apache Directory Studio.

Поиск в LDAP для RhodeCode

Пример, полностью рабочих (проверено) параметров и их можно взять за основу при настройке:

  • auth_ldap_attr_firstname - givenName
  • auth_ldap_tls_reqcert - NEVER
  • auth_ldap_attr_lastname - sn
  • auth_ldap_base_dn - DC=mixano,DC=local
  • auth_ldap_filter - (&(objectCategory=user)(memberOf=CN=hg_group,CN=Users,DC=mixano,DC=local))
  • auth_ldap_search_scope - SUBTREE
  • auth_ldap_cache_ttl - 0
  • auth_ldap_attr_email - mail
  • auth_ldap_attr_login - sAMAccountName
  • auth_ldap_dn_pass - 2Interprase
  • auth_ldap_enabled - True
  • auth_ldap_dn_user - mixano\rhodecode
  • auth_ldap_host - secondary-fs.mixano.local
  • auth_ldap_port - 636
  • auth_ldap_tls_kind - LDAPS

По завершении настроек LDAP-авторизации попробуйте войти в систему с использованием учетных данных Active Directory.

Авторизация с использованием учетных записей ActiveDirectory

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

Пользователь доступен после авторизации


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .

Блог это некоммерческий проект! Если вам понравился мой блог и то что я пишу помогло вам на практике, то можете сказать спасибо материально.