| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
| product:settings:system:open_id [21.08.2024 12:22] – [Вход в систему] ekaterina.menkhuzina | product:settings:system:open_id [09.09.2024 07:03] (текущий) – [Пример настройки авторизации через Open ID Connect] ekaterina.menkhuzina |
|---|
| ====== Настройка авторизации через Open ID Connect ====== | ====== Настройка авторизации через Open ID Connect ====== |
| ===== Настройка конфигурационного файла ===== | ===== Настройка конфигурационного файла ===== |
| ''Начиная с версии системы 3.29'' в настройках конфигурационного файла системы ''client.config'' появился раздел, в котором в виде массива можно указать перечень внешних сервисов аутентификации по протоколу **OAuth 2.0** / **OpenIdConnect**. | ''Начиная с версии системы 3.29'' в настройках конфигурационного файла системы ''client.config'' появился раздел, в котором в виде массива можно указать перечень внешних сервисов аутентификации по протоколу **OpenIdConnect**. |
| |
| Перечень провайдеров авторизации через **OpenIdConnect** задается в файле ''client.config'' в разделе ''<openIdConnect>'': | Перечень провайдеров авторизации через **OpenIdConnect** задается в файле ''client.config'' в разделе ''<openIdConnect>'': |
| |
| ^ Параметр ^ Описание ^ | ^ Параметр ^ Описание ^ |
| |caption|Название провайдера авторизации на странице входа в систему| | |caption|Обязательный параметр \\ Название провайдера авторизации для отображения кнопки с этим именем| |
| |metadataURL|URL-адрес удаленного сервера с метаданными| | |metadataURL|Обязательный параметр \\ URL-адрес удаленного сервера с метаданными| |
| |authenticationType|Идентификатор провайдера авторизации| | |authenticationType|Обязательный параметр \\ Идентификатор провайдера авторизации, под этим именем данный провайдер OpenIdConnect будет отображаться в профиле пользователя, а также использоваться в API методах. Можно использовать любой удобный| |
| |clientId|Идентификатор клиента (приложения), выбирается согласно правилам именования сервисов для аутентификации в OpenIdConnect| | |clientId|Обязательный параметр \\ Идентификатор клиента (приложения), выбирается согласно правилам именования сервисов для аутентификации в OpenIdConnect| |
| |enabled|Включение/отключение провайдера, возможные значения: true и false| | |enabled|Обязательный параметр \\ Включение/отключение провайдера, возможные значения: true и false| |
| |scope|Запрашиваемые скоупы. Если параметр не задан, то используется только скоуп ''openid''| | |scope|Указываются запрашиваемые скоупы. Если параметр не задан, то используется только скоуп ''openid'' \\ Может быть несколько| |
| |clientSecret|Секрет приложения| | |clientSecret|Обязательный параметр \\ Указывается секрет приложения| |
| |responseType|Необязательный параметр. Тип ответа, по умолчанию ''id_token''. Возможные значения: ''code'',''code id_token'', ''code id_token token'', ''code token'', ''id_token'', ''id_token token'', ''token''| | |responseType|Необязательный параметр. \\ Тип ответа, по умолчанию ''id_token''. Возможные значения: \\ ''code'', \\ ''code id_token'', \\ ''code id_token token'', \\ ''code token'', \\ ''id_token'', \\ ''id_token token'', \\ ''token''| |
| |claimType|Тип утверждения, используемый для получения идентификатора пользователя на сервере авторизации| | |claimType|Тип утверждения, используемый для получения идентификатора пользователя на сервере авторизации. Будет использоваться для связки пользователя системы с пользователем OpenIdConnect| |
| |disableSignatureValidation|Необязательный параметр, отключает валидацию токена. Если параметр не задан, то значение false и валидация включена| | |disableSignatureValidation|Необязательный параметр \\ Отключает валидацию токена. Если параметр не задан, то значение false и валидация включена| |
| |jwks_uri|Стандарт под OpenIdConnect провайдера| | |jwksFilePath|Опциональный параметр \\ Файл, который содержит ключи валидации в формате JSON. Формат аналогичен странице ''jwks_uri''. Если параметр не задан, то ключи берутся только с адреса ''jwks_uri'' \\ Можно использовать, если по какой-то причине провайдер OpenIdConnect не предоставляет ключи валидации \\ Пример использования: ''jwksFilePath'' = ″C:\inetpub\wwwroot\a2key\jwksFile.txt″| |
| |jwksFilePath|Опциональный параметр. Файл, который содержит ключи валидации в формате JSON. Формат аналогичен странице ''jwks_uri''. Если параметр не задан, то ключи берутся только с адреса ''jwks_uri''. Можно использовать, если по какой-то причине провайдер OpenIdConnect не предоставляет ключи валидации| | |
| |
| <callout type="warning" icon="true">В ''client.config'' также необходимо добавить индикацию, что необходимо использовать интеграцию с **OpenIdConnect**. Для этого опционально в разделе ''<configSections>'' предусмотреть размещение секции ''"<section name="openIdConnect" type="Config.OpenIdConnectConfigurationSection,smcorelib"/>»''. При отсутствии данной секции, использование **OpenIdConnect** невозможно.</callout> | <callout type="warning" icon="true">В ''client.config'' также необходимо добавить индикацию, что необходимо использовать интеграцию с **OpenIdConnect**. Для этого опционально в разделе ''<configSections>'' предусмотреть размещение секции '' ″<section name= ″openIdConnect″'' ''type=″Config.OpenIdConnectConfigurationSection,smcorelib″/>″''. При отсутствии данной секции, использование **OpenIdConnect** невозможно.</callout> |
| |
| ===== Вход в систему ===== | ===== Вход в систему ===== |
| Настройка авторизации через **Open ID Connect** производится Администратором системы, в том числе привязка профилей пользователей ADVANTA к провайдерам авторизации. | Настройка авторизации через **Open ID Connect** производится Администратором системы, в том числе привязка профилей пользователей ADVANTA к провайдерам авторизации. |
| |
| После корректных настроек конфигурационного файла ''client.config'' и перезапуска системы, пользователю будет доступен вход в систему через нового провайдера аутентификации. На странице входа для каждого нового настроенного провайдера появится отдельная кнопка с названием из настроек конфигурационного файла. | После корректных настроек конфигурационного файла ''client.config'' и перезапуска системы, пользователю будет доступен вход в систему через новый провайдер аутентификации. На странице входа для каждого нового настроенного провайдера появится отдельная кнопка с названием из настроек конфигурационного файла. |
| |
| <image shape="thumbnail">{{ :product:auth:admin:sso_login_full1.png?direct&300 |}}</image> | <image shape="thumbnail">{{ :product:auth:admin:sso_login_full1.png?direct&300 |}}</image> |
| \\ | \\ |
| Подробная информация о входе в систему через провайдера аутентификации на странице [[product:auth:admin:sso_open_id|Авторизация по протоколу Open ID Connect]]. | Подробная информация о входе в систему через провайдер аутентификации на странице [[product:auth:admin:sso_open_id|Авторизация по протоколу Open ID Connect]]. |
| |
| <callout type="warning" icon="true">При отключении провайдера (параметр ''enabled''), кнопки авторизации не будет, но привязка пользователей в системе сохранится. Чтобы удалить связи с сервисами авторизации, необходимо: | <callout type="warning" icon="true">При отключении провайдера (параметр ''enabled''), кнопки авторизации не будет, но привязка пользователей в системе сохранится. Чтобы удалить связи с сервисами авторизации, необходимо: |
| * в [[product:api:list:deletelinkuserwith_oid|портлете]] с сервисами авторизации в настройках пользователя удалить привязку к сервису; | * в [[product:settings:system:open_id#настройка_связки_учетных_записей|портлете с сервисами авторизации]] в настройках пользователя удалить привязку к сервису; |
| * использовать метод API [[product:api:list:deletelinkuserwith_oid|DeleteLinksWithOpenIdConnect]]. Подробнее о методах API на странице [[product:api:list|Описание методов API]]. | * использовать метод API [[product:api:list:deletelinkuserwith_oid|DeleteLinksWithOpenIdConnect]]. Подробнее о методах API на странице [[product:api:list|Описание методов API]]. |
| </callout> | </callout> |
| </openIdConnect> | </openIdConnect> |
| |
| ... | |
| |
| <appSettings> | |
| <add key="AllowedExternalApplicationClientIds" value="1;2"/> | |
| ... | |
| </appSettings> | |
| | |
| ... | ... |
| </code> | </code> |