Модуль Авторизация через ЕСИА (единая система идентификации и аутентификации) предоставляет пользователям возможность зарегистрироваться и авторизоваться через Госуслуги.
Интеграция BILLmanager с Госуслугами (ЕСИА) состоит из трёх этапов:
- Установка средств шифрования CSP CryptoPro на сервер с платформой.
- Установка ключа и сертификатов.
- Настройка интеграции в BILLmanager.
Установка CSP CryptoPro
Для установки CSP CryptoPro на операционные системы Unix следуйте инструкциям поставщика программного обеспечения. Процесс установки включает следующие этапы:
- Покупка и установка лицензии на CSP CryptoPro.
- Установка компонентов LSB (Linux Standart Base). LSB — набор пакетов, обеспечивающий интерфейс для работы продукта в различных Unix-системах.
- Загрузка дистрибутива. Текущая сертифицированная версия доступна на сайте производителя.
- Распаковка и установка архива. Для установки используется скрипт install.sh.
- Установка закрытых ключей и сертификатов.
Установка ключа и сертификатов
Этап 1. Получение ключей и сертификатов
- Подключите свою компанию по инструкции. Вы получите:
- ключ и сертификаты компании для работы с Госуслугами;
- логин и пароль пользователя компании.
- Создайте Мнемонику ИС:
- Перейдите на сайт, в зависимости от выбора окружения Госуслуг:
- Авторизуйтесь с данными пользователя из шага 1.
- Укажите для поля "Алгоритм формирования электронной подписи" значение "GOST3410_2012_256".
- Скачайте сертификаты для валидации ответов от ЕСИА: http://esia.gosuslugi.ru/public/esia.zip.
В результате вы получите следующие компоненты для настройки интеграции:
- сертификат компании в формате "yyyyy.cer";
- ключи компании — директория с именем в формате "keys/хххххххх.000/";
- публичный сертификат Госуслуг для валидации ответов в формате "zzzzz.cer";
- мнемоника ИС.
Этап 2. Установка сертификатов
- Загрузите на сервер с BILLmanager файлы, полученные на этапе 1:
- сертификат компании в формате "yyyyy.cer";
- ключи компании — директория с именем в формате "keys/хххххххх.000/";
- публичный сертификат Госуслуг для валидации ответов в формате "zzzzz.cer". Выбирается в зависимости от:
- окружения Госуслуг — тестовое или продуктовое;
- "Алгоритма формирования электронной подписи", выбранного на Этапе 1 п. 2.
-
Поместите скопированные файлы в каталог для хранения ключей каждого пользователя системы. Для учётной записи суперпользователя (root) по умолчанию используется каталог /var/opt/cprocsp/keys/root/.
cp -r keys/хххххххх.000/ /var/opt/cprocsp/keys/root/
-
Получите имена установленных ключей:
/opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn
Команда выводит имена установленных ключей в виде "\\.\HDIMAGE\хххххххх-0000-0000-0000-000000000000".
-
Снимите пароль с сертификата, иначе авторизация через ЕСИА не будет работать:
/opt/cprocsp/bin/amd64/csptest -passwd -change '' -cont '\\.\HDIMAGE\хххххххх-0000-0000-0000-000000000000' -passwd '1234567890'
Комментарии к команде -
Установите публичный сертификат Госуслуг:
/opt/cprocsp/bin/amd64/certmgr -inst -file zzzzz.cer
-
Установите сертификат компании:
/opt/cprocsp/bin/amd64/certmgr -inst -file yyyyy.cer -cont '\\.\HDIMAGE\хххххххх-0000-0000-0000-000000000000'
Настройка на стороне BILLmanager
Чтобы установить модуль, перейдите в раздел Интеграция → Модули → Авторизация через ЕСИА → кнопка Установить.
Настройка интеграции:
- Перейдите в раздел Интеграция → Модули → Авторизация через ЕСИА → кнопка .
- Заполните форму:
- Госуслуги (ЕСИА) API URL — укажите HTTPS-адрес REST API системы Госуслуги (ЕСИА):
- https://esia-portal1.test.gosuslugi.ru/ — адрес тестовой среды;
- https://esia.gosuslugi.ru/ — адрес продуктовой среды.
- Мнемоника ИС — укажите ваш буквенно-цифровой код информационной системы.
- Сертификат — выберите сертификат, который будет использоваться для подписи запросов для Госуслуги (ЕСИА).
- Инвертировать подпись — активируйте опцию, чтобы зеркально побайтово развернуть полученную подпись.
- Проверять подпись сообщений от Госуслуги (ЕСИА) — активируйте опцию, чтобы проверять подпись сообщений от Госуслуги (ЕСИА).
- Сертификат Госуслуги (ЕСИА) — выберите сертификат, который будет использоваться для проверки подписи сообщений от Госуслуги (ЕСИА).
- Нажмите Ок.
- Госуслуги (ЕСИА) API URL — укажите HTTPS-адрес REST API системы Госуслуги (ЕСИА):
Дополнительно
Логирование
Лог взаимодействия BILLmanager с модулем записывается в файл /usr/local/mgr5/var/omesia.log.
Диагностика неполадок
Проблема
Авторизация не работает, а при максимальном уровне логирования в логе /usr/local/mgr5/var/omesia.log следующее:
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 HTTP/1.1 403 Forbidden
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Cache-Control: no-cache
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Pragma: no-cache
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Connection: close
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Content-Type: text/html; charset=UTF-8
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Content-Length: 2906
Nov 8 17:26:14 [11451:1] rpc DEBUG mgrrpc_unix.cpp:57 Closing connection 0
Nov 8 17:26:14 [11451:1] omesia DEBUG omesia.cpp:191 <!DOCTYPE html>
<html>
<head>
<title>Ошибка</title>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache, must-revalidate"/>
<meta http-equiv="cache-control" content="no-store, post-check=0, pre-check=0"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE"/>
<meta name="description" content=""/>
<meta name="robots" content="none"/>
<link rel="shortcut icon" href="https://gu-st.ru/static_errors/imperva/img/favicon.ico"/>
<link type="text/css" rel="stylesheet" href="https://gu-st.ru/static_errors/imperva/css/error.css"/>
</head>
<body class="error-page">
<div class="baseheader-wrap simple">
<div class="page-wrap baseheader">
<a href="/" class="logo" title="">
ГОСУСЛУГИ
</a>
<div class="slogan">
Доступ к сервисам электронного правительства
</div>
</div>
</div>
Решение
Это означает, что доступ к сервису Госуслуг с IP-адреса сервера, на котором расположен BILLmanager, заблокирован. Доступ к Госуслугам возможен только с российских IP-адресов.
Пример настройки проксирования с помощью nginx. Подробнее см. в документации Nginx.
- На сервере с прокси:
-
Добавьте в файл конфигурации nginx.conf:
server { # TEST: https://esia-portal1.test.gosuslugi.ru # PROD: https://esia.gosuslugi.ru location = /gosuslugi/aas/oauth2/v2/ac { return 301 https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac$is_args$args; } location ^~ /gosuslugi/ { rewrite /gosuslugi(.*) $1 break; proxy_pass https://esia-portal1.test.gosuslugi.ru; } }
- Перезапустите nginx.
-
- В веб-интерфейсе BILLmanager:
- Перейдите в раздел Интеграция → Модули → Авторизация через ЕСИА → кнопка .
- В настройках интеграции в поле Госуслуги (ЕСИА) API URL укажите адрес в формате:
- https://{PROXY_HOST}/gosuslugi — тестовое окружение;
- https://{PROXY_HOST}/gosuslugi/aas/oauth2/v2/ac — продуктовое окружение.
- Нажмите Ок.