Gitea - настройка LDAP аутентификации
Gitea - это Open Source проект, который позволяет хранить ваш код в Git совместимых репозиториях. Со всеми вытекающими удобставами. Однако, в этой небольшой публикации я не буду говорить о том, какие есть возможности у системы Gitea. Я покажу, как можно выполнить настройку LDAP аутентификации. В нашем случае была задача настройки LDAP аутентификации не для всех пользователей Active Directory, а только для тех, кто включен в определенную группу.
Схема, которую мы планировали настроить выглядит следующим образом:
Как выполняется такая настройка:
1. В контекстном меню профиля в Gitea выбирает пункт для управления сайтом (Site Administration):
Скриншот с примерами настроек:
Для каждой доменной учетной записи Gitea создает соответствующую ей локальную учетную запись. Если, в момент первого входа доменного пользователя для него не будет локальной УЗ, то система Gitуa создаст такую УЗ автоматически.
Теперь мы можем проверить аутентификацию под учетной записью из домена Active Directory. Указываем имя пользователя в формате samaccountname (без префикса "domain\" или суффикса "@domain.local"):
Если на странице с настройками параметров источника аутентификации все параметры были указаны верно, то мы должны получить доступ к системе Gitea:
Схема, которую мы планировали настроить выглядит следующим образом:
т.е. пользователи будут аутентифицироваться в системе Gitea под учетной записью домена Active Directory. Однако, доступ в систему Gitea получат только те пользователи, которые входят в группу GiteaAccess. Соответственно, если пользователь не входит в группу GiteaAccess, то аутентифицироваться и получить доступ он не сможет.
Как выполняется такая настройка:
1. В контекстном меню профиля в Gitea выбирает пункт для управления сайтом (Site Administration):
2. На странице настроек переходим на вкладку "Authentication Source" и нажимаем кнопку "Add Authentication Source".
3. Указываем параметры подключения к LDAP:
Параметр |
Описание |
Authentication Name | Имя источника аутентификации. Именно это имя будет отображаться в настройках. |
Security Protocol | По умолчанию используется нешифрованное подключение, но, если вы хотите подключаться к AD по шифрованному каналу, то выберите значение "LDAPS". |
Host | Имя или IP-адрес контроллера домена |
Port | Порт: 389 для незащищенного соединения и 636 для защищенного соединения |
Bind DN | DistinguishedName (DN) пользователя от имени которого Gitea будет аутентифицироваться в Active Directory. Пример: CN=git,OU=Service,DC=domain,DC=local |
Bind Password | Пароль от пользователя для параметра "Bind DN" |
User Search Base | Указывает от какого объекта в иерархии Active Directory начинать поиск пользователей. Мы ищем начиная с корня. Пример значения: DC=domain,DC=local |
User Filter |
Один из ключевых атрибутов для реализации требования по ограничению доступа для группы. Пример значения: (&(objectCategory=Person) (memberOf=CN=GiteaAccess,DC=domain,DC=local)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2))) По пунктам: objectCategory=Person - выбираются только пользователи sAMAccountName=%s - выбираются пользователи с любым именем UserAccountControl:1.2.840.113556.1.4.803:=2 - выбираются только активные пользователи memberOf=CN=GiteaAccess,DC=domain,DC=local - выбираются только пользователи, которые состоят в группе GiteaAccess. Здесь мы указываем DN группы (CN=GiteaAccess,DC=domain,DC=local). |
Скриншот с примерами настроек:
Еще один важный параметр в настройках "Enable User Synchronization". Мы оставили его выключенным, чтобы не все пользователи из AD (которые в группе GiteaAccess) автоматически создавались в системе.
Для каждой доменной учетной записи Gitea создает соответствующую ей локальную учетную запись. Если, в момент первого входа доменного пользователя для него не будет локальной УЗ, то система Gitуa создаст такую УЗ автоматически.
Теперь мы можем проверить аутентификацию под учетной записью из домена Active Directory. Указываем имя пользователя в формате samaccountname (без префикса "domain\" или суффикса "@domain.local"):
Если на странице с настройками параметров источника аутентификации все параметры были указаны верно, то мы должны получить доступ к системе Gitea:
После выполнения всех приведенных выше шагов по настройки интеграции с LDAP ваши пользователи смогут аутентифицировать в системе Gitea под учетной записью Active Directory. Что мы, собственно, и проверили самым последним шагом.