Gitea - настройка LDAP аутентификации
Роман Лихачев |
25 июля 2022
4378

Gitea - настройка LDAP аутентификации

Gitea - это Open Source проект, который позволяет хранить ваш код в Git совместимых репозиториях. Со всеми вытекающими удобставами. Однако, в этой небольшой публикации я не буду говорить о том, какие есть возможности у системы Gitea. Я покажу, как можно выполнить настройку LDAP аутентификации. В нашем случае была задача настройки LDAP аутентификации не для всех пользователей Active Directory, а только для тех, кто включен в определенную группу.

Схема, которую мы планировали настроить выглядит следующим образом:

Gitea - интеграция с AD.jpg

т.е. пользователи будут аутентифицироваться в системе 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) автоматически создавались в системе.


4. После указания всех необходимых параметров нажимаем кнопку "Update Authentication Source".

Для каждой доменной учетной записи Gitea создает соответствующую ей локальную учетную запись. Если, в момент первого входа доменного пользователя для него не будет локальной УЗ, то система Gitуa создаст такую УЗ автоматически.

Теперь мы можем проверить аутентификацию под учетной записью из домена Active Directory. Указываем имя пользователя в формате samaccountname (без префикса "domain\" или суффикса "@domain.local"):


Если на странице с настройками параметров источника аутентификации все параметры были указаны верно, то мы должны получить доступ к системе Gitea:

После выполнения всех приведенных выше шагов по настройки интеграции с LDAP ваши пользователи смогут аутентифицировать в системе Gitea под учетной записью Active Directory. Что мы, собственно, и проверили самым последним шагом.

Возврат к списку


Комментировать