Настройка авторизации через Open ID Connect

Начиная с версии системы 3.29 в настройках конфигурационного файла системы client.config появился раздел, в котором в виде массива можно указать перечень внешних сервисов аутентификации по протоколу OpenIdConnect.

Перечень провайдеров авторизации через OpenIdConnect задается в файле client.config в разделе <openIdConnect>:

 /* Массив */
 
...
<openIdConnect>
  <providers>
    <add caption="Имя кнопки входа с названием провайдера" clientId="advanta"
    metadataURL="https://ssotest.yourcompany.ru/.well-known/openid-configuration"
    authenticationType="OIDC1" enabled="true" scope="openid profile"
    clientSecret="Секретный код провайдера" responseType="code" claimType="user_id" />
    <add ... /> /* Описание второго провайдера */
  <providers/>
</openIdConnect>
...
Параметр Описание
captionОбязательный параметр
Название провайдера авторизации для отображения кнопки с этим именем
metadataURLОбязательный параметр
URL-адрес удаленного сервера с метаданными
authenticationTypeОбязательный параметр
Идентификатор провайдера авторизации, под этим именем данный провайдер OpenIdConnect будет отображаться в профиле пользователя, а также использоваться в API методах. Можно использовать любой удобный
clientIdОбязательный параметр
Идентификатор клиента (приложения), выбирается согласно правилам именования сервисов для аутентификации в OpenIdConnect
enabledОбязательный параметр
Включение/отключение провайдера, возможные значения: true и false
scopeУказываются запрашиваемые скоупы. Если параметр не задан, то используется только скоуп openid
Может быть несколько
clientSecretОбязательный параметр
Указывается секрет приложения
responseTypeНеобязательный параметр.
Тип ответа, по умолчанию id_token. Возможные значения:
code,
code id_token,
code id_token token,
code token,
id_token,
id_token token,
token
claimTypeТип утверждения, используемый для получения идентификатора пользователя на сервере авторизации. Будет использоваться для связки пользователя системы с пользователем OpenIdConnect
disableSignatureValidationНеобязательный параметр
Отключает валидацию токена. Если параметр не задан, то значение false и валидация включена
jwksFilePathОпциональный параметр
Файл, который содержит ключи валидации в формате JSON. Формат аналогичен странице jwks_uri. Если параметр не задан, то ключи берутся только с адреса jwks_uri
Можно использовать, если по какой-то причине провайдер OpenIdConnect не предоставляет ключи валидации
Пример использования: jwksFilePath = ″C:\inetpub\wwwroot\a2key\jwksFile.txt″
В client.config также необходимо добавить индикацию, что необходимо использовать интеграцию с OpenIdConnect. Для этого опционально в разделе <configSections> предусмотреть размещение секции ″<section name= ″openIdConnect″ type=″Config.OpenIdConnectConfigurationSection,smcorelib″/>″. При отсутствии данной секции, использование OpenIdConnect невозможно.

Настройка авторизации через Open ID Connect производится Администратором системы, в том числе привязка профилей пользователей ADVANTA к провайдерам авторизации.

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


Подробная информация о входе в систему через провайдер аутентификации на странице Авторизация по протоколу Open ID Connect.

При отключении провайдера (параметр enabled), кнопки авторизации не будет, но привязка пользователей в системе сохранится. Чтобы удалить связи с сервисами авторизации, необходимо:

После настройки в файле client.config сервисов авторизации, они станут отображаться в виде портлета в настройках пользователя, после портлета «Мои настройки». В данном портлете есть возможность указывать/удалять идентификатор сервиса авторизации (создавать/удалять привязку к сервису).

Также создать привязку пользователя к сервису авторизаций можно используя метод API LinkUserToOpenIdConnect .

В портлете указана информация:

  • название - название провайдера OpenIdConnect (соответствует authenticationType в конфигурационном файле);
  • заголовок - заголовок провайдера OpenIdConnect (соответствует caption в конфигурационном файле), название кнопки на странице входа;
  • учетная запись - учетная запись данного пользователя у провайдера OpenIdConnect;
  • столбец с кнопкой «Изменить» - нажимая на нее, открывается возможность редактирования соответствующей строки.


При нажатии кнопки «Изменить» в столбце «Учетная запись» появляется возможность ввести данные учетной записи данного пользователя у провайдера OpenIdConnect. Для сохранения данных необходимо нажать кнопку «Сохранить».


После того, как создана привязка и указана корректная информация учетной записи пользователя у провайдера OpenIdConnect, у пользователя появляется возможность входа в систему ADVANTA через этого провайдера.

В примере представлена настройка конфигурационного файла системы client.config для авторизации через провайдера Blitz IDP.

...
<configSections>
    ...
    <section name="openIdConnect" type="Config.OpenIdConnectConfigurationSection, smcorelib"/>
</configSections>
 
...
 
<openIdConnect>
    <providers>
      <add caption="Blitz IDP" clientId="Advanta"
      metadataURL="https://blitz.domain.ru/blitz/oauth/.well-known/openid-configuration"
      authenticationType="blitz" enabled="true" scope="openid" clientSecret="00000000"
      responseType="code" claimType="user_id" />
 
      <add caption="SSO" clientId="a2nta"
      metadataURL="https://blitz.domain2.ru/blitz/oauth/.well-known/11"
      authenticationType="blitz2" enabled="true" scope="profile" clientSecret="11111111"
      responseType="code" claimType="user_id" />
...
    </providers>
</openIdConnect>
 
...
Администратор может настроить авторизацию через любого провайдера OpenIdConnect.

При удачном/неудачном входе пользователем в систему через OpenIdConnect Администратор может видеть соответствующие события в Ленте событий.