Skip to content

Latest commit

 

History

History
62 lines (37 loc) · 4.52 KB

README.md

File metadata and controls

62 lines (37 loc) · 4.52 KB

Приложение демонстрирует получение авторизационного кода из системы ЕСИА (Госуслуги).

Актуальная версия "Методических рекомендаций по использованию Единой системы идентификации и аутентификации": 2.76.

Подготовка

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

ПО

Используется java-криптопровайдер КриптоПро JCP версии 2.0.41789-R4 и Java 8.

КриптоПро JCP должен быть установлен в JDK (JRE), в которой запускается данное приложение.

Для Windows и Java 8 установка КриптоПро JCP может быть выполнена при помощи setup.exe в скаченном дистрибутиве.

Контейнер

Контейнер КриптоПро читается из стандартного расположения в файловой системе.

Для Windows это C:\Users\%username%\AppData\Local\Crypto Pro\, куда необходимо поместить директорию с контейнером.

Убедитесь, что Вы видите контейнер с ключом и сертификатом в GUI КриптоПро JCP во вкладке "Хранилища ключей и сертификатов" в папке HDImageStore.

Запуск

Для работы приложения требуются следующие переменные среды:

Переменная Описание
ESIA_CLIENT_ID идентификатор системы-клиента (мнемоника системы в ЕСИА)
ESIA_KEYSTORE_ALIAS алиас ключа и сертификата в контейнере
ESIA_PRIVATE_KEY_PASSWORD пароль приватного ключа в контейнере

Для запуска выполните mvn spring-boot:run или используйте любой другой способ запуска Spring Boot приложения.
Помните, что для запуска необходима JDK (JRE) с установленным КриптоПро JCP.

После запуска откройте в браузере http://localhost:8080.
Нажмите login with esia. Пройдите авторизацию (тестовой) записью и подтвердите запрошенные разрешения.
Вы будете перенаправлены обратно на страницу приложения.

При успехе Вы увидите полученный авторизационный код и его содержимое (если это jwt).

При неудаче - сообщение об ошибке и описание ошибки.

Troubleshooting

  • ESIA-007005: The client is not authorized to request an access token using this method.

Вводящая в заблуждение формулировка сообщения об ошибке. Вероятнее всего некорректно сформирован параметр client_secret.
Возможно, Вы используете незарегистрированный в ЕСИА сертификат или неподдерживаемый алгоритм формирования подписи.

  • ESIA-007014: The request doesn`t contain the mandatory parameter [timestamp].

Такое сообщение об ошибке может быть получено, даже если параметр timestamp в запросе присутствует.
Вероятнее всего, некорректный формат параметра timestamp. Обратите внимание на url-encoding символов.
Пример корректного параметра timestamp: timestamp=2021.02.12+00%3A15%3A26+%2B0300.

  • После прохождения авторизации в ЕСИА не происходит возвращение в приложение.

Некорректно сформирован параметр redirect_uri. Обратите внимание на url-encoding символов.
Пример корректного параметра redirect_uri: redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fesia_return.