Identity Provider
Предварительные настройки
Перед добавлением интегрированного приложения:
- Настройте компонент Identity Provider.
- Убедитесь, что у вас есть зарегистрированная лицензия для Identity Provider.
- Установите и настройте провайдеры аутентификации.
- Интегрируйте бизнес-приложение с Identity Provider.
Добавить приложение
Чтобы добавить приложение, интегрированное с Identity Provider:
На боковой панели Management Console откройте раздел Приложения.
Нажмите Добавить приложение.
В поле Модуль интеграции выберите Identity Provider.
Выберите протокол аутентификации:
- SAML
- OIDC
Введите название приложения. Название должно быть уникальным.
Нажмите Создать.
В разделе Приложения перейдите на вкладку IDP и добавьте уникальный идентификатор, соответствующий выбранному протоколу:
- SAML — уникальный идентификатор поставщика услуг Entity ID.
- OIDC — уникальный идентификатор клиентского приложения Client ID.
Настройте параметры в соответствии с выбранным протоколом:
Параметры OIDC-приложения
Для интеграции Identity Provider с приложениями по протоколам OpenID Connect и OAuth 2.0 настройте следующие параметры.
| Параметр | Описание |
|---|---|
| Client ID* | Уникальный идентификатор, который используется для определения клиентского приложения при обмене токенов, а также для аутентификации и авторизации пользователя. Когда клиентское приложение запрашивает доступ к защищенным ресурсам, оно предоставляет свой идентификатор клиента вместе с другими учетными данными для получения токена доступа. |
| Секрет клиента (Client Secret) | Строка символов, которая известна только клиентскому приложению и серверу Identity Provider. Секрет клиента используется в процессе обмена токенов для подтверждения аутентификации клиентского приложения. При запросе токена доступа клиент должен предоставить идентификатор клиента и секрет клиента для аутентификации. |
| URI перенаправления* | Допустимые URL-адреса, на которые перенаправляется пользователь после успешного входа в клиентское приложение. Адреса должны начинаться с https.Пример: https://app.example.com/signin-oidc.Можно указать несколько значений: через запятую или каждое значение с новой строки. Кавычки и запятые удаляются при сохранении, поэтому список можно вставить в том виде, в котором он скопирован из конфигурационного файла. |
| URI перенаправления после выхода | Допустимые URL-адреса, на которые перенаправляется пользователь после выхода из клиентского приложения. Пример: https://app.example.com/signout-callback-oidc.Можно указать несколько значений: через запятую или каждое значение с новой строки. Кавычки и запятые удаляются при сохранении. |
| Разрешения* | Значения, которые будут разрешены приложению. После успешной аутентификации и предоставления разрешений приложение может использовать полученные данные. Данные, указанные в разрешениях, могут быть переданы в ответе по протоколу OIDC: ept — Endpoints, gt — GrantTypes, rst — ResponseTypes, scp — Scopes.Отредактируйте список разрешений или вставьте готовый список в поле. Поддерживаемые форматы записи: через запятую в одной строке, через пробел в одной строке, каждое значение с новой строки. |
| Разрешенные адреса отправки форм (CSP)* | Адреса, на которые с этой страницы разрешено отправлять данные форм (директива CSP form-action).Примеры: https://app.example.com/saml/acs — только этот адрес;https://app.example.com — любой путь на этом хосте;*.example.com — любые поддомены example.com;https: — любой HTTPS-адрес. |
| Требования | Дополнительные требования к клиентским запросам, которые должны быть выполнены для успешной аутентификации и авторизации пользователя. Поддерживается одно требование — ft:pkce. |
| Формат имени в запросе | Формат, в котором Identity Provider ожидает получить имя пользователя. Выберите значение из выпадающего списка. |
| Формат имени в ответе | Формат, в котором имя пользователя передается OIDC-клиенту. Выберите значение из выпадающего списка. |
| Имя атрибута | Произвольное имя атрибута, под которым значение будет передано внешнему приложению. Определяет, с каким ключом будет отображаться передаваемый атрибут в результате расшифровки значения IdToken или запроса к Userinfo.Если имя атрибута не соответствует одному из значений email, name, family_name, given_name, middle_name, то передаваемый атрибут не будет отображаться в ответе на запрос к Userinfo, но будет отображаться в расшифровке IdToken. |
| Значение из атрибута | Определяет, какая информация о пользователе будет передана OIDC-клиенту. Свойства учетной записи пользователя: Id, ObjectGUID, Name, CanonicalName, PrincipalName, SamCompatibleName, sAMAccountName, DistinguishedName, Sid, FirstName, MiddleName, LastName, Email, Phone.Группы пользователя в Active Directory: MemberOf, MemberOf (только CN), GroupRawIds. Подробнее — в разделе Передача групп пользователя. |
Поля, отмеченные звездочкой (*), обязательны для заполнения.
Имена атрибутов sub, http://schemas.microsoft.com/ws/2008/06/identity/claims/userdata и http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name зарезервированы системой. Не используйте их в поле Имя атрибута.
Изменения параметров применяются по истечении таймаута обновления кеша — по умолчанию 600 секунд.
Разрешения
По умолчанию поле Разрешения заполнено следующими значениями. Это минимальный список разрешений. При необходимости добавьте или удалите значения.
ept:authorization
ept:logout
ept:token
gt:authorization_code
gt:refresh_token
rst:code
scp:openid
scp:offline_access
scp:email
scp:profile
При интеграции по протоколу OpenID Connect аутентификация может быть выполнена по одному из сценариев:
- Authorization Code Flow (с получением кода авторизации)
- Implicit Flow (с получением токенов напрямую)
Чтобы выбрать сценарий, задайте соответствующий тип гранта (grant type) в параметре gt.
| Разрешение | Описание |
|---|---|
ept:authorization | Инициирование авторизации. |
ept:logout | Завершение сессии, связанной с указанным токеном. |
ept:token | Получение токена. |
gt:authorization_code | Тип гранта для сценария Authorization Code Flow. Используется для получения идентификационного токена (ID token) и токена доступа (access token) с помощью кода авторизации. |
gt:implicit | Тип гранта для сценария Implicit Flow. Используется для получения токена доступа напрямую в URI перенаправления. |
gt:refresh_token | Тип гранта для обновления токенов. Используется для получения новых токенов по токену обновления (refresh token) без повторной аутентификации пользователя. |
rst:code | Тип ответа (response type) для сценария Authorization Code Flow. Возвращает код авторизации. |
rst:id_token | Тип ответа для сценария Implicit Flow. Возвращает идентификационный токен в формате JWT с информацией о пользователе и параметрах аутентификации. |
rst:id_token token | Тип ответа для сценария Implicit Flow. Возвращает идентификационный токен и токен доступа. |
scp:openid | Запрос аутентификации пользователя. Требуется для всех запросов по протоколу OpenID Connect. |
scp:offline_access | Запрос токена обновления. |
scp:email | Доступ к адресу электронной почты пользователя. |
scp:profile | Доступ к профилю пользователя. Включает утверждения (claims): name, given_name, family_name, middle_name. |
Параметры SAML-приложения
Для интеграции Identity Provider с приложениями по протоколу SAML настройте следующие параметры.
| Параметр | Описание |
|---|---|
| Entity ID* | Уникальный идентификатор поставщика услуг (SP). |
| URL-адрес Single Logout Service* | URL-адрес сервиса Single Logout, который получает сообщения SAML о выходе из клиентского приложения. |
| Сертификат поставщика услуг (SP)* | Сертификат открытого ключа поставщика услуг (SP) в формате PEM. |
| Разрешенные адреса отправки форм (CSP)* | Адреса, на которые с этой страницы разрешено отправлять данные форм (директива CSP form-action).Примеры: https://app.example.com/saml/acs — только этот адрес;https://app.example.com — любой путь на этом хосте;*.example.com — любые поддомены example.com;https: — любой HTTPS-адрес. |
| URL-адрес ACS по умолчанию | URL-адрес сервиса Assertion Consumer Service (ACS), который используется, если поставщик услуг (SP) не содержит адрес ACS в запросе. |
| Разрешенные URL-адреса ACS | Разрешенные URL-адреса сервиса Assertion Consumer Service (ACS) для этого поставщика услуг (SP). |
| Принимать только подписанный запрос | Определяет, должны ли быть подписаны запросы SAML, полученные от клиентского приложения. Значение по умолчанию: включено (рекомендуется). |
| Подписывать SAML-ответ | Определяет, должны ли быть подписаны ответы SAML, отправляемые клиентскому приложению. Значение по умолчанию: включено (рекомендуется). |
| Подписывать SAML-утверждение | Определяет, должны ли быть подписаны утверждения SAML. Значение по умолчанию: включено (рекомендуется). |
| Шифровать SAML-утверждение | Определяет, должны ли шифроваться утверждения SAML. Значение по умолчанию: включено (рекомендуется). |
| Формат имени в запросе | Формат, в котором Identity Provider ожидает получить имя пользователя. Выберите значение из выпадающего списка. |
| Формат имени в ответе | Формат, в котором имя пользователя передается SAML-клиенту. Выберите значение из выпадающего списка. |
| Имя атрибута | Произвольное имя атрибута, под которым значение будет передано внешнему приложению. |
| Значение из атрибута | Определяет, какая информация о пользователе будет передана SAML-клиенту. Свойства учетной записи пользователя: Id, ObjectGUID, Name, CanonicalName, PrincipalName, SamCompatibleName, sAMAccountName, DistinguishedName, Sid, FirstName, MiddleName, LastName, Email, Phone.Группы пользователя в Active Directory: MemberOf, MemberOf (только CN), GroupRawIds. Подробнее — в разделе Передача групп пользователя. |
Поля, отмеченные звездочкой (*), обязательны для заполнения.
Изменения параметров применяются по истечении таймаута обновления кеша — по умолчанию 600 секунд.
Передача групп пользователя
Поле Значение из атрибута позволяет передать в приложение не только данные о самом пользователе, но и имена или идентификаторы его групп в Active Directory. Значения различаются форматом и составом передаваемых групп.
| Значение | Описание |
|---|---|
MemberOf | Уникальные имена групп (DN) из атрибута memberOf пользователя.Пример: CN=VPN Users,OU=Groups,DC=example,DC=com.Выберите это значение, если приложение ожидает полное уникальное имя группы. |
MemberOf (только CN) | Короткие имена групп. Из уникального имени (DN) каждой группы извлекается общее имя (CN). Пример: VPN Users.Выберите это значение, если приложение сопоставляет права по короткому имени группы. |
GroupRawIds | Идентификаторы безопасности (SID) всех групп пользователя из TokenGroups.Пример: S-1-5-21-2573307035-1489391253-2448266514-512.Выберите это значение, если приложение сопоставляет права по SID или если требуется полный состав членства. |
Значения MemberOf и MemberOf (только CN) передают только те группы, в которые пользователь добавлен напрямую. Если группа пользователя входит в другую группу, эта другая группа в приложение не попадет. Не попадет и основная группа пользователя, потому что она не хранится в атрибуте memberOf. По этой причине список групп на вкладке Член групп в оснастке Active Directory может не совпадать с тем, что получит приложение.
Значение GroupRawIds передает все группы пользователя без исключений.
Уникальное имя содержит путь к группе в каталоге и изменяется при переносе группы в другое подразделение. Идентификатор безопасности не изменяется ни при переносе, ни при переименовании группы.
Для значения MemberOf (только CN) передаются все успешно извлеченные значения CN. Если для одной из групп извлечь CN не удалось, эта группа пропускается, а остальные значения передаются в обычном порядке. Ошибка одной группы не препятствует формированию ответа SAML или OIDC.
Общее имя (CN) уникально только в пределах своего контейнера. Если в каталоге есть одноименные группы в разных подразделениях, после извлечения CN их значения совпадут и приложение не сможет различить эти группы.
Добавить в политику
Чтобы настройки приложения были применены для пользователей, добавьте приложение в политику. Сделать это можно только при наличии зарегистрированной лицензии для данного модуля.
Чтобы добавить приложение в политику:
- Перейдите в раздел Политики.
- Выберите политику из списка.
- В карточке политики перейдите на вкладку Приложения.
- Нажмите Добавить приложение.
- Из выпадающего списка выберите приложение.
- Нажмите Добавить.
Приложение отобразится в списке добавленных приложений.
Настроить аутентификатор
В списке доступных методов аутентификации отображаются провайдеры, установленные на Core Server и поддерживаемые приложениями Identity Provider.
Предварительная настройка
Прежде чем настроить аутентификацию, установите поддерживаемые провайдеры.
Чтобы настроить аутентификацию:
- На боковой панели Management Console откройте раздел Политики.
- Выберите политику.
- Перейдите на вкладку Приложения.
- Выберите приложение, интегрированное с Identity Provider.
- В списке Доступные методы аутентификации выберите провайдер и в колонке Статус нажмите соответствующий переключатель.
Поддерживаются следующие методы аутентификации:
- Email OTP
- Hardware HOTP
- Hardware TOTP
- Indeed Key
- Multi-factor authentication
- Passcode
- Secured TOTP
- SMS OTP
- Software TOTP
- Storage SMS OTP
- Telegram
- Windows Password