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

Интеграции LDAP

Платформа Радар использует Keycloak в качестве системы идентификации и управления доступом.

Платформа позволяет создать интеграцию Keycloak с сервером LDAP, а затем использовать LDAP в качестве источника пользовательских данных.

Данная интеграция позволяет подключиться к службе каталогов, в которой хранятся данные аутентификации, такие как имена пользователей, пароли, домашние каталоги пользователей, используемые для хранения деловых и других данных, что позволит импортировать пользователей в платформу. Вы можете синхронизировать учетные записи сотрудников компании между Платформой Радар и различными корпоративными сервисами (таких как электронная почта, сайт, VoIP и другое). Благодаря этому одна учётная запись может быть использована для авторизации во всех корпоративных сервисах.

Платформа Радар поддерживает интеграцию со следующими поставщиками услуг:

  • Active Directory;
  • Red Hat Directory Server;
  • Tivoli;
  • Novel eDirectory.

Также поддерживается интеграция и с другими поставщиками услуг, но потребуется дополнительная настройка.

Работа с интеграциями включает в себя следующие процессы:

  1. Добавление интеграции.
  2. Редактирование интеграции.
  3. Удаление интеграции.

Для работы с интеграциями LDAP перейдите АдминистрированиеПользователи и роли → вкладка LDAP (см. рисунок 1).

Рисунок 1 – Раздел "Пользователи и роли". Вкладка "LDAP"

На вкладке отображается следующая информация:

  • Название – название интеграции;
  • Провайдер – поставщик услуг;
  • Статус – состояние интеграции: активна, не активна.

Добавление интеграции LDAP

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

Шаг 1. Основные настройки

Пример основных настроек приведен на рисунке 2.

Рисунок 2 – Создание интеграции LDAP. Основные настройки

В блоке Основные настройки заполните следующие поля:

  • Название – укажите наименование интеграции;
  • Приоритет – укажите приоритет службы при поиске пользователя. Вперед идут более низкие значения;
  • Режим редактирования – выберите режим редактирования из LDAP. Доступны следующие значения:

    • "Только чтение" – доступ только на чтение из LDAP;
    • "Записываемый" – данные будут обратно синхронизированы в LDAP по заявке;
    • "Несинхронизированный" – данные пользователя будут импортированы, но не синхронизированы обратно в LDAP.
  • Провайдер – выберите поставщика услуг LDAP;

  • Атрибут Username в LDAP – укажите наименование LDAP атрибута, которое отображается как имя пользователя в "Keycloak":

    • для провайдеров Red Hat Directory Server, Tivoli, Novel eDirectory и множества других серверов LDAP это может быть uid.
    • для Active Directory это может быть sAMAccountName или cn.

    Атрибут должен быть заполнен для всех LDAP записей пользователей, которые вы хотите импортировать из LDAP в Keycloak.

  • Атрибут RDN в LDAP – укажите наименование атрибутов LDAP, которое используется как RDN (верхний атрибут) обычного пользователя DN. Обычно оно такое же, как атрибут имени пользователя LDAP, однако он не обязателен. Для примера, для Active directory обычно используется cn как атрибут RDN, в то время как атрибут имени пользователя может быть sAMAccountName;

  • Атрибут UUID в LDAP – укажите наименование LDAP атрибута, которое используется как уникальный идентификатор объектов (UUID) в LDAP:

    • для провайдеров "Red Hat Directory Server", Tivoli, Novel eDirectory и множества других серверов LDAP это может быть entryUUID;
    • для Active directory он должен быть objectGUID.

    Если ваш LDAP сервер не поддерживает понятие UUID, вы можете использовать любой другой атрибут, который должен быть уникальным среди пользователей в дереве LDAP. Например uid или entryDN;

  • Классы объектов пользователя – укажите все значения из LDAP objectClass атрибутов для пользователей в LDAP, разделенные запятой. Например: inetOrgPerson, organizationalPerson. Вновь созданные пользователи Keycloak будут записаны в LDAP вместе с этими классами объектов, а существующие записи пользователей LDAP будут найдены только если они содержат все эти классы объектов;

  • URL подключения – укажите URL соединения с вашим сервером LDAP. Для проверки доступа сервера LDAP нажмите кнопку Тест подключения;
  • Пользователи DN – укажите полный DN из дерева LDAP где присутствуют ваши пользователи. Этот DN является родителем пользователей LDAP. Например, он может быть ou=users,dc=example,dc=com при условии, что ваш обычный пользователь будет иметь DN похожий на uid=john,ou=users,dc=example,dc=com;
  • Пользовательский Фильтр LDAP пользователей – укажите дополнительный фильтр LDAP для фильтрации искомых пользователей. Оставьте поле пустым, если не нуждаетесь в дополнительном фильтре.
  • Поиск области – выберите поиск области. Доступные варианты:

    • "Один уровень" – выполняется поиск пользователей только в DN, определенных как пользовательские DN;
    • "Поддерево" – выполняется поиск полностью в их поддеревьях. Смотрите документацию LDAP для подробных деталей.
  • Тип аутентификации – выберите способ аутентификации. Доступны следующие варианты:

    • "Анонимная аутентификация";
    • "Аутентификация по сопоставленным логину и паролю". Если выбран данный способ, то укажите дополнительную информацию в следующих полях:

      • Сопоставление DN – укажите DN администратора LDAP, которые будут использованы Keycloak для доступа на сервер LDAP;
      • Сопоставление учетных данных – укажите пароль администратора LDAP;
      • Для проверки указанных данных нажмите кнопку Тест аутентификации.
  • Статус – выберите состояние интеграции установив переключатель в соответствующее положение:

    • "Включена";
    • "Выключена". Если интеграция выключена, она не будет использована при запросах, а импортированные пользователи будут деактивированы и переведены в состояние "только чтение", пока интеграция не будет включена снова.
  • Импортировать пользователей – при необходимости включите импортирование пользователей. Если включено, пользователи LDAP будут импортированы в базу данных Keycloak и синхронизированы через сконфигурированные политики синхронизации;

  • Синхронизировать регистрации – при необходимости включите создание пользователей в хранилище LDAP после процедуры регистрации. Поле Приоритет определяет какой из поставщиков будет выбран для синхронизации нового пользователя.

Шаг 2. Расширенные настройки

Пример расширенных настроек приведен на рисунке 3.

Рисунок 3 – Создание интеграции LDAP. Расширенные настройки

В блоке Расширенные настройки заполните следующие поля:

  • Использование доверенных сертификатов SPI – настройка определяет, будет ли соединение с LDAP использовать хранилище доверенных сертификатов SPI вместе с сертификатами, сконфигурированными в keycloak-server.json. Выберите способ использования доверенных сертификатов SPI:

    • "Всегда" – использовать всегда;
    • "Никогда"– не использовать.
    • "Только для LDAP" – использовать вместе с вашими соединениями к LDAP серверам. Если keycloak-server.json не сконфигурирован, то по умолчанию Java будет использовать cacerts или сертификат, определенный в javax.net.ssl.trustStore.
  • Таймаут соединения – укажите таймаут соединения с LDAP в миллисекундах;

  • Таймаут чтения – укажите таймаут чтения из LDAP в миллисекундах. Этот таймаут применяется к операциям чтения из LDAP;
  • Постраничный вывод – при необходимости включите постраничный вывод;
  • Расширенная операция LDAPv3 изменения пароля – при необходимости включите использование расширенной операции LDAPv3 изменения пароля (RFC-3062). Для расширенной операции изменения пароля обычно требуется, чтобы у LDAP пользователя уже был выставлен пароль на сервере. Когда эта опция используется вместе с "Синхронизацией зарегистрированных пользователей" желательно также добавить "Фиксированный LDAP маппер атрибутов", содержащий случайно сгенерированное начальное значение для пароля.

    Для проверки поддержки настройки нажмите кнопку Проверить поддержку расширения;

  • Подтверждение почтового адреса – при необходимости включите подтверждение почтового адреса. Если включено, то E-mail, предоставленный этим поставщиком, будет требовать подтверждение, даже если оно не включено для области;

  • Включить StartTLS – при необходимости включите шифрование соединения к LDAP с помощью STARTTLS, которое позволяет создать зашифрованное соединение (TLS или SSL) прямо поверх обычного TCP-соединения. Шифрование отключит пул соединений (подробнее о настройке пула соединений см. Шаг 3. Пул соединений.).
  • Политика проверки пароля – определяет должен ли Keycloak, перед тем как обновлять пароль, валидировать его согласно политике паролей области.

Шаг 3. Пул соединений

Пример настроек пула соединений приведен на рисунке 4.

Рисунок 4 – Создание интеграции LDAP. Пул соединений

В блоке Пул соединений заполните следующие поля:

  • Пулинг аутентификационных соединений – укажите через пробел список аутентификационных типов соединений, которые могут быть помещены в пул. Валидные значения: "none", "simple" и "DIGEST-MD5";
  • Начальный размер пула соединений – укажите число начально создаваемых соединений к каждому из узлов;
  • Предпочтительный размер пула соединений – укажите предпочтительное число одновременных соединений к узлу;
  • Таймаут пула соединений – укажите количество миллисекунд, в течение которых неактивное соединение может пребывать в пуле перед тем как оно будет закрыто и удалено из него;
  • Уровень отладки пула соединений – укажите уровень отладки. Доступные значения:

    • "fine" – журналирует создание и удаление соединений;
    • "all" – полный вывод всей отладочной информации.
  • Максимальный размер пула соединений – укажите максимальное число одновременных соединений к узлу;

  • Протокол пула соединений – укажите через пробел список протоколов соединений, которые можно поместить в пул. Допустимые значения: "plain" и "ssl";
  • Пул соединений – при необходимости включите использование службой Keycloak пула соединений для доступа к LDAP серверу.

Шаг 4. Интеграция с Kerberos

Пример настроек интеграции с Kerberos приведен на рисунке 5.

Рисунок 5 – Создание интеграции LDAP. Интеграция с Kerberos

В блоке Интеграция с Kerberos заполните следующие поля:

  • Разрешить аутентификацию Kerberos – при необходимости включите аутентификацию HTTP пользователей с токенами SPNEGO/Kerberos. Данные об аутентифицированных пользователях будут предусмотрены из этого LDAP сервера;
  • Использовать Kerberos для аутентификации по паролю – при необходимости включите использование модуля входа Kerberos, для аутентификации по логину/паролю с сервера Kerberos, вместо аутентификации на сервере LDAP с Directory Service API;
  • Отладчик – при необходимости включите отладочные журналы в стандартный вывод для Krb5LoginModule.

Шаг 5. Синхронизация настроек

Пример настроек синхронизации приведен на рисунке 6.

Рисунок 6 – Создание интеграции LDAP. Синхронизировать настройки

В блоке Синхронизация настроек заполните следующие поля:

  • Размер пачки – укажите количество пользователей LDAP, которые будут импортированы в Keycloak за одну транзакцию;
  • Периодическая полная синхронизация – при необходимости включите полную периодическую синхронизацию пользователей LDAP в Keycloak. Если функция включена, то в поле Период полной синхронизации укажите период для полной синхронизации в секундах;
  • Периодическая синхронизация изменений пользователей – при необходимости включите периодическую синхронизацию новых и измененных пользователей LDAP в Keycloak. Если функция включена, то в поле Период синхронизации измененных пользователей укажите период для синхронизации измененных или вновь созданных пользователей LDAP в секундах.

Шаг 6. Настройки кэширования

Пример настроек кэширования приведен на рисунке 7.

Рисунок 7 – Создание интеграции LDAP. Настройки кэширования

В блоке Синхронизация настроек выберите политику кэширования и заполните соответствующие поля. Доступны следующие политики кэширования:

  • По умолчанию. Выставить настройки по умолчанию для глобального пользовательского кэша;
  • Вытеснять каждый день. Время каждого дня, после которого пользовательский кэш инвалидируется. При выборе данной политики в полях Час исключения и Минута исключения укажите час и минуту по истечению которых запись станет недействительна;
  • Вытеснять каждую неделю. Время и день недели после которого пользовательский кэш инвалидируется. При выборе данной политики в полях День исключения, Час исключения и Минута исключения укажите соответствующее время;
  • По максимальному времени жизни. При выборе данной политики в соответствующем поле укажите время в миллисекундах, в течение которого будет существовать жизненный цикл записи в кэше;
  • Без кэширования.

Шаг 7. Завершение добавления интеграции

После выполнения всех шагов нажмите кнопку Сохранить.

Редактирование интеграции LDAP

  1. В строке нужной интеграции нажмите кнопку .
  2. Измените основную информацию об интеграции.
  3. Нажмите кнопку Редактировать интеграцию LDAP для сохранения изменений.

Удаление интеграции LDAP

  1. В строке нужной интеграции нажмите кнопку .
  2. Подтвердите удаление в открывшемся окне.