Регистрация расширений авторизации
Docsvision Web-клиент поддерживает авторизацию с помощью сторонних расширений. Необходимые ресурсы для работы расширений авторизации в Web-клиенте поставляются с модулем Платформа.
-
Microsoft Azure
-
ЕСИА (Госуслуги) по почте, номеру телефона, номеру СНИЛС [1]
Настроить расширения можно при помощи изменения записей реестра в ветке HKEY_LOCAL_MACHINE\SOFTWARE\DocsVision\Platform\5.5\Server\Authentication
.
Регистрация расширения Azure
Значение параметра Name в ветке расширения задаёт отображаемое имя сервиса аутентификации в справочнике сотрудников.
|
-
Расширение должно быть добавлено в ветку регистрации расширений аутентификации:
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
-
-
Ветка привязки расширений аутентификации к конкретным БД (тенантам):
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.
Значение параметра Рисунок 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.
При возникновении трудностей с получением корневого сертификата, обратитесь в техническую поддержку ЕСИА.