@strelkovandreyvalerievich

Как синхронизировать пользователей GitLab с Active Directory?

Добрый день, имеется установленный на своём сервере Gitlab Community Edition
Сервер находится в Интранет сети где также есть Active Directory

Задача такая, что в Active Directory есть специальная группа gitlab-users, суть которой, в том
что в ней находятся пользователи которые должны иметь доступ к гитлабу.

На стороне гитлаба настройка AD сделана, сделана таким образом, что пользователь может попытаться авторизоваться, но гит создаст его учётку но не активирует её, сказав пользователю, что я как бы создал, но админ должен подтвердить

Нужно сделать так, что на сервере должен гитлаба, получается должен быть некий скрипт, который будет выполнять следующее:

1. Получить список пользователей AD находящиеся в группе gitlab-users
2. Циклом пробегаться по данному списку, и через objectsid делать запрос по API гитлаба на факт наличия такого пользователя уже в гите (заранее получается в настройках пользователей нужно добавить так называемый кастомный провайдер, или как они уних так называется, но суть которого что это просто дополнительное поле у пользователя, в которой как раз нужно будет помещать objectsid)
3. Если таковой пользователь есть, то сравнить основные поля (логин, почтовый ящик, имя и т.п.) и если один из них отличается - то обновить также через API гита. Либо даже не проверять а без разбора - нашёл такого - обнови
4. Если не нашёл - то через API гита - создай

И вот такой скрипт примерно раз в час запускать по крону.

Вопрос, в том, можно ли такое реализовать bash-ем, или как мне советовали нужно уже прибегать к питону.
Ни то ни другое не знаю, потому спрашиваю куда лучше, где легче и быстрее
  • Вопрос задан
  • 1044 просмотра
Пригласить эксперта
Ответы на вопрос 1
alfss
@alfss
https://career.habr.com/alfss
Сделать можно и на bash залезая в бд напрямую.
Можно на любом вами любимом языке программирования.
Или к примеру cli заюзать https://github.com/NARKOZ/gitlab/blob/master/README.md
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы