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

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

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 12 Мар 2018 (последние правки 1 месяц)

active directory admin cv email eset git ldap rhodecode smtp ssl авторизация

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-авторизации домен указывать не надо, это приведет к ошибке и дополнительно к вопросу использования внешних пользователей, обратите внимание, что локальный пользователь в системе появится только после первого входа в систему (с логином и паролем внешнего пользователя) и вы сможете назначить ему необходимые группы и права.

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

Похожие статьи

Установка Hg/Git/Svn хранилища репозитария Rhodecode

Установка Hg/Git/Svn хранилища репозитария Rhodecode

И хотя стандартном де-факто для построения внутренних GIT-хранилищ на данный момент является GitLab есть компании где еше не все мигрировали на Git и требуется поддержка нескольких типов репозитариев. Сегодня мы рассмотрим один из проектов корпоративных хранилищ исходных кодов с поддержкой нескольких типов репозитариев, а речь пойдет о RhodeCode. И в первом обзоре мы рассмотрим как установить, хранилище репозитариев.


Как включить доступ к репозитариям по ключу в RhodeCode

Как включить доступ к репозитариям по ключу в RhodeCode

RhodeCode поддерживает доступ к репозитариям с использованием публичного ключа, но по умолчанию этот режим отключен и используется доступ к репозитариям с использованием пары логин-пароль. Я предпочитаю использовать именно авторизацию по ключу и сегодня будем разбираться как этот режим включить в RhodeCode


Обновление RhodeCode

Обновление RhodeCode

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


Настройка RhodeCode на сервере под управлением ISPmanager

Настройка RhodeCode на сервере под управлением ISPmanager

Как я ненавижу разного рода панели управления наподобие ISP, это просто словами не описать, мало того. что они ограничивают системного администратора набором шаблонных функций, так еще и ломаются на раз по самым необъяснимым причинам. Я по возможности стараюсь отказываться от проектов где меня просят сделать из сервера с панелью управления нечто нестандартное, но сегодня рассмотрим именно такой кейс.


Отзывы и комментарии