Добавление домена аутентификации OIDC

OpenID Connect (OIDC) - это механизм, позволяющий приложению связаться со службой идентификации (Identity provider, IdP), получить данные о пользователе и вернуть их обратно в приложение. Таким образом, OIDC обеспечивает аутентификацию администраторов и пользователей без необходимости ввода логина и пароля.

Служба идентификации IdP (например, keycloak) должна быть предварительно настроена в инфраструктуре организации для возможности использования OIDC как домена аутентификации.

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

  • по идентификатору и секрету. В этом случае используются параметры «Client ID» и «Client Secret», заданные в службе идентификации IdP;
  • по подписанному JWT-токену. В этом случае используются параметры «Client ID» и «Signed Jwt», заданные в службе идентификации IdP. Закрытый ключ, использующийся для подписи JWT-токена, должен быть загружен на узлы Агрегатора («Агрегатор администратора», «Агрегатор пользователя»).

Для добавления домена аутентификации следует перейти «Системные параметры - Домены аутентификации», а затем нажать экранную кнопку [Создать] и выбрать из выпадающего списка «OIDC». Далее заполнить данные, перечисленные в столбце «Параметр» следующей таблицы. Для сохранения параметров конфигурации нужно использовать экранную кнопку [Создать].

Данные для добавления аутентификации через OIDC

ПараметрОписание
«Название»

Параметр обязателен для заполнения.

Текстовое наименование домена аутентификации

«Комментарий»Информационное сообщение, используемое для описания назначения источника сведений о субъектах и их полномочиях
«Приоритет»

Параметр обязателен для заполнения.

Приоритет использования домена аутентификации при проверке субъекта и его полномочий

«Метка»

Параметр обязателен для заполнения.

Информационное поле, используемое для идентификации объекта во внутренней структуре данных Termidesk.

Начиная с Termidesk версии 5.1 поле может состоять из букв латинского алфавита, цифр, знаков «-» (дефис) и «_» (подчеркивание)

«Субъекты»

Параметр обязателен для заполнения.

Выбор субъектов, для которых будет доступен домен аутентификации. 

Возможные значения:

  • «Все» - домен аутентификации будет доступен как для пользователей, так и для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен на порталах «Агрегатор администратора», «Агрегатор пользователя», «Агрегатор универсальный», и при подключении из компонента «Клиент»;
  • «Администраторы и персонал» - домен аутентификации будет доступен только для администраторов и персонала. Такое значение выбирается, если домен аутентификации должен быть доступен только на «Агрегаторе администратора» или «Агрегаторе универсальном»;
  • «Пользователи» - домен аутентификации будет доступен только для пользователей. Такое значение выбирается, если домен аутентификации должен быть доступен на «Агрегаторе пользователя», «Агрегаторе универсальном» или при подключении пользователя из компонента «Клиент»;
  • «Система» - домен аутентификации не будет доступен ни для пользователей, ни для администраторов и персонала
«Порталы»

Выбор порталов «Агрегатора», для которых будет доступен домен аутентификации. Если портал не выбран, то домен аутентификации не будет доступен для него.

В списке доступных значений отображаются все доступные узлы порталов с их полным доменным именем.

Администратору нужно выбирать узел в соответствии со значением, указанным в параметре «Субъекты».

Примеры:

  • если в параметре «Субъекты» указано «Пользователи», то в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору универсальному»;
  • если в параметре «Субъекты» указано «Администраторы и персонал», в параметре «Порталы» должен быть выбран узел, соответствующий либо «Агрегатору администратора», либо «Агрегатору универсальному»;
  • если в параметре «Субъекты» указано «Все», то в параметре «Порталы» может быть выбран узел, соответствующий либо «Агрегатору пользователя», либо «Агрегатору администратора», либо «Агрегатору универсальному». Значение выбирается исходя из потребностей в разделении доменов аутентификации для того или иного субъекта.

При изменении списка узлов:

  • если узел удален, то он автоматически удалится из списка доступных значений для этого параметра. Уже назначенное значение удалится из свойств домена аутентификации;
  • если узел добавлен, то он автоматически добавится в список доступных значений для этого параметра, но не будет автоматически выбран для использования.

В случае, если в параметре «Порталы» был указан единственный узел, который затем был удален, то этот домен аутентификации не будет доступен ни в каком из порталов.

Для выбора всех порталов используется значение «Все»

«Client ID»

Уникальный идентификатор приложения, полученный от службы идентификации IdP.

Пример: «openid-test-cl»

«Client secret»

Ключ приложения, полученный от службы идентификации IdP.

Параметр должен быть пустым, если задан параметр «Приватный Ключ»

«Приватный ключ»

Путь к закрытому ключу, использующемуся для подписи JWT-токена.

Закрытый ключ, используемый в службе идентификации IdP, должен быть добавлен на сервер Termidesk. Для этого:

  • скопировать его в каталог /etc/opt/termidesk-vdi/;
  • назначить владельцем файла пользователя termidesk:
sudo chown termidesk:termidesk /etc/opt/termidesk-vdi/<путь_к_файлу>.key
BASH

Пример: «/etc/opt/termidesk-vdi/client.key»

«Authorization endpoint»

Параметр обязателен для заполнения.

URL-адрес авторизации службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/auth»

«Logout endpoint»

Параметр обязателен для заполнения.

URL-адрес получения информации о завершении сессии пользователя от службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/logout»

«Token endpoint»

Параметр обязателен для заполнения.

URL-адрес получения токена службы идентификации IdP. 

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/token»

«Userinfo endpoint»

Параметр обязателен для заполнения.

URL-адрес получения информации о пользователе от службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/userinfo»

«JWKS URI»

URL-адрес получения сертификатов службы идентификации IdP.

Пример: «http://192.0.2.2:8080/auth/realms/domain.local/protocol/openid-connect/certs»

«Scope»

Параметр обязателен для заполнения.

Набор областей действия, поддерживаемый в службе идентификации IdP.

Области действия определяются спецификацией протокола OAuth 2.0.

Неполный список возможных значений (указываются через пробел):

  • «openid» (обязательное значение для OIDC) - запуск аутентификации с использованием OIDC;
  • «profile» - доступ к профилю пользователя;
  • «email» - доступ к адресу электронной почты пользователя;
  • «offline_access» - обновление токена доступа без необходимости повторной аутентификации;
  • «groups» - доступ к списку ролей пользователя.

Значение по умолчанию: «openid email profile groups». 

Если нужно указать другой набор значений, следует убедиться, что он поддерживается используемой службой идентификации IdP

«Атрибут имени пользователя»

Параметр обязателен для заполнения.

Имя атрибута, в котором хранится имя пользователя (логин) в службе идентификации IdP.

Значение по умолчанию: «email»

«Проверка SSL»

Проверка использования SSL

«Динамическая проверка членства пользователя в группах»

Управление динамической проверкой вхождения пользователя в группу службы каталогов.

Параметр определяет, как будет происходить проверка нахождения пользователя в группе службы каталогов при аутентификации в Termidesk и получении ресурсов.

Особенности функционирования:

  • если пользователю уже назначено РМ, то проверяется вхождение пользователя в группу, указанную в свойствах фонда РМ. Проверка выполняется каждый раз при доступе к ресурсу. При этом если у пользователя отозваны права на доступ, то он:
    • либо не увидит скрытый ресурс в зависимости от настройки «Скрывать недоступные ресурсы»;
    • либо увидит, но не сможет получить доступ к нему;
    • либо получит доступ к назначенному РМ, если права доступа были назначены на другую группу, в которую входит пользователь и которая указана в свойствах фонда РМ;
    • либо получит доступ к назначенному РМ, если оно назначено на учетную запись пользователя напрямую.

Возможные значения:

  • «Режим совместимости 6.0» (по умолчанию) - при аутентификации пользователя происходит запрос к службе каталогов для проверки его вхождения в группы. После этого группы пользователя актуализируются в БД.  При попытке получить ресурс из фонда доступ определяется на основе информации из БД (БД не обновляется);
  • «Периодическое обновление» - если пользователя нет в БД и он впервые аутентифицируется, то происходит запрос к службе каталогов для получения актуальной информации о нем. Если пользователь есть в БД, то информация берется из нее. Актуализация пользователей и групп для всех доменов аутентификации с этим значением выполняется периодической фоновой задачей раз в 24 часа;
  • «Динамическая проверка» - при аутентификации пользователя или получении ресурсов происходит запрос к службе каталогов для получения актуальной информации о нем. При обращении к службе каталогов информация о полученных группах кешируется во внутренней памяти. Время кеширования определяется системным параметром «Таймаут кеша хранения групп домена, с»