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

В.3.2 Получение маркера доступа

Для получения маркера доступа система-клиент должна направить по https-адресу сервиса авторизации (ЕСИА) запрос методом POST. Запрос должен содержать следующие сведения:

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

- <response_type> - используемая модель контроля доступа; принимает значение "token", если происходит безусловное наделение системы-клиента полномочиями;

- <grant_type> - принимает значение "client_credentials", если используется модель контроля доступа на основе полномочий системы-клиента. В данной модели невозможно указывать пользовательские scope, необходимо указывать только scope организаций.

- <scope> - область доступа, т.е. запрашиваемые права; например, если система-клиент запрашивает доступ к данным ИНН организации, то scope должно иметь значение http://esia.gosuslugi.ru/org_inn с параметрами.

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

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

- <token_type> - тип запрашиваемого маркера, в настоящее время ЕСИА поддерживает только значение "Bearer";

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

Если запрос успешно прошел проверку, то ЕСИА возвращает ответ в формате JSON:

- <access_token> - маркер доступа для данного ресурса;

- <expires_in> - время, в течение которого истекает срок действия маркера (в секундах);

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

- <token_type> - тип предоставленного маркера, в настоящее время ЕСИА поддерживает только значение "Bearer".

При невозможности выдачи маркера доступа возвращается код ошибки (Таблица 16).