Расширенная аутентификация
Docsvision Web-клиент поддерживает авторизацию с помощью сторонних расширений. Необходимые ресурсы для работы расширений авторизации в Web-клиенте поставляются с модулем Платформа и настраиваются в конфигурационном файле модуля или в Консоли управления Docsvision.
-
Microsoft Azure
-
Active Directory Federation Services (ADFS)
-
ЕСИА (Госуслуги) по почте, номеру телефона, номеру СНИЛС
| Для настройки расширений аутентификации необходимо установить расширение модуля Платформа для консоли управления, см. "Установка расширений модулей для Консоли управления Docsvision". Если расширение не установлено, на странице будет отображаться сообщение об отсутствии компонентов редактирования, оформленное красным текстом. |
Настройка расширений аутентификации
Настроить расширения[1] можно на странице .
-
Откройте Консоль управления Docsvision на странице "Расширенная аутентификация" нажмите кнопку Добавить расширение.
При переходе на страницу настроек расширения аутентификации выводится сообщение с кнопками Ок и Отмена. При нажатии Ок несохранённые изменения на странице будут применены, при нажатии Отмена — отменены.
-
На странице настроек расширения представлены следующие поля:
-
Идентификатор расширения — строка с идентификатором расширения в виде Guid. Идентификатор определяется при разработке расширения. Параметр
Idв конфигурационном файле расширения. -
Название расширения — задаёт отображаемое имя сервиса аутентификации. Отображается в справочнике сотрудников.
Рисунок 2. Регистрация нового расширения аутентификации -
Настройки — строка настроек расширения в неотформатированном виде. Подробнее см. ниже, например ЕСИА.
-
Тип — строка с именем типа, реализующего расширение. Параметр
TypeNameв конфигурационном файле расширения.
-
Настройка расширений для тенантов
Таблица, предназначенная для включения/отключения расширений, доступных в базах данных. Таблица имеет только одну колонку "Доступные расширения" и флаг включения/отключения расширения напротив каждой строки.
В таблице отображается список расширений, которые были зарегистрированы в системе и настроены. Над таблицей отображается название базы данных. Для базы, которая назначена по умолчанию, добавляется тэг "БД по умолчанию".
Строка настроек Azure
В примере ниже строка настроек приведена в отформатированном виде для удобства чтения. Данный фрагмент кода не предназначен для копирования.
<?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/.well-known/openid-configuration</WellKnownConfigurationUrl> (1)
<ClientId>c6c5c5e8-c320-4221-bbdf-205f8ff9610e</ClientId> (2)
<GroupMembershipCheckerSettings>
<GroupMappings>
<AzureADGroupMapping> (3)
<GroupId>94e14c7f-dbe9-42f4-8895-ac95c3dc8910</GroupId> (4)
<Role>User</Role> (5)
</AzureADGroupMapping>
</GroupMappings>
</GroupMembershipCheckerSettings>
<Tenants>
<guid>94e14c7f-dbe9-42f4-8895-ac95c3dc8910</guid>
</Tenants>
<ApplicationId>c6c5c5e8-c320-4221-bbdf-205f8ff9610e</ApplicationId> (6)
</AzureADAuthenticationSettings>",
| 1 | WellKnownConfigurationUrl — URL публичной конфигурации OpenID. |
| 2 | ClientId — идентификатор тенанта AzureAD в котором производится привязка пользователей. |
| 3 | AzureADGroupMapping — задает сопоставление групп Azure AD системным группам безопасности Docsvision. Допускается на одну группу Azure AD создавать несколько групп Docsvision. |
| 4 | GroupId — идентификатор группы Azure AD. |
| 5 | Role — имя группы без префикса "Docsvision". |
| 6 | ApplicationId — идентификатор приложения Docsvision, зарегистрированного в тенанте AzureAD, для которого включено и настроено использование OpenID Connect. |
Регистрация расширения ЕСИА
-
Компания должна быть зарегистрирована в ЕСИА.
-
Необходимо получить сертификат для работы с ЕСИА. Можно использовать неперсонифицированный сертификат.
-
Сертификат с открытым ключом необходимо добавить на портале ЕСИА.
-
Необходимо скачать сертификат площадки, которая подписывает токены esia.zip (архив содержит сертификаты тестовой и рабочей площадок).
-
Необходимо выполнить обязательные настройки на сервере Docsvision:
-
Установить КриптоПро CSP 5.0 и выше.
-
Установить сертификат для работы с ЕСИА. Для этого можно воспользоваться утилитой certmgr, входящей в состав КриптоПро CSP 5.0, например так:
sudo /opt/cprocsp/bin/amd64/certmgr -install -file путь-к-файлу-сертификата -pfx -pin пин-код (1)1 По умолчанию служба Сервера Docsvision работает от имени привилегированного пользователя, поэтому сертификат необходимо устанавливать с повышением привилегий. -
Установить сертификат площадки из архива esia.zip. Сертификат тестовой площадки —
TESIA GOST 2012.cer/ Например, так:sudo /opt/cprocsp/bin/amd64/certmgr -install -file путь-к-файлу-TESIA-GOST-2012.cer (1)1 С повышением привилегий пользователя. -
Добавить настройки для аутентификации через ЕСИА на страницу Консоли управления Docsvision.
Расширение аутентификации для ЕСИА настраивается по аналогии с 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\":\"Password\", (9)
\"ext_certificate_thumbprint\":\"9c8393817199de4364ef7569f1af8c40b120f0f7\", (10)
}
</WellKnownConfigurationUrl>
<ClientId>DOCSVISION</ClientId> (11)
<Tenants></Tenants>
<AccountNameClaim>snils</AccountNameClaim> (12)
<ApplicationId></ApplicationId>
</ESIAAuthenticationSettings>
| 1 | token_endpoint — URL для получения маркера доступа. |
| 2 | scopes_supported — область доступа, т.е. запрашиваемые права. |
| 3 | issuer — идентификатор стороны, генерирующей токен. |
| 4 | authorization_endpoint — URL для получения авторизационного кода. |
| 5 | end_session_endpoint — URL для выхода из учётной записи из ЕСИА. |
| 6 | userinfo_endpoint — URL для получения данных пользователя. |
| 7 | certificate_hash — хэш сертификата получаемый через утилиту cpverify. |
| 8 | certificate_thumbprint — отпечаток сертификата, используемого для формирования подписи. |
| 9 | certificate_password — пароль сертификата для работы с ЕСИА. Пароль обычно устанавливается при импорте файла .pfx в Linux. Если пароль на сертификат не установлен, этот параметр можно удалить. |
| 10 | ext_certificate_thumbprint — отпечаток сертификата площадки. Можно посмотреть при выполнении sudo /opt/cprocsp/bin/amd64/certmgr -list. |
| 11 | ClientId — мнемоника системы получаемая при регистрации. |
| 12 | AccountNameClaim — параметр, который используется как ключ для авторизации. Возможные значения: snils, phone, email. |
Ошибки при авторизации ЕСИА
При попытке авторизации в системе с использованием расширения ЕСИА может возникать следующая ошибка в журнале модуля:
[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. Установить сертификат можно поместив его в папку /usr/local/share/ca-certificates/, после чего необходимо будет выполнить команду:
sudo update-ca-certificates -v -f.
При возникновении трудностей с получением корневого сертификата, обратитесь в техническую поддержку ЕСИА.
Строка настроек для ADFS
В примере ниже строка настроек приведена в отформатированном виде для удобства чтения. Данный фрагмент кода не предназначен для копирования.
<?xml version="1.0" encoding="utf-16"?>
<ADFSAuthenticationSettings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<WellKnownConfigurationUrl>https://domain.company.com/adfs/.well-known/openid-configuration</WellKnownConfigurationUrl> (1)
<ClientId>8d4612ab-c258-4f0b-ba02-d6aeab59debd</ClientId> (2)
</ADFSAuthenticationSettings>
| 1 | WellKnownConfigurationUrl — URL публичной конфигурации ADFS. |
| 2 | ClientId — идентификатор тенанта ADFS в котором производится привязка пользователей. |
Строка настроек Keycloak
| Для работы расширения авторизации Keycloak требуется опция лицензии Docsvision Коннектор к Keycloak. |
В примере ниже строка настроек приведена в отформатированном виде для удобства чтения. Данный фрагмент кода не предназначен для копирования.
<?xml version=\"1.0\" encoding=\"utf-16\"?>
<KeycloakAuthenticationSettings
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
<WellKnownConfigurationUrl>https://vdv-keycloak.digdes.com/realms/testDv/.well-known/openid-configuration</WellKnownConfigurationUrl> (1)
<ClientId>test</ClientId> (2)
<Secret>JwIcDLOLEATB2R69bZac9BMHpzC8Px0P</Secret> (3)
<AccountNameClaim>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</AccountNameClaim> (4)
<UniqueIdClaim>DocsvisionID</UniqueIdClaim> (5)
<ScopesSupported>openid email</ScopesSupported> (6)
</KeycloakAuthenticationSettings>
| 1 | WellKnownConfigurationUrl — URL публичной конфигурации OpenID. |
| 2 | ClientId — идентификатор тенанта Keycloak в котором производится привязка пользователей. |
| 3 | Secret — секрет приложения, настроенного для аутентификации пользователей. |
| 4 | AccountNameClaim — имя пользователя в токене (поле в токене, используемое в качестве логина). |
| 5 | UniqueIdClaim — уникальный идентификатор пользователя в токене. |
| 6 | ScopesSupported — при загрузке расширения список областей доступа берется из конфигурации KeyCloak, указанной в параметре WellKnownConfigurationUrl. Если есть необходимость переопределить список областей доступа, передаваемых в запросе, можно добавить секцию ScopesSupported и в неё через пробел указать необходимые области для работы. |
"Authentication".