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

Добавление домена аутентификации 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

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

«Authorization endpoint»

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

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

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

«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»

«Logout URL»

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

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

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

«Scope»

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

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

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

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

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

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

«Имя пользователя»

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

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

«Проверка SSL»

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