Перейти к содержанию

Работа с LDAP

Возможности интеграции с LDAP

CodeScoring поддерживает аутентификацию и авторизацию пользователей по протоколу LDAP и маппинг атрибутов записей о пользователях в LDAP на атрибуты пользователей в системе.

Страница аутентификации CodeScoring

На странице аутентификации доступно меню с выбором провайдера аутентификации. Помимо провайдера по умолчанию (локальные учётные записи, internal directory), доступны для выбора активные интеграции с LDAP серверами.

выбор провайдера аутентификации аутентификации через провайдера по умолчанию

Маппинг атрибутов записей о пользователях LDAP на атрибуты пользователей CodeScoring

При аутентификации через LDAP происходит маппинг следующих данных из записи в директории на учётную запись в CodeScoring:

  • название УЗ (username);
  • имя;
  • фамилия;
  • электронная почта.

маппинг атрибутов записей на УЗ в CodeScoring

Маппинг групп LDAP на группы и роли CodeScoring

При аутентификации через LDAP CodeScoring может запрашивать данные LDAP-групп пользователя и производить их маппинг на свои группы и роли. Для активации этой возможности в настройках LDAP необходимо заполнить следующие поля:

  • Group search base
  • Group search filter for user
  • Group search filter for all groups
  • Group name field
  • Group member field

CodeScoring производит маппинг согласно правилам, управление которыми доступно в разделе Settings -> Group mapping.

Маппинг запускается только в двух случаях:

  • в момент входа пользователя в систему;
  • при нажатии кнопки Apply all rules в разделе Settings -> Group mapping.

Правила маппинга применяются следующим образом:

  • в процессе маппинга обновляется состав групп пользователя;
  • добавление, изменение и удаление правил маппинга не приведёт к обновлению групп пользователя. Для применения изменённых правил, необходимо инициировать процесс маппинга одним из двух способов, указанных выше;
  • группы пользователя, добавленные или отредактированные администратором в ручном режиме, не изменяются в процессе маппинга, то есть приоритет отдаётся ручным изменениям;
  • если при поиске LDAP-групп после успешной аутентификации в LDAP произошла ошибка, группы пользователей, применённые согласно правилам маппинга, будут удалены.

создание правил маппинга групп LDAP на роли и группы CodeScoring

просмотр правил маппинга групп LDAP на роли и группы CodeScoring

Просмотр существующих интеграций с LDAP

Просмотр существующих интеграций доступен в разделе Settings -> LDAP. В разделе отображаются таблица со списком настроенных интеграций LDAP, кнопка для создания новой интеграции (Setup new), окно поиска (Search).

просмотр списка интеграций с LDAP

Просмотр деталей о существующей интеграции с LDAP

Просмотр деталей открывается при нажатии на гиперссылку с названием интеграции либо при нажатии на кнопку View в разделе Actions.

При просмотре доступны следующие действия:

  • удаление интеграции (Delete);
  • редактирование интеграции (Edit);
  • проверка доступности (Refresh status).

Помимо основных полей настроек (описаны ниже), при просмотре деталей об интеграции с LDAP доступны данные о:

  • дате создания;
  • дате последнего обновления;
  • статусе доступности;
  • (опционально) причине недоступности.

просмотр деталей об интеграции с LDAP

Создание или редактирование интеграции с LDAP

Для того чтобы создать новую интеграцию с LDAP, необходимо на просмотре списка интеграций нажать на кнопку Setup new. Для того чтобы отредактировать существующую интеграцию, необходимо нажать на кнопку Edit на странице просмотра или списка интеграций. Формы создания и редактирования идентичны.

Описание полей формы

  • Name — название интеграции, отображается на странице аутентификации;
  • LDAP protocol — выбор между протоколами LDAP и LDAPS (LDAP поверх SSL);
  • LDAP hostname — доменное имя или IP адрес сервера LDAP;
  • LDAP port — порт LDAP сервера;
  • User search base — указание места поиска записей о пользователе
  • User search filter — фильтр для поиска записи о пользователе. Должен содержать шаблон %USERNAME%, при поиске он будет заменён на имя УЗ, для которой производится аутентификация через LDAP;
  • Username field — атрибут хранящий название УЗ пользователя в записи о нём;
  • Email field — атрибут хранящий email пользователя в записи о нём;
  • First name field — атрибут хранящий имя пользователя в записи о нём;
  • Last name field — атрибут хранящий фамилию пользователя в записи о нём;
  • Username format — выбор формата строки авторизации;
  • Domain — указание домена Active Directory (появляется при выборе соответствующего Username format);
  • Service user — логин пользователя с правами чтения каталогов на сервере LDAP;
  • Service user password — пароль пользователя с правами чтения каталогов на сервере LDAP;
  • Group search base — указание места поиска записей о группах;
  • Group search filter for user — фильтр для поиска записей о группах, к которым принадлежит пользователь. Должен содержать шаблон %USERNAME%, при поиске он будет заменён на имя УЗ, для которой производится аутентификация через LDAP;
  • Group search filter for all groups — фильтр для поиска записей о всех группах в LDAP;
  • Group name field — атрибут хранящий название группы в записи о ней;
  • Group member field — атрибут хранящий идентификаторы членов группы в записи о ней;
  • Use tls — использовать TLS;
  • Is active — используется ли интеграция с LDAP для аутентификации пользователей.

поля создания или редактирования

Доступные опции для username format

доступные опции для username format

Тестирование конфигурации интеграции с LDAP

Для удобства конфигурации пользователям доступны 2 формы для тестирования подключения:

  • тестирование подключения и аутентификации (test bind);
  • тестирование поиска (test search).

Для обоих тестов комбинируются данные из основной формы с данными формы тестирования. Данные из полей Service user и Service user password игнорируются.

Тестирование подключения и аутентификации

При нажатии на кнопку теста (Test it) в секции Test bind происходит подключение к LDAP серверу (операция bind). В случае успешного теста выводится уведомление об успехе операции, в случае провала теста — сообщение об ошибке.

успешный тест соединения проваленный тест соединения

Тестирование загрузки данных о пользователе

При нажатии на кнопку теста (Test it) в секции Test user search происходит подключение к LDAP серверу (операция bind) и поиск данных о пользователе (операция search) согласно данным в форме. В случае успешного теста выводится уведомление об успехе операции и результат поиска, в случае провала теста — сообщение об ошибке.

успешный тест загрузки данных о пользователе проваленный тест загрузки данных о пользователе

Тестирование загрузки данных о группах

При нажатии на кнопку теста (Test it) в секции Test load groups происходит подключение к LDAP серверу (операция bind) и поиск данных о группах (операция search) согласно данным в форме. В случае успешного теста выводится уведомление об успехе операции и результат поиска, в случае провала теста — сообщение об ошибке. успешный тест загрузки данных о группах проваленный тест загрузки данных о группах

Механизм аутентификации с помощью LDAP

иллюстрация механизма аутентификации с помощью LDAP

Замечания

  • Использование авторизации через LDAP не подразумевает полную синхронизацию директории с информацией о пользователях из Службы каталогов.
  • Редактирование название УЗ (username) и назначение пароля пользователю из LDAP невозможно.
  • Возможно наличие пользователей из различных провайдеров аутентификации с одинаковым названием УЗ (username).
  • Возможно назначение пользователю из LDAP любого уровня доступа (User, Auditor, Administrator).