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

Работа с LDAP

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

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

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

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

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

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

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

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

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

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

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

  • База для поиска групп.
  • Фильтр поиска для всех групп
  • Поле с названием группы
  • Поле с группами пользователя (если значение поля Метод поиска по группе равно "Пользовательская запись")
  • Фильтр поиска групп пользователя (если значение поля Метод поиска по группе равно "Поиск по группе")

CodeScoring производит маппинг согласно правилам, управление которыми доступно в разделе Настройки -> Группы LDAP.

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

  • в момент входа пользователя в систему;
  • при нажатии кнопки Применить все правила в разделе Настройки -> Группы LDAP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Название — название интеграции, отображается на странице аутентификации;
  • LDAP протокол — выбор между протоколами LDAP и LDAPS (LDAP поверх SSL);
  • Имя хоста LDAP — доменное имя или IP адрес сервера LDAP;
  • Порт LDAP — порт LDAP сервера;
  • База для поиска пользователя — указание места поиска записей о пользователе;
  • Фильтр поиска пользователя — фильтр для поиска записи о пользователе. Должен содержать шаблон %USERNAME%, при поиске он будет заменён на имя УЗ, для которой производится аутентификация через LDAP;
  • Поле с именем учетной записи — атрибут хранящий название УЗ пользователя в записи о нём;
  • Поле с email — атрибут хранящий email пользователя в записи о нём;
  • Поле с именем — атрибут хранящий имя пользователя в записи о нём;
  • Поле с фамилией — атрибут хранящий фамилию пользователя в записи о нём;
  • Формат имени учетной записи — выбор формата строки авторизации;
  • Домен — указание домена Active Directory (появляется при выборе соответствующего Username format);
  • Сервисный пользователь — логин пользователя с правами чтения каталогов на сервере LDAP;
  • Пароль — пароль пользователя с правами чтения каталогов на сервере LDAP;
  • Поле с названием группы — атрибут хранящий название группы в записи о ней;
  • База для поиска групп — указание места поиска записей о группах;
  • Фильтр поиска групп пользователя — фильтр для поиска записей о группах, к которым принадлежит пользователь. Должен содержать шаблон %USERNAME%, при поиске он будет заменён на имя УЗ, для которой производится аутентификация через LDAP;
  • Фильтр поиска для всех групп — фильтр для поиска записей о всех группах в LDAP;
  • Поле с группами пользователя — атрибут хранящий идентификаторы членов группы в записи о ней;
  • Использовать TLS;
  • Активно — используется ли интеграция с LDAP для аутентификации пользователей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечания

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