README.md

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

    Актуальная версия “Методических рекомендаций по использованию Единой системы идентификации и аутентификации”: 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.

    Описание

    Клон проекта с гитхаба https://github.com/ILyaCyclone/esia-auth-code

    Конвейеры
    0 успешных
    0 с ошибкой