Продолжаем разбираться с функционалом Gitea и на данный момент у меня задача настроить авторизацию пользователей Active Directory в Gitea с разделением по группам.
Я уже рассказывал как настроить авторизацию пользователей FreeIPA в Gitea.
Но в моем текущем проекте по импортозамещению есть небольшой нюанс, а именно настроенные отношения доверия FreeIPA и Active Directory при которых пользователи Active Directory не имеют записей в LDAP FreeIPA, что конечно же логично.
Подготовка среды
Для начала убедитесь, что у вас есть доступ к серверу Gitea и установленным компонентам:
- Сервер Gitea версии не ниже 1.18.x;
- Доступ к вашему контроллеру домена Windows Server или аналогичному LDAP-сервису;
- Учетная запись администратора домена с правами на чтение атрибутов каталога;
- Права на создание/изменение группы в каталоге Active Directory.
Также создайте две группы пользователей:
gitea-admins— группа администраторов Gitea;gitea-users— обычная пользовательская группа.
Добавьте несколько учетных записей пользователей в эти группы для тестирования.
Настройка подключения Gitea к контроллеру домена Active Directory
Есть два варианта как можно настроить интеграцию. Первый это использование конфигурационного файла, а второй настройка с использованием Web-интерфейса.
Создание конфигурационного файла для подключения к LDAP-серверу
Откройте файл конфигурации вашего сервера Gitea (app.ini), который в моем случае находится в /opt/gitea/custom/conf/app.ini.
Найдите секцию [ldap]. Если она отсутствует, добавьте её вручную следующим образом:
[ldap]
ENABLED = true
HOST = ldap://<адрес_вашего_ldap>:389
USERNAME = <учетка_для_чтения>
PASSWORD = <пароль_учетки>
SECURITY_PROTOCOL = none # Измените при необходимости на tls или starttls
SEARCH_BASE_DN = DC=example,DC=com # Базовый DN вашей структуры AD
FILTER = (&(objectClass=user)(sAMAccountName=%s))
ATTRIBUTE_USERNAME = sAMAccountName
ATTRIBUTE_EMAIL = mail
ATTRIBUTE_FULL_NAME = displayName
ATTRIBUTE_UID = objectGUID
GROUP_SEARCH_FILTER = memberOf
GROUP_ADMIN_FILTER = CN=gitea-admins,OU=Groups,DC=example,DC=com
GROUP_USER_FILTER = CN=gitea-users,OU=Groups,DC=example,DC=com
Здесь важно правильно указать:
- Адрес и порт LDAP-сервера (обычно это 389);
- Имя и пароль учетной записи для чтения данных из AD;
- Структуру поиска внутри каталога AD;
- Фильтры для определения принадлежащих пользователю групп.
После внесения изменений перезапустите службу Gitea командой:
# systemctl restart gitea.service
Настройка подключения с использованием Web-интерфейса
Фактически нам понадобится учетная запись администратора Gitea.

Переходим в панель управления и выбираем «Идентификация и доступ» -> «Аутентификация».

Добавляем новый источник типа LDAP (via BindDN). Данные заполняем аналогично настройке из консоли.

Таким образом, интеграция Gitea с Active Directory позволяет эффективно разграничивать доступ к системным ресурсам на основании ролей и групп пользователей, обеспечивая безопасность и контроль над инфраструктурой.




