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

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

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

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

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

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

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

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

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

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

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

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

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

Порядок отображения доменов зависит от приоритета домена и его наименования:

  • чем ниже приоритет, тем выше домен в списке;
  • при наличии доменов с одинаковым приоритетом действует сортировка по алфавиту
«Метка»

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

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

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

«Субъекты»

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

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

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

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

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

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

В списке доступных значений отображаются все узлы со страницы «Инфраструктура - Порталы» с их полным доменным именем.

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

Примеры:

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

При изменении списка узлов на странице «Инфраструктура - Порталы»:

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

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

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

«Client ID»

Параметр доступен, если на этапе установки Termidesk был выбран способ хранения паролей «config».

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

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

«Client secret»

Параметр доступен, если на этапе установки Termidesk был выбран способ хранения паролей «config».

Ключ приложения, полученный от службы идентификации 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»

«Путь к секретам»

Параметр доступен, если на этапе установки Termidesk был выбран способ хранения паролей «hvac».

Путь к аутентификационным данным учетной записи, расположенным в хранилище. Формат задания пути приведен в подразделе Хранение чувствительной информации с выбранным способом хранения «hvac».

Требуется использовать статические данные (префикс hvac-kv).

Пример: «hvac-kv://secret#termidesk-admin/oidc/»

«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 часа;
  • «Динамическая проверка» - при аутентификации пользователя или получении ресурсов происходит запрос к службе каталогов для получения актуальной информации о нем. При обращении к службе каталогов информация о полученных группах кешируется во внутренней памяти. Время кеширования определяется системным параметром «Таймаут кеша хранения групп домена, с»