Регистрация расширений авторизации

Docsvision Web-клиент поддерживает авторизацию с помощью сторонних расширений. Необходимые ресурсы для работы расширений авторизации в Web-клиенте поставляются с модулем Платформа.

Поддерживается вход при помощи следующих учётных записей:
  • Microsoft Azure

  • ЕСИА (Госуслуги) по почте, номеру телефона, номеру СНИЛС [1]

Настроить расширения можно при помощи изменения записей реестра в ветке HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication.

Регистрация расширения Azure

Значение параметра Name в ветке расширения задаёт отображаемое имя сервиса аутентификации в справочнике сотрудников.
  1. Расширение должно быть добавлено в ветку регистрации расширений аутентификации: HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication\Extensions.

    Расширению соответствует ключ в данной ветке, например так:

    HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication\Extensions\AzureAD
    В ветке отдельного расширения должен быть задан набор значений/свойств расширения:
    • ID — строка с идентификатором расширения в виде Guid, например: {D4A9BCC3-E897-47AE-BBA5-8F5085D231E7}.

    • Name — строка с названием расширения, например: AzureAD.

    • Settings — строка настроек расширения, для AzureAD:

      Для удобочитаемости строка настроек разделена переносами и отступами:
      <?xml version="1.0" encoding="utf-16"?>
      <AzureADAuthenticationSettings
      	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      	<WellKnownConfigurationUrl>https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration</WellKnownConfigurationUrl> (1)
      	<ClientId>94e14c7f-dbe9-42f4-8895-ac95c3dc8910</ClientId> (2)
      	<GroupMembershipCheckerSettings>
      		<GroupMappings>
      			<AzureADGroupMapping> (3)
      				<GroupId>66d9fbb8-d79e-4c8c-b8be-23635476915b</GroupId> (4)
      				<Role>Administrator</Role> (5)
      			</AzureADGroupMapping>
      			<AzureADGroupMapping>
      				<GroupId>42dbef9a-9f90-4325-8de4-d0ff824f5896</GroupId>
      				<Role>User</Role>
      			</AzureADGroupMapping>
      		</GroupMappings>
      	</GroupMembershipCheckerSettings>
      	<Tenants>
      		<guid>94e14c7f-dbe9-42f4-8895-ac95c3dc8910</guid>
      	</Tenants>
      	<ApplicationId>70a3b7b0-2283-4a67-8a93-e6dedd693e58</ApplicationId> (6)
      </AzureADAuthenticationSettings>
      1 URL публичной конфигурации OpenID.
      2 Идентификатор тенанта AzureAD в котором производится привязка пользователей
      3 Задает сопоставление групп Azure AD системным группам безопасности Docsvision. Допускается на одну группу Azure AD создавать несколько групп Docsvision.
      4 Идентификатор группы Azure AD.
      5 Имя группы Docsvision (без префикса "Docsvision").
      6 Идентификатор приложения Docsvision, зарегистрированного в тенанте AzureAD, для которого включено и настроено использование OpenID Connect.
    • TypeName — строка с именем типа, реализующего расширение, например:

      DocsVision.Platform.Authentication.AzureAD.AzureADRootAuthenticationExtension, DocsVision.Platform.Authentication.AzureAD, Version=5.5.0.0, Culture=neutral, PublicKeyToken=7148AFE997F90519
  2. Ветка привязки расширений аутентификации к конкретным БД (тенантам):

    HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication\Tenants

    В этой ветке могут быть подчинённые ветки, названные именами БД Docsvision, например:

    HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication\Tenants\Current55
    В подчинённой ветке БД должны быть следующие значения:
    • Extensions — строка, содержащая идентификаторы расширений аутентификации для конкретной БД в виде списка Guid через ; (точка с запятой):

      {69B463E0-8976-457D-B828-B89B910BCB90};{D4A9BCC3-E897-47AE-BBA5-8F5085D231E7}
    • Name — строка, содержащая псевдоним БД, например: Current55.

Регистрация расширения ЕСИА

Использование расширения ЕСИА доступно с версии доступно, начиная с версии модуля Web-клиент 5.5.6478.56 и версии модуля Платформа 5.5.7821.0.

Значение параметра Name в ветке расширения задаёт отображаемое имя сервиса аутентификации в справочнике сотрудников Web-клиента на вкладке "Безопасность".

Редактирование значения для параметра "Name"
Рисунок 1. Редактирование значения для параметра "Name"
Требования для расширения ЕСИА:
  • Компания должна быть зарегистрирована в ЕСИА.

  • Необходимо получить сертификат для работы с ЕСИА. Можно использовать неперсонифицированный сертификат.

  • Сертификат с открытым ключом необходимо добавить на портале ЕСИА.

  • Необходимо скачать сертификат площадки, которая подписывает токены http://esia.gosuslugi.ru/public/esia.zip (архив содержит сертификаты тестовой и рабочей площадок).

  • Требуется установить на сервере Docsvision сертификат площадки, подписывающей токены. Сертификат TESIA GOST 2012.cer можно скачать в архиве и установить на сервере.

  • Установить КриптоПро .NET Сервер.

    Во избежание ошибок КриптоПро .NET Сервер необходимо устанавливать только после приобретения лицензии.
  • Добавить ветку реестра для аутентификации через ЕСИА.

    Пример файла настроек для ЕСИА доступен по ссылке.

    Расширение аутентификации для ЕСИА настраивается по аналогии с Azure, за исключением параметра Settings — строки настроек расширения. Строка настроек для ЕСИА описана ниже.

Описание файла настроек для ветки ЕСИА
<?xml version=\"1.0\" encoding=\"utf-16\"?>
<ESIAAuthenticationSettings xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
<WellKnownConfigurationUrl>{
\"token_endpoint\":\"https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v3/te\", (1)
\"token_endpoint_auth_methods_supported\":[\"client_secret_post\",\"private_key_jwt\",\"client_secret_basic\"],
\"jwks_uri\":\"\",
\"response_modes_supported\":[],
\"subject_types_supported\":[],\"id_token_signing_alg_values_supported\":[],
\"response_types_supported\":[\"code\",\"token\"],
\"scopes_supported\":[\"openid email mobile snils fullname id_doc\"], (2)
\"issuer\":\"http://esia-portal1.test.gosuslugi.ru/\", (3)
\"microsoft_multi_refresh_token\":true,
\"authorization_endpoint\":\"https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac\", (4)
\"device_authorization_endpoint\":\"\",
\"http_logout_supported\":true,
\"frontchannel_logout_supported\":true,
\"end_session_endpoint\":\"https://esia-portal1.test.gosuslugi.ru/idp/ext/Logout\", (5)
\"claims_supported\":[],
\"check_session_iframe\":\"\",
\"userinfo_endpoint\":\"https://esia-portal1.test.gosuslugi.ru/rs/prns/\", (6)
\"kerberos_endpoint\":\"\",
\"tenant_region_scope\":null,
\"cloud_instance_name\":\"\",
\"cloud_graph_host_name\":\"\",
\"msgraph_host\":\"\",
\"rbac_url\":\"\",
\"certificate_hash\":\"B6864B005BE2E583733DAC88CC00AF1D98EE286B4E98CD7ECA03930AB303B76B\", (7)
\"certificate_thumbprint\":\"39D17F90BC7EA873566A1CCF1E36C23DCFFA5025\", (8)
\"certificate_password\":\"1\", (9)
\"ext_certificate_thumbprint\":\"9c8393817199de4364ef7569f1af8c40b120f0f7\", (10)
}
</WellKnownConfigurationUrl>
<ClientId>DOCSVISION</ClientId> (11)
<Tenants></Tenants>
<AccountNameClaim>snils</AccountNameClaim> (12)
<ApplicationId></ApplicationId>
</ESIAAuthenticationSettings>
1 URL для получения маркера доступа.
2 Область доступа, т.е. запрашиваемые права.
3 Идентификатор стороны, генерирующей токен.
4 URL для получения авторизационного кода.
5 URL для выхода из учётной записи из ЕСИА.
6 URL для получения данных пользователя.
7 Хэш сертификата получаемый через утилиту cpverify.
8 Отпечаток сертификата, используемого для формирования подписи.
9 Пароль сертификата. Необходимо указывать, если установлен сертификат подписи с паролем. Если параметр не указан, в доступе к ЕСИА со страницы логина Web-клиента не будет.
10 Отпечаток сертификата площадки.
11 Мнемоника системы получаемая при регистрации.
12 Параметр, который используется как ключ для авторизации. Возможные значения: snils, phone, email.

В зависимости от того, что указано в реестре: СНИЛС, телефон или почта, в справочнике сотрудников Web-клиента, на вкладке "Безопасность" для способа аутентификации ЕСИА отображается соответствующее поле ввода.

Телефон или почта для входа в учётную запись ЕСИА могут не совпадать с указанными в карточке сотрудника. Данные для входа на сайт "Госуслуги" указываются в секции Дополнительные учетные записи  Учетная запись.

После изменения параметра в конфиге, необходимо перезагрузить IIS.

Ошибки при авторизации ЕСИА

При попытке авторизации в системе с использованием расширения ЕСИА может возникать следующая ошибка в журнале модуля:

[Error][DocsVision.Platform.WebClient.Diagnostics.Trace.TraceError] System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
  ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot

Для исправления ошибки на сервере Docsvision необходимо установить корневой сертификат удостоверяющего центра, выдавшего сертификат портала ЕСИА. Корневой сертификат должен быть в формате PEM с расширением файла .crt. Установить сертификат можно поместив его в хранилище "Доверенные корневые центры сертификации" на уровне "Локальный компьютер" на компьютер с сервером Docsvision.

При возникновении трудностей с получением корневого сертификата, обратитесь в техническую поддержку ЕСИА.


1. Доступно, начиная с версии модуля Web-клиент 5.5.6478.56 и версии модуля Платформа 5.5.7821.0