Навигатор по разделу:
- 1. Общие сведения
- 2. Поддерживаемые функции
- 3. Порядок установки и настройки подключения
- 4. Установка коннектора на сервере Avanpost IDM
- 5. Выпуск токена доступа в GitLab
- 6. Настройка интеграции в Avanpost IDM
- 7. Проверка настроенной интеграции
- 8. Методы API коннектора
1. Общие сведения
Avanpost IDM позволяет автоматизировать управление учётными записями и правами доступа пользователей в подключенной системе управления репозиториями GitLab через API веб-сервера.
Коннектор "GitLab.ProvisioningConnector", представляющий из себя библиотеку dll, устанавливается на сервере Avanpost IDM. С помощью коннектора создается подключение к системе управления репозиториями GitLab. Взаимодействие IDM с управляемой системой осуществляется в одностороннем порядке:
- Avanpost IDM инициирует запрос;
- GitLab исполняет запрос и возвращает результат исполнения запроса.
Примечание:
Подробнее о настройке ресурсов управляемых систем см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.
2. Поддерживаемые функции
Коннектор Avanpost IDM к системе управления репозиториями GitLab обладает следующими функциональными возможностями:
1. Управление УЗ пользователей:
- Создание УЗ пользователя;
- Изменение атрибутов УЗ пользователя;
- Блокировка УЗ пользователя;
- Разблокировка УЗ пользователя;
- Удаление УЗ пользователя;
- Получение атрибутов с генерируемыми значениями.
2. Управление доступом и мониторинг активности пользователей:
- Включение УЗ пользователя в группы доступа;
- Исключение УЗ пользователя из групп доступа;
- Получение времени последнего входа пользователя.
3. Управление репозиториями:
- Проверка наличия у пользователя прав на доступ к проектам, фрагментам и группам в GitLab;
- Назначение и отзыв у пользователя прав на доступ к проектам, фрагментам и группам в GitLab;
3. Порядок установки и настройки подключения
Для установки подключения через коннектор "GitLab.ProvisioningConnector" к управляемой системе необходимо:
- Установить коннектор на сервере Avanpost IDM.
- Выпустить токен доступа в GitLab.
- Настроить ресурс для подключаемой управляемой системы в IDM.
- Проверить настроенную интеграцию.
4. Установка коннектора на сервере Avanpost IDM
Для установки коннектора на сервере Avanpost IDM необходимо поместить библиотеку коннектора "GitLab.ProvisioningConnector.dll" в директорию "/opt/avanpost/connectors" или на удаленный сервис коннекторов.
Примечание:
Подробнее о настройке удаленного сервиса коннекторов см. статью "5.4. Установка и настройка удаленного сервиса коннекторов Avanpost IDM" руководства по установке.
5. Выпуск токена доступа в GitLab
Для выпуска токена доступа в GitLab необходимо выполнить действия по инструкции: https://docs.gitlab.com/user/profile/personal_access_tokens/
Внимание!
- Для выпуска токена доступа требуется учетная запись администратора GIT с правом выпуска токена.
- В разделе scopes необходимо выбрать "api".
6. Настройка интеграции в Avanpost IDM
Для настройки интеграции управляемой системы в IDM необходимо выполнить шаги:
Шаг 6.1. Создать и настроить ресурс для подключаемой управляемой системы в Avanpost IDM.
Для этого требуется:
- В разделе "Интеграции"→"Целевые системы" веб-интерфейса администратора Avanpost IDM нажать и выбрать "Ресурс" из списка.
- В открывшейся форме указать произвольное название ресурса.
- Нажать . Ресурс будет добавлен в список в разделе "Целевые системы".
Рисунок – Создание ресурса
- Нажать на созданный ресурс в списке. Откроется форма с настройками ресурса.
- На вкладке "Атрибуты ресурса" требуется указать следующие атрибуты:
Атрибут Значение Каталог Каталог в иерархии, в котором находится ресурс. Для смены каталога выбрать из выпадающего списка требуемый каталог. Название Произвольное название ресурса. Библиотека коннекторов Выбрать из выпадающего списка библиотеку коннекторов "FreeIpa.ProvisioningConnector".
Строка подключения Формат строки подключения
Параметры в строке подключения записываются последовательно с указанием передаваемых значений после знака равно (=). Разделителем между параметрами служит точка с запятой (
;).Пример строки подключенияurl=http://gitlab.test/api/v4;base_dn=ou=public-wf,dc=tester,dc=domain;token=oy5Vz4szH-KMorUZdCfQ;
Обязательные параметры строки подключения
Параметр
Описание
url Адрес к API сервера GitLab. baseDn Базовое DN для аутентификации, на основании которого формируется идентификатор внешнего пользователя (external_uid), соответствующий пользователю на LDAP-сервере. token Токен доступа. Подробнее см. раздел 5.Выпуск токена доступа в GitLab Опциональные параметры строки подключения
Параметр
Описание
projects_limit Лимит создаваемых проектов для права "can_create_projects". Если пользователю назначено право can_create_projects=true, будет применяться лимит создаваемых проектов, который должен быть строго больше нуля. В противном случае создание проектов будет невозможно. По умолчанию значение лимита 100 000 Ресурс включен Отметить чекбокс для активации ресурса в системе. Число потоков синхронизации Указать число потоков синхронизации ресурса с Avanpost IDM. Использовать ограничение потоков синхронизации для операций чтения Отметить чекбокс для использования ограничения потоков синхронизации для операций чтения. Использовать как источник почтовых адресов Отметить чекбокс, если ресурс является источником почтовых адресов. Применение изменений прав к ресурсу Выбрать из выпадающего списка "Все назначаемые ролью" или "Только недостающие". Примечание:
Подробнее о настройке ресурсов см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.
Шаг 6.2. Добавить профиль для созданного ресурса.
Требуется добавить хотя бы один общий или необщий профиль (по инструкции 5.2.1. или 5.2.2.)
6.2.1. Создание общего профиля ресурсов
Для создания общего профиля необходимо:
- Перейти в раздел "Интеграции"→"Целевые системы" в веб-интерфейсе администратора Системы.
- Нажать и выбрать из списка "Общий профиль".
- Заполнить атрибуты профиля в открывшейся форме (Таблица).
- Нажать .
6.2.2. Создание необщего профиля ресурсов
Для создания необщего профиля необходимо:
- Перейти в раздел "Интеграции"→"Целевые системы" в веб-интерфейсе администратора Системы.
- Нажать в строке ресурса, в котором требуется создать профиль, и выбрать из открывшегося списка "Добавить профиль".
- Заполнить атрибуты профиля в открывшейся форме (Таблица).
- Нажать .
Таблица - Атрибуты профиля.
| Атрибут | Значение |
|---|---|
| Название | Указать произвольное название профиля. |
| Профиль-источник учётных данных | Заполнять, только если в поле "Источник имен учетных записей" выбран вариант "Другой профиль". Выбрать из списка уже созданных профилей источник учётных данных пользователей. |
| Чекбокс "Синхронизировать пароли с источником учётных данных" | Включает синхронизацию паролей с источником учётных данных. |
| Чекбокс "При создании учётных записей генерировать пароль" | Включает генерацию первоначального пароля при создании УЗ пользователя в ресурсе. |
| Чекбокс "Разрешить неуникальность учетных записей по владельцу" | Разрешает одному пользователю иметь более одной УЗ в ресурсе. |
| Чекбокс "Разрешить восстановление пароля" | Разрешает восстановление пароля для УЗ в ресурсе. |
| Источник имен учетных записей | Выбрать из списка источник имен учетных записей:
Возможен вариант создания новых учетных записей только вручную. В таком случае необходимо задать скрипт возвращающий ошибку на запрос генерации имени УЗ. |
| Сценарий генерации имён учётных записей | Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт". Задать сценарий генерации имен учетных записей на Python. Кнопка открывает окно редактирования скрипта. При разработке скрипта для генерации логина сотрудника или юнита необходимо использовать параметры, описанные в статье: "10.6.1. Сценарии генерации логинов учетных записей". Примечание: Подробнее о юнитах см. статью "5.1.8. Настройка типов объектов и юнитов" руководства по администрированию. После указания скрипта нажать и выбрать подходящий вариант в зависимости от того, кто будет владельцами учетных записей данного профиля:
Например, владельцами пользовательских УЗ обычно являются сотрудники, а владельцами технических УЗ могут быть юниты, такие как рабочие группы. После выбора одного из вариантов откроется окно со списком сотрудников или юнитов. Требуется выбрать объект в списке и нажать . |
| Чекбокс "Отклонять возвращаемые имена для уже существующих учётных записей" | Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт". При отмеченном чекбоксе отклоняются возвращаемые скриптом имена УЗ, незарегистрированные в IDM, но существующие в ресурсе. Примечание: По умолчанию существование или отсутствие УЗ в ресурсе не влияет на процесс назначения ролей. |
| Способ разрешения конфликтов | Данное поле доступно, только если в поле "Источник имен учетных записей" выбран вариант "Скрипт". Выбрать из списка способ разрешения конфликтов при генерации имён УЗ:
Примечание: Номер попытки сохраняется в переменной Iteration, нумерация с 0. |
| Парольная политика | Выбрать из выпадающего списка одну из настроенных в IDM парольных политик. |
Примечание:
Подробнее о настройке профилей ресурсов см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.
Шаг 6.3. Провести синхронизацию прав и учетных записей с созданным ресурсом с помощью запланированных заданий.
Примечание:
Подробнее о работе с запланированными заданиями см. статью "6.1.9. Настройка запланированных заданий" руководства по администрированию.
7. Проверка настроенной интеграции
Для проверки настроенной интеграции с системой управления репозиториями необходимо выполнить шаги:
Шаг 7.1. Проверка подключения к системе управления репозиториями
Для проверки установки соединения с управляемой системой требуется:
- В веб-интерфейсе администратора Avanpost IDM открыть ресурс управляемой системы.
- На вкладке "Права" проверить доступные права для добавления. Должны быть доступны права: "Администрирование системы", "Создание групп", "Создание проектов" и права ну группы Git.
Если вышеуказанные права доступны для добавления, то подключение управляемой системы через коннектор выполнено корректно.
Шаг 7.2. Проверка обработки запросов
Чтобы убедиться в правильной обработке запросов коннектором, требуется открыть лог-файл, расположенный на сервере Avanpost IDM в папке коннектора, и проверить его на отсутствие ошибок.
8. Методы API коннектора
| Метод | Параметры | Описание |
|---|---|---|
| CreateSession |
Пример значения параметра url=http://gitlab.test/api/v4;base_dn=ou=public-wf,dc=tester,dc=domain;token=oy5Vz4szH-KMorUZdCfQ; | Установка соединения, проверка возможности соединения с управляемой системой |
| RenameAccount |
| Изменение имени аккаунта пользователя |
| CreateUser |
| Создание учетной записи пользователя в системе |
| GetUser |
| Получение имени УЗ и статуса пользователя. Если УЗ не существует, то метод возвращает null. |
| GetActiveUsers | Получение всех активных (включенных и незаблокированных) УЗ в ресурсе | |
| GetAllProperties | Возвращение списка значимых атрибутов пользователей, вычисляемых на основе классов пользователей. Метод предоставляет атрибуты УЗ целевой системы для связи со свойствами УЗ в IDM посредством настройки шаблона учетных записей в профиле ресурса. Примечание: Подробнее о настройке шаблонов УЗ в профилях ресурсов см. статью "6.1.4. Настройка интеграции с целевыми системами" руководства по администрированию. | |
| GetUserProperties |
| Получение значений свойств УЗ |
| SetUserProperties |
| Установка значений свойств в существующей УЗ |
| SetUserPassword |
| Изменение пароля пользователя |
| ResetUserPassword |
| Сброс пароля пользователя (будет выполнена смена пароля на случайно сгенерированный) |
| LockUser |
| Блокировка учетной записи пользователя (выключение учетной записи пользователя) |
| UnlockUser |
| Разблокировка учетной записи пользователя (включение учетной записи пользователя) |
| GetAllRights | Получение списка прав пользователей в управляемой системе | |
| GetUserRights |
| Получение прав УЗ в управляемой системе |
| AddUserRights |
| Добавление права пользователю |
| DropUserRights |
| Изъятие прав у пользователя |
| GetRightIdByName |
| Получение идентификатора права по его имени |
| SearchRights |
| Поиск права по имени |







