Актуальную версию документа см. на сайте Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации по адресу https://digital.gov.ru/ru/documents/6186/.

В.6.2.1 Стандартный режим запроса авторизационного кода

Чтобы получить авторизационный код, система-клиент должна получить разрешение на проведение аутентификации пользователя <67>. Для этого система-клиент должна направить пользователя на страницу предоставления прав доступа в ЕСИА.

--------------------------------

<67> Адрес в тестовой среде: https://esia-portal1.test.gosuslugi.ru/aas/oauth2/ac

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

- <client_id> - идентификатор системы-клиента (мнемоника системы в ЕСИА, указанная прописными буквами);

- <client_secret> - подпись запроса в формате PKCS#7 detached signature в кодировке UTF-8 от значений следующих параметров HTTP-запроса: scope, timestamp, client_id, state (без разделителей). <client_secret> должен быть закодирован в формате base64 url safe. Используемый для проверки подписи сертификат должен быть предварительно зарегистрирован в ЕСИА и привязан к учетной записи системы-клиента в ЕСИА. ЕСИА поддерживает сертификаты в формате X.509. ЕСИА поддерживает алгоритм формирования электронной подписи ГОСТ Р 34.10-2012 и алгоритм криптографического хэширования ГОСТ Р 34.11-2012.

- <redirect_uri> - ссылка, по которой должен быть направлен пользователь после того, как даст разрешение на проведение аутентификации;

- <scope> - область доступа, т.е. запрашиваемые права; для проведения аутентификации пользователя scope должен иметь значение openid. Если системе потребуется получение дополнительных данных о пользователе (например, детальная информация о пользователе), то могут быть указаны дополнительные scope через пробел;

- <response_type> - это тип ответа, который ожидается от ЕСИА, имеет значение code, поскольку система-клиент должна получить авторизационный код;

- <state> - набор случайных символов, имеющий вид 128-битного идентификатора запроса (необходимо для защиты от перехвата), генерируется по стандарту UUID;

- <timestamp> - время запроса авторизационного кода в формате yyyy.MM.dd HH:mm:ss Z (например, 2013.01.25 14:36:11 +0400), необходимое для фиксации начала временного промежутка, в течение которого будет валиден запрос с данным идентификатором (<state>).

Если в ходе аутентификации не возникло ошибок, то ЕСИА осуществляет редирект пользователя по ссылке, указанной в redirect_uri, а также возвращает два обязательных параметра:

- <code> - значение авторизационного кода;

- <state> - значение параметра state, который был получен в запросе на аутентификацию; система-клиент должна провести сравнение отправленного и полученного параметра state.