Ошибка esia 005048

Содержание

  1. Получение операторского маркера доступа для управления пользователями
  2. Инициация аутентификации
  3. Получение кода авторизации
  4. Получение операторского маркера доступа
  5. Получение делегирующего маркера доступа
  6. Приложение В. Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

Получение операторского маркера доступа для управления пользователями

Примечание

Данный сценарий не требует интерактивного взаимодействия Пользователя с Веб-интерфейсом ЦИ DSS.

Данный раздел включает в себя описание операций, которые необходимо выполнить клиентскому приложению для получения маркера доступа Оператора, позволяющего выполнять на Сервисе Подписи операции с сертификатами и запросами от имени пользователя.

Перед началом интеграции Администратору DSS необходимо:

  • Выпустить и зарегистрировать на DSS cертификат аутентификации Оператора DSS
  • Зарегистрировать OAuth-клиента

Для получения маркера доступа необходимо выполнить следующие шаги:

Инициация аутентификации

Данный шаг заключается в отправке GET-запроса на аутентификацию на конечную точку /authorize/certificate. Примера запроса представлен ниже.

Пример запроса

  • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS. Для регистрации клиента и его последующей конфигурации можно воспользоваться командлетами Windows PowerShell Add-DssClient и Set-DssClient соответственно.
Примечание

При регистрации клиента параметр AllowedFlow должен включать в себя разрешения AuthorizationCode и ResourceOwner .

  • response_type — в данном сценарии имеет значение code .
  • scope — области использования маркера. Должен содержать значение dss.
  • redirect_uri — зарегистрированный на Центре Идентификации адрес возврата (по этому адресу будет возвращён запрошенный код авторизации).
Примечание

Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.

Для случаев, в которых не планируется использование выделенного HTTP-сервиса для обработки URI перенаправления, рекомендуется использовать зарезервированный URI urn:ietf:wg:oauth:2.0:oob:auto .

  • resource — идентификатор ресурса, для доступа к которому выпускается токен.

Если в рамках сценария необходима аутентификация клиентского приложени и известен его секрет, запрос необходимо модифицировать.

Параметр client_id в теле запроса должен был заменен на заголовок Auhtorization HTTP-запроса, имеющий значение Basic Base64(client_id:client_secret) .

Также необходимо указать операторский сертификат в качестве клиентского SSL/TLS сертификата, по нему будет осуществляться аутентификация оператора на ЦИ.

Получение кода авторизации

В случае успешной аутентификации

  • ответ сервера будет иметь статус HTTP 302
  • В заголовке Location будет содержаться код авторизации

В примере используется специальное значение redirect_uri, клиенту необходимо из заголовка Location извлечь значение параметра code. Значение параметра code будет использовано для получения AccessToken на следующем шаге.

Пример ответа

Типовые ошибки

HTTP-код Ошибка Описание
400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID
400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow)
400 invalid_request Неверно сформирован параметр resource
500 An error has occurred 1. Проверяющая сторона с идентификатором resource не зарегистрирована.

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

Для получения маркера доступа используется конечная точка /token. Клиент формирует следующий HTTP-запрос:

  • grant_type — в данном сценарии имеет значение authorization_code .
  • code — код авторизации, полученный на предыдущем этапе.
  • redirect_uri — зарегистрированный на Центре Идентификации адрес возврата (по этому адресу будет возвращён запрошенный код авторизации).
Примечание

Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.

  • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS.

В случае успешной обработки запроса Центром Идентификации ответ будет содержать:

  • access_token — Маркер доступа, выпущенный Центром Идентификации DSS
  • token_type — Тип токена
  • expires_in — Время жизни токена в секундах

Значение параметра access_token необходимо будет использовать при обращениях к Сервису Подписи.

Примечание

Данный access_token не даёт право Оператору DSS выполнять операции на Сервисе Подписи от имени пользователей. access_token может быть использован для получения Политики Сервиса Подписи.

HTTP-код Ошибка Описание
400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID
400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow)
400 invalid_request Неверно сформирован параметр resource
400 invalid_grant Невалидный код авторизации.
500 An error has occurred 1. Проверяющая сторона с идентификатором resource не зарегистрирована.

Получение делегирующего маркера доступа

Для получения AccessToken для делегирования используется конечная точка oauth/token. Подробная информация по протоколу получения AccessToken для делегирования: OAuth 2.0 Token Exchange.

  • grant_type — тип разрешения, в данном сценарии равен urn:ietf:params:oauth:grant-type:token-exchange.
  • resource – идентификатор Сервиса Подписи.
  • actor_token — Маркер доступа, полученный на предыдущем шаге
  • actor_token_type – тип маркера доступа, должен иметь значение urn:ietf:params:oauth:token-type:jwt.
  • subject_token_type – тип маркера доступа, должен иметь значение urn:ietf:params:oauth:token-type:jwt.
  • subject_token – неподписанный JWT-токен, содержащий логин управляемого пользователя.

В декодированном виде subject_token имеет вид:

Пример кодирования JWT-токена можно посмотреть по ссылке.

Первая часть (до точки) называется header, вторая – payload. Для получения закодированного значения необходимо выполнить следующее преобразование:

Примечание

Поле unique_name должно содержать логин пользователя, для которого осуществляется делегация прав.

Поля nbf , exp и iat представляют из себя даты в формате Unix Epoch и задают дату начала действия токена, дату истечения срока действия и дату подписания токена соответственно.

Внимание!

Символ “.” в конце получившегося значения является обязательным.

В заголовке Authorization HTTP-запроса клиент должен передать идентификатор OAuth-клиента и секрет (если используется): Authorization: Basic Base64( : )

Пример запроса

В случае успешной обработки запроса Центром Идентификации ответ будет содержать:

  • access_token — делегирующий AccessToken, выпущенный Центром Идентификации DSS
  • token_type — Тип токена
  • expires_in — Время жизни токена в секундах

Значение параметра access_token необходимо будет использовать при обращениях к Сервису Подписи во время выполнения операции оператором от имени пользователя.

Источник

Приложение В. Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

В.1 Общие сведения

OAuth 2.0 определяет протокол взаимодействия следующих сторон:

— владелец ресурса (resource owner) — сущность, которая может предоставить доступ к защищаемому ресурсу (например, конечный пользователь);

— система-клиент (client) — приложение, которое запрашивает доступ к защищаемому ресурсу от имени владельца ресурса;

— сервис авторизации (authorization server) — сервис, который выпускает для клиента маркеры доступа с разрешения владельца ресурса;

— поставщик ресурса (resource server) — сервис, на котором размещены защищаемые ресурсы, и который может принимать запросы на доступ к защищаемым ресурсам и отвечать на эти запросы.

Модель контроля доступа, реализуемая сервисом авторизации ЕСИА, основана на использовании маркера доступа (security access token). Этот маркер несет информацию о подмножестве полномочий системы-клиента, о самой системе-клиенте, а также ряд служебных параметров. С точки зрения системы-клиента маркер доступа представляет собой набор символов. Системе-клиенту для получения доступа к защищенным ресурсам (т.е. делать успешные вызовы программного интерфейса), как правило, не требуется расшифровывать маркер доступа, достаточно лишь получать по определенным правилам и корректно использовать. В то же время в ЕСИА предусмотрены и «подписанные» маркеры доступа, которые можно проверить без обращения к ЕСИА.

В ЕСИА используются два способа получения маркера доступа:

1. Система-клиент получает маркер доступа в результате делегированного принятия решения сервисом авторизации на основании согласия владельца ресурса. В этом случае сервис авторизации выдает маркер доступа, если явными # образом получает разрешение со стороны владельца ресурса. Например, система-клиент обратилась к сервису авторизации за маркером, позволяющим получить контактные данные пользователя. В этом случае сервис авторизации запрашивает у пользователя, согласен ли он предоставить данные системе-клиенту, и при позитивном решении выдает маркер доступа.

2. Система-клиент получает маркер доступа в результате решения сервиса авторизации на основании наличия у системы-клиента соответствующих полномочий. В этом случае система-клиент не должна получать явного разрешения от владельца ресурса — это разрешение было дано заранее, на стадии регистрации системы-клиента в сервисе авторизации. Такая модель контроля доступа реализуется, например, при взаимодействии информационных систем, если одна система желает получить идентификационные сведения о другой системе, для чего ей необходимо получить соответствующий маркер доступа.

Аутентификация пользователя, реализуемая с помощью модели OAuth 2.0 и распишения OpenID Connect, основана на использовании маркера идентификации (ID token). Этот маркер несет информацию об идентификационных данных пользователя, а также ряд служебных параметров.

В.2 Модель контроля на основе делегированного принятия решения

В.2.1 Общие принципы

Данная модель контроля доступа используется в случаях, когда система-клиент при доступе к ресурсу должна получить разрешение на это действие со стороны владельца ресурса.

В общем виде схема взаимодействия выглядит следующим образом:

— система-клиент запрашивает у владельца ресурса разрешение на доступ к соответствующим ресурсам. Обычно этот запрос осуществляется не напрямую к владельцу ресурса, а опосредованно через сервис авторизации (который, в свою очередь, запрашивает разрешение у владельца ресурса), поскольку сам владелец ресурса не может выдать ни маркер доступа, ни авторизационный код;

— система-клиент получает разрешение на доступ (authorization grant) в виде авторизационного кода;

— система-клиент запрашивает маркер доступа, предъявив авторизационный код сервису авторизации;

— сервис авторизации аутентифицирует систему-клиента, проверяет авторизационный код и выдает маркер доступа и маркер обновления;

— система-клиент запрашивает у поставщика защищенный ресурс, предъявляя маркер доступа;

— поставщик ресурса проверяет маркер доступа, если он валиден, то разрешает доступ к защищенному ресурсу;

— система-клиент вновь запрашивает с помощью выданного ранее маркера доступ к защищенному ресурсу;

— поставщик ресурса проверяет маркер, обнаруживает, что срок его действия истек, возвращает сообщение об ошибке;

— система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя маркер обновления;

— сервис авторизации проверяет валидность маркера обновления и возвращает два новых маркера: доступа и обновления.

Схема взаимодействия представлена на рисунке 14.

После того, как система-клиент получила маркер доступа, она может неоднократно обращаться за получением соответствующего защищенного ресурса, пока не истечет срок действия этого маркера. Когда это произойдет, системе-клиенту потребуется получить новый маркер доступа.

Ключевая особенность этой модели в том, что сам владелец ресурса никогда не получает маркер доступа, его получает сама система-клиент в результате прямой связи с сервисом авторизации (server-side flow).

Рисунок 14 — Общая схема взаимодействия при получении маркера доступа с помощью авторизационного кода

Для оптимизации повторного получения маркера доступа используется механизм маркера обновления (refresh token): в этом случае первоначально в обмен на авторизационный код системе-клиенту выдается не только маркер доступа, но и маркер обновления. Когда маркер доступа перестает действовать, система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя маркер обновления. Сервис авторизации проверяет валидность маркера обновления (что он не был отозван и что срок его действия не истек) и выдает новый маркер доступа и маркер обновления.

Особенности маркера обновления:

— имеет более длительный (или бессрочный) срок действия, чем у маркера доступа;

— предъявляется исключительно при необходимости получить новый маркер доступа (таким образом, минимизируется риск перехвата);

— выдается сервисом авторизации одновременно с маркером доступа;

— может быть отозван владельцем ресурса.

Таким образом, наличие маркера обновления позволяет системе-клиенту получать новый маркер доступа даже тогда, когда пользователь (владелец ресурса) недоступен, при условии, что владелец ресурса явным образом не запретил доступ.

В.2.2 Получение авторизационного кода

Чтобы получить авторизационный код, система-клиент должна получить разрешение на доступ к защищенному ресурсу со стороны его владельца. В случае, когда владельцем является пользователь ЕСИА, система-клиент должна направить пользователя на страницу предоставления прав доступа в ЕСИА*(1) (пользователь должен быть предварительно аутентифицирован в ЕСИА или система ЕСИА попросит его пройти идентификацию и аутентификацию).

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

— — идентификатор системы-клиента (мнемоника системы в ЕСИА);

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

— — ссылка, по которой должен быть направлен пользователь после того, как даст разрешение на доступ к ресурсу;

— — область доступа, т.е. запрашиваемые права; например, если система-клиент запрашивает доступ к сведениям о сотрудниках организации, то scope должна иметь значение http://esia.gosuslugi.ru/org_emps (с необходимыми параметрами); если запрашивается scope http://esia.gosuslugi.ru/id_doc*(2) (данные о пользователе), то не нужно в качестве параметра указывать oid этого пользователя;

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

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

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

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

— — значение авторизационного кода;

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

В случае ошибки сервис авторизации вернет в параметре error код ошибки (например, «access_denied») и не перенаправит пользователя по адресу, указанному в redirect_uri. Перечень возможных ошибок приведен в таблице 10.

Таблица 10 — Список ошибок при получении маркеров доступа

Источник

Операция «Зарегистрировать подтверждённую учётную запись в ЕСИА с отправкой пароля для первого входа на контактные данные»

Общие сведения

Код операции: Register5
Наименование операции: Зарегистрировать подтверждённую учётную запись в ЕСИА с выдачей пароля для первого входа
Назначение операции: Операция предназначена для создания новой подтвержденной учетной записи пользователя ЕСИА с отправкой пароля для первого входа в систему на контактные данные.

Описание входных параметров

Код параметра Описание параметра Обязательность Способ заполнения / Тип Комментарий
reqAuthInf Комплексный тип, описывающий субъекта, осуществляющего запрос Y xs:string
ra Идентификатор центра обслуживания Y xs:string Идентификатор центра обслуживания, в котором осуществляется регистрация пользователя6. Должен быть положительным целым числом.
snils СНИЛС пользователя Y xs:string задается в формате:

XXX-XXX-XXX XX

lastName Фамилия пользователя Y xs:string
firstName Имя пользователя Y xs:string
middleName Отчество пользователя N xs:string Не заполняется, если отчество отсутствует в документе, удостоверяющем личность
gender Пол пользователя Y xs:string “M” – мужской;

“F” – женский

birthDate Дата рождения пользователя Y xs:string задается в формате ДД.ММ.ГГГГ
doc Комплексный тип, описывающий документ, удостоверяющий личность пользователя Y xs:string
email Адрес электронной почты пользователя N xs:string Рекомендуется указать в целях информирования пользователя о возможных проблемах с регистрацией.

Не более 2000 символов.

mobile7 Номер мобильного телефона пользователя Y xs:string В формате +7(xxx)xxxxxxx

Необходимо указать в целях отправки уведомлений и получения ответа о согласии на регистрацию8, передачи одноразового пароля для входа в систему и информирования пользователя о возможных проблемах с регистрацией

citizenship Гражданство пользователя по классификатору ОКСМ Y xs:string Буквенный код из трех символов (альфа-3). Например, для России должен передаваться код “RUS”.

Для лиц с двойным гражданством должен передаваться код страны, выдавшей ДУЛ, данные которого указаны в параметре «doc» метода

mode Способ доставки пароля для первого входа в систему Y xs:string email – отправка на адрес электронной почты (при условии, что параметр задан);

mobile – отправка на номер мобильного телефона;

notRequired – отправка пароля не требуется

address Комплексный тип, описывающий адрес N xs:string Могут быть определены следующие адреса:

  • регистрации;
  • фактического проживания
birthPlace Место рождения N xs:string Если в ДУЛ иностранного гражданина место рождения не указано, то в данном поле указывается фактическое место рождения (страна, населенный пункт)

Параметры комплексного типа описаны в приложении «Описание общих структур данных».

Описание выходных параметров

При успешном завершении в ответном сообщении содержится идентификатор заявки на регистрацию пользователя (requestId), поскольку верификация данных пользователя осуществляется в асинхронном режиме (в силу возможной недоступности БГИР ФОИВ для осуществления верификации персональных данных пользователей).

Код параметра Описание параметра Обязательность Способ заполнения/Тип Комментарий
requestId Идентификатор заявки на регистрацию пользователя Y xs:string Не более 128 символов
warning Уведомления N xs:string В частности, предупреждение о том, что заданные контактные данные не уникальны в системе9.

Не более 2000 символов.

При неуспешном завершении метод возвращает ошибку, содержащую следующие параметры:

  • faultCode– код ошибки (см. п. );
  • faultString– текст ошибки.

Коды возвратов

Код возврата Описание кода возврата Условия возникновения Комментарий
ESIA-000001 Внутренняя ошибка Данный код возврата соответствует ситуации, когда обнаружена неизвестная ошибка
ESIA-036103 Пользовать уже зарегистрирован Данный код возврата соответствует ситуации, когда при регистрации пользователя обнаружена активированная учетная запись с данным СНИЛС
ESIA-036102 Неверная контрольная сумма СНИЛС Данный код возврата соответствует ситуации, когда некорректен указанный СНИЛС (неверная контрольная сумма)
ESIA-030002 Не заполнены обязательные поля ФИО Данный код возврата соответствует ситуации, когда не заполнено одно из обязательных полей – фамилия или имя
ESIA-035103 Не указан пол Данный код возврата соответствует ситуации, когда не указан пол пользователя
ESIA-035104 Не указана дата рождения Данный код возврата соответствует ситуации, когда не указана дата рождения пользователя
ESIA-035105 Некорректная дата рождения Данный код возврата соответствует ситуации, когда дата рождения пользователя некорректна Например, указана дата, которая еще не наступила
ESIA-033006 Некорректная дата выдачи документа Данный код возврата соответствует ситуации, когда дата выдачи документа некорректна Например, указана дата, которая еще не наступила
ESIA-033104 Не указан код подразделения Данный код возврата соответствует ситуации, когда в параметрах документа не указан код подразделения
ESIA-033001 Не указана серия документа Данный код возврата соответствует ситуации, когда в параметрах документа не указана серия
ESIA-033002 Не указан номер документа Данный код возврата соответствует ситуации, когда в параметрах документа не указан номер
ESIA-033005 Не указана дата выдачи документа Данный код возврата соответствует ситуации, когда в параметрах документа не указана дата выдачи документа
ESIA-033007 Не указано, кем выдан документ Данный код возврата соответствует ситуации, когда в параметрах документа не указано, кем выдан документ
ESIA-005003 Нет прав на обращение к методу сервиса Данный код возврата соответствует ситуации, когда у оператора нет прав на обращение к методу сервиса
ESIA-005034 Некорректный идентификатор центра обслуживания Данный код возврата соответствует ситуации, когда используется некорректный идентификатор центра обслуживания (например, он не соответствует уполномоченной организации, от имени которой осуществляется вызов сервиса)
ESIA-005035 Некорректна авторизационная информация Данный код возврата соответствует ситуации, когда возникла ошибка при проверке подписи оператора (например, в подписи отсутсвует идентификатор пользователя)
ESIA-005036 Некорректный сертификат электронной подписи Данный код возврата соответствует ситуации, когда возникла ошибка при проверке сертификата электронной подписи оператора (например, сертификат не проходит проверку ИС ГУЦ)
ESIA-005037 Оператор не имеет права на вызов сервиса Данный код возврата соответствует ситуации, когда ОГРН, указанный в сертификате КЭП, не соответствует уполномоченной организации (т.е. организация не является Оператором выдачи ключа ПЭП)
ESIA-030003 Неверные параметры запроса Данный код возврата соответствует ситуации, когда имеются другие ошибки в запросе Например, отсутствует обязательный параметр, некорректна подпись СМЭВ, в параметре mode передано значение direct
ESIA-039815 Мобильный телефон уже используется для регистрации Данный код возврата соответствует ситуации, когда номер мобильного телефона указан при регистрации другой учетной записи и от него ожидается sms-сообщение с согласием на регистрацию

Контрольные примеры

Вызов контрольного примера следует осуществлять только через СМЭВ.

При этом в блоке <wsse:Security soapenv:actorhttp://smev.gosuslugi.ru/actors/smev«> следует указывать действующий сертификат ИС, которая осуществляет вызов сервиса10.
Запрос

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

PQGDIb+BJA==

ISIA01001

Electronic system identification and authentication

ISIA01001

Electronic system identification and authentication

ISIA01001

Electronic system identification and authentication

ESIARegister

1.00

OTHR

REQUEST

2014-11-18T14:15:16.181+03:00

0

Test

Test

XHUwNDJGLCBcdTA0MTJcdTA0MzBcdTA0MzNcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzAgXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDRGIFx1MDQxOFx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzMCwgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwIFx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzMCA4NjY1IDY1NDU0MSwgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDRFLCBcdTA0NDdcdTA0NDJcdTA0M0UgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDIFx1MDQ0MSBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0M0NcdTA0MzgsIFx1MDQzMlx1MDQzOFx1MDQzNCBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Rlx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRSBcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NEMgIFx1MDQxRlx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0MiBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDIwXHUwNDI0LCBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NEYgXHUwNDM4IFx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MCBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgMjAwMyA4MDk5OTksIFx1MDQ0M1x1MDQ0MVx1MDQzRlx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzRSBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDhcdTA0MzVcdTA0M0IgXHUwNDMyIFx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NDFcdTA0M0JcdTA0NDNcdTA0MzZcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwMEFCXHUwNDEzXHUwNDExXHUwNDIzIFwiXHUwNDFDXHUwNDI0XHUwNDI2IFx1MDQxRlx1MDQyMFx1MDQxNVx1MDQxNFx1MDQxRVx1MDQyMVx1MDQyMlx1MDQxMFx1MDQxMlx1MDQxQlx1MDQxNVx1MDQxRFx1MDQxOFx1MDQyRiBcdTA0MTNcdTA0MUVcdTA0MjFcdTA0MjNcdTA0MTRcdTA0MTBcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MTJcdTA0MTVcdTA0MURcdTA0MURcdTA0MkJcdTA0MjUgXHUwNDE4IFx1MDQxQ1x1MDQyM1x1MDQxRFx1MDQxOFx1MDQyNlx1MDQxOFx1MDQxRlx1MDQxMFx1MDQxQlx1MDQyQ1x1MDQxRFx1MDQyQlx1MDQyNSBcdTA0MjNcdTA0MjFcdTA0MUJcdTA0MjNcdTA0MTMgXHUwNDEyIFx1MDQyMFx1MDQxNVx1MDQyMVx1MDQxRlx1MDQyM1x1MDQxMVx1MDQxQlx1MDQxOFx1MDQxQVx1MDQxNSBcdTA0MjJcdTA0MTBcdTA0MjJcdTA0MTBcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MTBcdTA0MURcIlx1MDBCQiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NDMgXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQzRSBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0M0NcdTA0NDMgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQzLCBcdTA0MzggXHUwNDNFXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDRFIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzVcdTA0MzNcdTA0M0UgXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM5IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOCBcdTA0MzIgXHUwNDE1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDNFXHUwNDM5IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzNSBcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOC4=

MIITtgYJKoZIhvcNAQcCoIITpzCCE6MCAQExDDAKBgYqhQMCAgkFADCCCS0GCSqGSIb3DQEHAaCCCR4EggkaXHUwNDJGLCBcdTA0MTJcdTA0MzBcdTA0MzNcdTA0MzBcdTA0M0ZcdTA0M0VcdTA0MzJcdTA0MzAgXHUwNDEwXHUwNDNEXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDMwXHUwNDQxXHUwNDM4XHUwNDRGIFx1MDQxOFx1MDQzM1x1MDQzRVx1MDQ0MFx1MDQzNVx1MDQzMlx1MDQzRFx1MDQzMCwgXHUwNDNEXHUwNDNFXHUwNDNDXHUwNDM1XHUwNDQwIFx1MDQzRlx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0Mlx1MDQzMCA4NjY1IDY1NDU0MSwgXHUwNDNGXHUwNDNFXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDMwXHUwNDRFLCBcdTA0NDdcdTA0NDJcdTA0M0UgXHUwNDNGXHUwNDNFXHUwNDNCXHUwNDRDXHUwNDM3XHUwNDNFXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNCXHUwNDRDIFx1MDQ0MSBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0NEJcdTA0M0NcdTA0MzgsIFx1MDQzMlx1MDQzOFx1MDQzNCBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAsIFx1MDQ0M1x1MDQzNFx1MDQzRVx1MDQ0MVx1MDQ0Mlx1MDQzRVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQ0Rlx1MDQ0RVx1MDQ0OVx1MDQzNVx1MDQzM1x1MDQzRSBcdTA0M0JcdTA0MzhcdTA0NDdcdTA0M0RcdTA0M0VcdTA0NDFcdTA0NDJcdTA0NEMgIFx1MDQxRlx1MDQzMFx1MDQ0MVx1MDQzRlx1MDQzRVx1MDQ0MFx1MDQ0MiBcdTA0MzNcdTA0NDBcdTA0MzBcdTA0MzZcdTA0MzRcdTA0MzBcdTA0M0RcdTA0MzhcdTA0M0RcdTA0MzAgXHUwNDIwXHUwNDI0LCBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NEYgXHUwNDM4IFx1MDQzRFx1MDQzRVx1MDQzQ1x1MDQzNVx1MDQ0MCBcdTA0MzRcdTA0M0VcdTA0M0FcdTA0NDNcdTA0M0NcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzAgMjAwMyA4MDk5OTksIFx1MDQ0M1x1MDQ0MVx1MDQzRlx1MDQzNVx1MDQ0OFx1MDQzRFx1MDQzRSBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDhcdTA0MzVcdTA0M0IgXHUwNDMyIFx1MDQ0Nlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQ0MFx1MDQzNSBcdTA0M0VcdTA0MzFcdTA0NDFcdTA0M0JcdTA0NDNcdTA0MzZcdTA0MzhcdTA0MzJcdTA0MzBcdTA0M0RcdTA0MzhcdTA0NEYgXHUwMEFCXHUwNDEzXHUwNDExXHUwNDIzIFwiXHUwNDFDXHUwNDI0XHUwNDI2IFx1MDQxRlx1MDQyMFx1MDQxNVx1MDQxNFx1MDQxRVx1MDQyMVx1MDQyMlx1MDQxMFx1MDQxMlx1MDQxQlx1MDQxNVx1MDQxRFx1MDQxOFx1MDQyRiBcdTA0MTNcdTA0MUVcdTA0MjFcdTA0MjNcdTA0MTRcdTA0MTBcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MTJcdTA0MTVcdTA0MURcdTA0MURcdTA0MkJcdTA0MjUgXHUwNDE4IFx1MDQxQ1x1MDQyM1x1MDQxRFx1MDQxOFx1MDQyNlx1MDQxOFx1MDQxRlx1MDQxMFx1MDQxQlx1MDQyQ1x1MDQxRFx1MDQyQlx1MDQyNSBcdTA0MjNcdTA0MjFcdTA0MUJcdTA0MjNcdTA0MTMgXHUwNDEyIFx1MDQyMFx1MDQxNVx1MDQyMVx1MDQxRlx1MDQyM1x1MDQxMVx1MDQxQlx1MDQxOFx1MDQxQVx1MDQxNSBcdTA0MjJcdTA0MTBcdTA0MjJcdTA0MTBcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MTBcdTA0MURcIlx1MDBCQiBcdTA0M0ZcdTA0NDBcdTA0M0VcdTA0NDZcdTA0MzVcdTA0MzRcdTA0NDNcdTA0NDBcdTA0NDMgXHUwNDM4XHUwNDM0XHUwNDM1XHUwNDNEXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNBXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzRlx1MDQzRSBcdTA0MzRcdTA0MzBcdTA0M0RcdTA0M0RcdTA0M0VcdTA0M0NcdTA0NDMgXHUwNDM0XHUwNDNFXHUwNDNBXHUwNDQzXHUwNDNDXHUwNDM1XHUwNDNEXHUwNDQyXHUwNDQzLCBcdTA0MzggXHUwNDNFXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDNCXHUwNDRGXHUwNDRFIFx1MDQ0M1x1MDQzNFx1MDQzMFx1MDQzQlx1MDQzNVx1MDQzRFx1MDQzOFx1MDQzNSBcdTA0MzVcdTA0MzNcdTA0M0UgXHUwNDQzXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDNEXHUwNDNFXHUwNDM5IFx1MDQzN1x1MDQzMFx1MDQzRlx1MDQzOFx1MDQ0MVx1MDQzOCBcdTA0MzIgXHUwNDE1XHUwNDM0XHUwNDM4XHUwNDNEXHUwNDNFXHUwNDM5IFx1MDQ0MVx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzNVx1MDQzQ1x1MDQzNSBcdTA0MzhcdTA0MzRcdTA0MzVcdTA0M0RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M0FcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzRFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzQVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOC6gggehMIIHnTCCB0ygAwIBAgIKUo7M0gAAAAADWTAIBgYqhQMCAgMwggFGMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMBARIMMDAxMjM0NTY3ODkwMSkwJwYDVQQJDCDQodGD0YnQtdCy0YHQutC40Lkg0LLQsNC7INC0LiAyNjEXMBUGCSqGSIb3DQEJARYIY2FAcnQucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEkMCIGA1UECgwb0J7QkNCeINCg0L7RgdGC0LXQu9C10LrQvtC8MTAwLgYDVQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG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

1000321282

115-783-074 63

Меркулова

Елена

Алексеевна

M

21.11.1985

Рейкьявик

RF_PASSPORT

0000

798285

111111

01.09.2014

РОВД на ДЕВ

RUS

email

SoapUI.Test@no-spam.ws

+7(929)5066533

PLV

00070

002ff6b9-c2db-46e5-99da-8cf30d239b27

Москва город, Тверская улица

RUS

932133

4

2

4

6

PRG

00070

002ff6b9-c2db-46e5-99da-8cf30d239b27

Москва город, Тверская улица

RUS

932133

4

2

4

6

Ответ на запрос в случае успешного исполнения

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

pbRiSX6xYQ==

ISIA01001

Electronic system identification and authentication

ISIA01001

Electronic system identification and authentication

ISIA01001

Electronic system identification and authentication

ESIARegister

1.00

OTHR

RESULT

2016-08-12T17:13:55.340+03:00

0

4a907cb2-b29d-4c5c-8435-f44811c338b7

4a907cb2-b29d-4c5c-8435-f44811c338b7

Test

Test

35fa8966-f8a7-4b89-8122-0754c520dfb6

Содержание

  1. Получение операторского маркера доступа для управления пользователями
  2. Инициация аутентификации
  3. Получение кода авторизации
  4. Получение операторского маркера доступа
  5. Получение делегирующего маркера доступа
  6. Приложение В. Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

Получение операторского маркера доступа для управления пользователями

Примечание

Данный сценарий не требует интерактивного взаимодействия Пользователя с Веб-интерфейсом ЦИ DSS.

Данный раздел включает в себя описание операций, которые необходимо выполнить клиентскому приложению для получения маркера доступа Оператора, позволяющего выполнять на Сервисе Подписи операции с сертификатами и запросами от имени пользователя.

Перед началом интеграции Администратору DSS необходимо:

  • Выпустить и зарегистрировать на DSS cертификат аутентификации Оператора DSS
  • Зарегистрировать OAuth-клиента

Для получения маркера доступа необходимо выполнить следующие шаги:

Инициация аутентификации

Данный шаг заключается в отправке GET-запроса на аутентификацию на конечную точку /authorize/certificate. Примера запроса представлен ниже.

Пример запроса

  • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS. Для регистрации клиента и его последующей конфигурации можно воспользоваться командлетами Windows PowerShell Add-DssClient и Set-DssClient соответственно.
Примечание

При регистрации клиента параметр AllowedFlow должен включать в себя разрешения AuthorizationCode и ResourceOwner .

  • response_type — в данном сценарии имеет значение code .
  • scope — области использования маркера. Должен содержать значение dss.
  • redirect_uri — зарегистрированный на Центре Идентификации адрес возврата (по этому адресу будет возвращён запрошенный код авторизации).
Примечание

Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.

Для случаев, в которых не планируется использование выделенного HTTP-сервиса для обработки URI перенаправления, рекомендуется использовать зарезервированный URI urn:ietf:wg:oauth:2.0:oob:auto .

  • resource — идентификатор ресурса, для доступа к которому выпускается токен.

Если в рамках сценария необходима аутентификация клиентского приложени и известен его секрет, запрос необходимо модифицировать.

Параметр client_id в теле запроса должен был заменен на заголовок Auhtorization HTTP-запроса, имеющий значение Basic Base64(client_id:client_secret) .

Также необходимо указать операторский сертификат в качестве клиентского SSL/TLS сертификата, по нему будет осуществляться аутентификация оператора на ЦИ.

Получение кода авторизации

В случае успешной аутентификации

  • ответ сервера будет иметь статус HTTP 302
  • В заголовке Location будет содержаться код авторизации

В примере используется специальное значение redirect_uri, клиенту необходимо из заголовка Location извлечь значение параметра code. Значение параметра code будет использовано для получения AccessToken на следующем шаге.

Пример ответа

Типовые ошибки

HTTP-код Ошибка Описание
400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID
400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow)
400 invalid_request Неверно сформирован параметр resource
500 An error has occurred 1. Проверяющая сторона с идентификатором resource не зарегистрирована.

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

Для получения маркера доступа используется конечная точка /token. Клиент формирует следующий HTTP-запрос:

  • grant_type — в данном сценарии имеет значение authorization_code .
  • code — код авторизации, полученный на предыдущем этапе.
  • redirect_uri — зарегистрированный на Центре Идентификации адрес возврата (по этому адресу будет возвращён запрошенный код авторизации).
Примечание

Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.

  • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS.

В случае успешной обработки запроса Центром Идентификации ответ будет содержать:

  • access_token — Маркер доступа, выпущенный Центром Идентификации DSS
  • token_type — Тип токена
  • expires_in — Время жизни токена в секундах

Значение параметра access_token необходимо будет использовать при обращениях к Сервису Подписи.

Примечание

Данный access_token не даёт право Оператору DSS выполнять операции на Сервисе Подписи от имени пользователей. access_token может быть использован для получения Политики Сервиса Подписи.

HTTP-код Ошибка Описание
400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID
400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow)
400 invalid_request Неверно сформирован параметр resource
400 invalid_grant Невалидный код авторизации.
500 An error has occurred 1. Проверяющая сторона с идентификатором resource не зарегистрирована.

Получение делегирующего маркера доступа

Для получения AccessToken для делегирования используется конечная точка oauth/token. Подробная информация по протоколу получения AccessToken для делегирования: OAuth 2.0 Token Exchange.

  • grant_type — тип разрешения, в данном сценарии равен urn:ietf:params:oauth:grant-type:token-exchange.
  • resource – идентификатор Сервиса Подписи.
  • actor_token — Маркер доступа, полученный на предыдущем шаге
  • actor_token_type – тип маркера доступа, должен иметь значение urn:ietf:params:oauth:token-type:jwt.
  • subject_token_type – тип маркера доступа, должен иметь значение urn:ietf:params:oauth:token-type:jwt.
  • subject_token – неподписанный JWT-токен, содержащий логин управляемого пользователя.

В декодированном виде subject_token имеет вид:

Пример кодирования JWT-токена можно посмотреть по ссылке.

Первая часть (до точки) называется header, вторая – payload. Для получения закодированного значения необходимо выполнить следующее преобразование:

Примечание

Поле unique_name должно содержать логин пользователя, для которого осуществляется делегация прав.

Поля nbf , exp и iat представляют из себя даты в формате Unix Epoch и задают дату начала действия токена, дату истечения срока действия и дату подписания токена соответственно.

Внимание!

Символ “.” в конце получившегося значения является обязательным.

В заголовке Authorization HTTP-запроса клиент должен передать идентификатор OAuth-клиента и секрет (если используется): Authorization: Basic Base64( : )

Пример запроса

В случае успешной обработки запроса Центром Идентификации ответ будет содержать:

  • access_token — делегирующий AccessToken, выпущенный Центром Идентификации DSS
  • token_type — Тип токена
  • expires_in — Время жизни токена в секундах

Значение параметра access_token необходимо будет использовать при обращениях к Сервису Подписи во время выполнения операции оператором от имени пользователя.

Источник

Приложение В. Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

Сервисы ЕСИА, основанные на протоколе OAUTH2.0 и OPENID CONNECT 1.0

В.1 Общие сведения

OAuth 2.0 определяет протокол взаимодействия следующих сторон:

— владелец ресурса (resource owner) — сущность, которая может предоставить доступ к защищаемому ресурсу (например, конечный пользователь);

— система-клиент (client) — приложение, которое запрашивает доступ к защищаемому ресурсу от имени владельца ресурса;

— сервис авторизации (authorization server) — сервис, который выпускает для клиента маркеры доступа с разрешения владельца ресурса;

— поставщик ресурса (resource server) — сервис, на котором размещены защищаемые ресурсы, и который может принимать запросы на доступ к защищаемым ресурсам и отвечать на эти запросы.

Модель контроля доступа, реализуемая сервисом авторизации ЕСИА, основана на использовании маркера доступа (security access token). Этот маркер несет информацию о подмножестве полномочий системы-клиента, о самой системе-клиенте, а также ряд служебных параметров. С точки зрения системы-клиента маркер доступа представляет собой набор символов. Системе-клиенту для получения доступа к защищенным ресурсам (т.е. делать успешные вызовы программного интерфейса), как правило, не требуется расшифровывать маркер доступа, достаточно лишь получать по определенным правилам и корректно использовать. В то же время в ЕСИА предусмотрены и «подписанные» маркеры доступа, которые можно проверить без обращения к ЕСИА.

В ЕСИА используются два способа получения маркера доступа:

1. Система-клиент получает маркер доступа в результате делегированного принятия решения сервисом авторизации на основании согласия владельца ресурса. В этом случае сервис авторизации выдает маркер доступа, если явными # образом получает разрешение со стороны владельца ресурса. Например, система-клиент обратилась к сервису авторизации за маркером, позволяющим получить контактные данные пользователя. В этом случае сервис авторизации запрашивает у пользователя, согласен ли он предоставить данные системе-клиенту, и при позитивном решении выдает маркер доступа.

2. Система-клиент получает маркер доступа в результате решения сервиса авторизации на основании наличия у системы-клиента соответствующих полномочий. В этом случае система-клиент не должна получать явного разрешения от владельца ресурса — это разрешение было дано заранее, на стадии регистрации системы-клиента в сервисе авторизации. Такая модель контроля доступа реализуется, например, при взаимодействии информационных систем, если одна система желает получить идентификационные сведения о другой системе, для чего ей необходимо получить соответствующий маркер доступа.

Аутентификация пользователя, реализуемая с помощью модели OAuth 2.0 и распишения OpenID Connect, основана на использовании маркера идентификации (ID token). Этот маркер несет информацию об идентификационных данных пользователя, а также ряд служебных параметров.

В.2 Модель контроля на основе делегированного принятия решения

В.2.1 Общие принципы

Данная модель контроля доступа используется в случаях, когда система-клиент при доступе к ресурсу должна получить разрешение на это действие со стороны владельца ресурса.

В общем виде схема взаимодействия выглядит следующим образом:

— система-клиент запрашивает у владельца ресурса разрешение на доступ к соответствующим ресурсам. Обычно этот запрос осуществляется не напрямую к владельцу ресурса, а опосредованно через сервис авторизации (который, в свою очередь, запрашивает разрешение у владельца ресурса), поскольку сам владелец ресурса не может выдать ни маркер доступа, ни авторизационный код;

— система-клиент получает разрешение на доступ (authorization grant) в виде авторизационного кода;

— система-клиент запрашивает маркер доступа, предъявив авторизационный код сервису авторизации;

— сервис авторизации аутентифицирует систему-клиента, проверяет авторизационный код и выдает маркер доступа и маркер обновления;

— система-клиент запрашивает у поставщика защищенный ресурс, предъявляя маркер доступа;

— поставщик ресурса проверяет маркер доступа, если он валиден, то разрешает доступ к защищенному ресурсу;

— система-клиент вновь запрашивает с помощью выданного ранее маркера доступ к защищенному ресурсу;

— поставщик ресурса проверяет маркер, обнаруживает, что срок его действия истек, возвращает сообщение об ошибке;

— система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя маркер обновления;

— сервис авторизации проверяет валидность маркера обновления и возвращает два новых маркера: доступа и обновления.

Схема взаимодействия представлена на рисунке 14.

После того, как система-клиент получила маркер доступа, она может неоднократно обращаться за получением соответствующего защищенного ресурса, пока не истечет срок действия этого маркера. Когда это произойдет, системе-клиенту потребуется получить новый маркер доступа.

Ключевая особенность этой модели в том, что сам владелец ресурса никогда не получает маркер доступа, его получает сама система-клиент в результате прямой связи с сервисом авторизации (server-side flow).

Рисунок 14 — Общая схема взаимодействия при получении маркера доступа с помощью авторизационного кода

Для оптимизации повторного получения маркера доступа используется механизм маркера обновления (refresh token): в этом случае первоначально в обмен на авторизационный код системе-клиенту выдается не только маркер доступа, но и маркер обновления. Когда маркер доступа перестает действовать, система-клиент обращается к сервису авторизации за получением нового маркера доступа, предъявляя маркер обновления. Сервис авторизации проверяет валидность маркера обновления (что он не был отозван и что срок его действия не истек) и выдает новый маркер доступа и маркер обновления.

Особенности маркера обновления:

— имеет более длительный (или бессрочный) срок действия, чем у маркера доступа;

— предъявляется исключительно при необходимости получить новый маркер доступа (таким образом, минимизируется риск перехвата);

— выдается сервисом авторизации одновременно с маркером доступа;

— может быть отозван владельцем ресурса.

Таким образом, наличие маркера обновления позволяет системе-клиенту получать новый маркер доступа даже тогда, когда пользователь (владелец ресурса) недоступен, при условии, что владелец ресурса явным образом не запретил доступ.

В.2.2 Получение авторизационного кода

Чтобы получить авторизационный код, система-клиент должна получить разрешение на доступ к защищенному ресурсу со стороны его владельца. В случае, когда владельцем является пользователь ЕСИА, система-клиент должна направить пользователя на страницу предоставления прав доступа в ЕСИА*(1) (пользователь должен быть предварительно аутентифицирован в ЕСИА или система ЕСИА попросит его пройти идентификацию и аутентификацию).

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

— — идентификатор системы-клиента (мнемоника системы в ЕСИА);

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

— — ссылка, по которой должен быть направлен пользователь после того, как даст разрешение на доступ к ресурсу;

— — область доступа, т.е. запрашиваемые права; например, если система-клиент запрашивает доступ к сведениям о сотрудниках организации, то scope должна иметь значение http://esia.gosuslugi.ru/org_emps (с необходимыми параметрами); если запрашивается scope http://esia.gosuslugi.ru/id_doc*(2) (данные о пользователе), то не нужно в качестве параметра указывать oid этого пользователя;

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

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

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

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

— — значение авторизационного кода;

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

В случае ошибки сервис авторизации вернет в параметре error код ошибки (например, «access_denied») и не перенаправит пользователя по адресу, указанному в redirect_uri. Перечень возможных ошибок приведен в таблице 10.

Таблица 10 — Список ошибок при получении маркеров доступа

Источник

«Методические рекомендации по использованию Единой системы идентификации и аутентификации. Версия 2.84»
(приложение 17 к протоколу заседания Подкомиссии по использованию информационных технологий при предоставлении государственных и муниципальных услуг Правительственной комиссии по использованию информационных технологий для улучшения качества жизни и условий ведения предпринимательской деятельности от 13.05.2016 N 168пр)

Этот документ в некоммерческой версии КонсультантПлюс доступен
по расписанию:

  • по рабочим дням с 20-00 до 24-00 (время московское)
  • в выходные и праздничные дни в любое время

Вы можете заказать документ на e-mail

Форум КриптоПро
 » 
Общие вопросы
 » 
Общие вопросы
 » 
ЕСИА версия 2.90, код авторизации


Offline

foke

 


#1
Оставлено
:

31 мая 2022 г. 22:02:42(UTC)

foke

Статус: Новичок

Группы: Участники

Зарегистрирован: 31.05.2022(UTC)
Сообщений: 1

Здравствуйте.
В версии ЕСИА 2.90 депрекейтнули эндпоинт для получения кода авторизации /aas/oauth2/ac. Новая версия: /aas/oauth2/v2/ac.

Изменилось описание формирования параметра client_secret.

До версии 2.90:

Цитата:

<client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF-
8 от значений четырех параметров HTTP–запроса: scope, timestamp, clientId, state (без
разделителей). <client_secret> должен быть закодирован в формате base64 url safe

Версия 2.90:

Цитата:

<client_secret> — подпись значений пяти параметров в кодировке UTF-8:
client_id, scope, timestamp, state, redirect_uri.
конкатенировать вышеуказанные параметры;
подписать полученную строку с использованием алгоритма подписания data hash с
использованием механизмов КриптоПРО CSP и сертификата информационной
системы;
закодировать полученное значение в URL Safe Base64.

В версии <2.90 с «подпись запроса в формате PKCS#7 detached signature» разобрались, работает.

В версии 2.90 неясно, что такое «подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP»?
Формулировка весьма расплывчатая, на мой взгляд.
Должен ли измениться код формирования подписи?
«data hash» — это название алгоритма?
Есть ли рабочий java-код под эту задачу?

Использование прежнего java-кода формирования подписи параметра client_secret (с учётом прочих обновлений параметров, описанных в инструкции) приводит к ошибке «ESIA-007005: The client is not authorized to request an access token using this method.», что по моему опыту соответствует некорректно сформированному client_secret.

На данный момент сгенерированный url получения кода авторизации выглядит следующим образом:

Цитата:

https://esia-portal1.test.gosuslugi.ru/aas/oauth2/v2/ac
?client_id=MY-SYSTEM
&client_certificate_hash=последовательность-64-символа
&scope=fullname%20gender%20birthdate%20birthplace%20birth_cert_doc%20contacts%20inn%20snils%20residence_doc%20temporary_residence_doc%20id_doc%20temporary_residence_doc
&response_type=code
&access_type=offline
&client_secret=последовательность-4-тысячи-символов
&state=265133f8-0aaf-4c7a-89e2-b50fc6e0318a
&timestamp=2022.05.31+23%3A10%3A39+%2B0400
&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Flogin%2Foauth2%2Fcode%2Fesia

Отредактировано пользователем 31 мая 2022 г. 22:15:29(UTC)
 | Причина: Не указана


Вверх


Offline

saaremaa

 


#2
Оставлено
:

6 июля 2022 г. 13:50:13(UTC)

saaremaa

Статус: Новичок

Группы: Участники

Зарегистрирован: 06.07.2022(UTC)
Сообщений: 6
Российская Федерация

У вас получилось что-нибудь с получением кода авторизации? Тоже зависли на этом моменте и не знаем куда двигаться. Поддержка Минцифры только пересылает отрывки из методички.

Дополнение от 07.07.2022:

Цитата:

К Вашему запросу SCR#2946679 добавлен комментарий:

Добрый день!

По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования:
GOST3411_2012_256withGOST3410_2012_256;
GOST3411_2012_512withGOST3410_2012_512:
GOST3411withGOST3410EL .

Кто добавил: СКУФ Служебный/ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО «РОСТЕЛЕКОМ»

после формирования подписи с помощью GOST3411_2012_256withGOST3410_2012_256 получили корректный client_secret

Библиотеки на языке Golang: https://github.com/Theo730/gogost
Описание: http://www.gogost.cypherpunks.ru/

Отредактировано пользователем 7 июля 2022 г. 13:01:22(UTC)
 | Причина: Не указана


Вверх


Offline

two_oceans

 


#3
Оставлено
:

8 июля 2022 г. 8:06:58(UTC)

two_oceans

Статус: Эксперт

Группы: Участники

Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,599
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 389 раз в 364 постах

Автор: saaremaa Перейти к цитате

По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования:
GOST3411_2012_256withGOST3410_2012_256;
GOST3411_2012_512withGOST3410_2012_512:
GOST3411withGOST3410EL .

Добрый день. Сначала конечно замечание, что не шифрования, а подписания, так как в сообщениях выше процитированы места, где ясно говорится «подпись», «подписать».
1) Если перевести идентификаторы на человекопонятный язык, то это ГОСТ-2012 (256 и 512 бит), ГОСТ-2001. Насчет актуальности последнего весьма сомнительно, так как сертификаты гост-2001 уже должны были все закончиться. Для вышеуказанных идентификаторов нужно на подписание передавать сами данные, а не вычисленный заранее хэш.
2) Если речь про PKCS#7, то там нет проблемы с порядком байтов, все определено в стандарте. Если же речь про RawSignature, то стандарт не определяет порядок байт, может понадобится «переворачивать/отзеркалить» значение хэша и/или подписи (первый байт с последним, второй с предпоследним и т.д) до кодирования BASE64, так как указанные идентификаторы без слова «CryptoPro», что подразумевает порядок байт Big Endian. Обычно достаточно перевернуть значение подписи. В то же время есть идентификаторы гост-2012 со словом «CryptoPro», которые подразумевает порядок байт Little Endian — то есть переворотов не нужно.
3) Важно также не забывать, что URL Safe Base64 не то же самое, что BASE64, нужно заменить ряд символов, имеющих специальное значение в URL.

Что же до указанной ссылки на библиотеку Го, похоже на несертифицированное решение с самостоятельной реализацией криптографических примитивов. Для тестов с тестовыми ключами конечно никто Вам ничего особо не скажет. Используя же несертифицированное решение с гитхаба в продакшене с «боевыми» ключами, Вы принимаете на себя риски возможных штрафов за неправильное обращение со СКЗИ и ключевой информацией. Будьте бдительны, не все работающие решения можно использовать по закону.


Вверх


Offline

forumname

 


#4
Оставлено
:

23 августа 2022 г. 9:44:46(UTC)

forumname

Статус: Новичок

Группы: Участники

Зарегистрирован: 23.08.2022(UTC)
Сообщений: 1

Автор: foke Перейти к цитате

подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP

Я правильно понимаю, что сначала вычисляем hash с помощью алгоритма GOST3411_2012_256, а потом подписываем вычисленное значение алгоритмом GOST3410_2012_256?

Или нужно как-то иначе использовать механизмы КриптоПро CSP?


Вверх


Offline

navrocky

 


#5
Оставлено
:

19 октября 2022 г. 13:52:15(UTC)

navrocky

Статус: Участник

Группы: Участники

Зарегистрирован: 19.10.2022(UTC)
Сообщений: 12
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 2 раз в 2 постах

Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle:

Код:

PrivateKey privateKey = ...;
String joinedString = String.join("", clientId, scope, timeStamp, state, redirectUri);
Signature signer = Signature.getInstance("GOST3411WITHECGOST3410-2012-256", new BouncyCastleProvider());
signer.initSign(privateKey);
signer.update(joinedString.getBytes());
signature = signer.sign();
String clientSecret = Base64.getUrlEncoder().encodeToString(signature);

Отредактировано пользователем 19 октября 2022 г. 13:53:54(UTC)
 | Причина: Не указана


Вверх

thanks 1 пользователь поблагодарил navrocky за этот пост.

JsutUser

оставлено 11.11.2022(UTC)


Offline

EugeneNSK

 


#6
Оставлено
:

19 декабря 2022 г. 11:26:02(UTC)

EugeneNSK

Статус: Участник

Группы: Участники

Зарегистрирован: 25.11.2020(UTC)
Сообщений: 14
Российская Федерация
Откуда: NSK

Сказал(а) «Спасибо»: 3 раз

Автор: navrocky Перейти к цитате

Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle:

Код:

PrivateKey privateKey = ...;
String joinedString = String.join("", clientId, scope, timeStamp, state, redirectUri);
Signature signer = Signature.getInstance("GOST3411WITHECGOST3410-2012-256", new BouncyCastleProvider());
signer.initSign(privateKey);
signer.update(joinedString.getBytes());
signature = signer.sign();
String clientSecret = Base64.getUrlEncoder().encodeToString(signature);

Тоже столкнулся с проблемой формирования client_secret при получении кода доступа (через v2/ac).
Подпись действительно стала сырой.
Приведенный выше код рабочий.

Для JCP/JCSP использую:

Код:

String joinedString = String.join("", clientId, scope, timeStamp, state, redirectUri);
AlgorithmDetails algorithmDetails = new AlgorithmDetails(privateKey.getAlgorithm());
Signature signature = Signature.getInstance(algorithmDetails.getSignAlgorithm(), provider);
signature.initSign(privateKey);
signature.update(joinedString.getBytes());
byte[] result = signature.sign();
String clientSecret = new String(Base64.getUrlEncoder().encode(result), StandardCharsets.UTF_8);


Вверх


Offline

dzibzeev

 


#7
Оставлено
:

29 марта 2023 г. 17:25:28(UTC)

dzibzeev

Статус: Новичок

Группы: Участники

Зарегистрирован: 28.03.2023(UTC)
Сообщений: 1
Российская Федерация

Коллеги!

А у кого-нибудь получилось с использованием cryptcp -signf подписать секрет клиента для второй версии API(v2/ac) ЕСИА?

Вот так мы сейчас создаем подпись для ЕСИА(код на go):

command := exec.Command(s.cmd, «-signf»,
«-der»,
«-strict»,
«-cert»,
«-hashalg», s.hashAlgOID,
«-detached»,
«-thumbprint», s.thumbprint,
«-pin», s.containerPIN,
filename)

С первой версией все прекрасно работает, с v2 не хочет работать. ЕСИА возвращает ошибку ESIA-007053: OAuthErrorEnum.clientSecretWrong


Вверх


Offline

MESHOK

 


#8
Оставлено
:

21 июня 2023 г. 12:25:31(UTC)

MESHOK

Статус: Новичок

Группы: Участники

Зарегистрирован: 21.06.2023(UTC)
Сообщений: 1
Российская Федерация

Находите имя своего ключа: csptest -keys -enum_cont -verifycontext -fqcn
Подписываете строку: csptest -keys -cont ‘\\.\<хранилище>\<имя _контейнера>’ -sign GOST12_256 -in файл_с_данными -out файл_с_данными.sig -keytype exchange
Прочитываете файл в бинарном виде и побайтово его переворачиваете. Например:
Исходные данные: 68 65 6c 6c 6f
Перевернутые данные: 6f 6c 6c 65 68
Перевернутые данные кодируете в base64url — это и есть client_secret


Вверх


Offline

saaremaa

 


#9
Оставлено
:

4 сентября 2023 г. 20:40:58(UTC)

saaremaa

Статус: Новичок

Группы: Участники

Зарегистрирован: 06.07.2022(UTC)
Сообщений: 6
Российская Федерация

Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes…lugi.ru/aas/oauth2/v2/ac ???

По возможности примерами к командной строке. Если есть кусок кода на Golang — это просто будет чудесно.

Все что выше перепробовали — получаем ошибку ESIA-007053.

При этом самописное решение работает, но использовать его нельзя в боевой системе.


Вверх


Offline

Андрей *

 


#10
Оставлено
:

4 сентября 2023 г. 21:44:08(UTC)

Андрей *

Статус: Сотрудник

Группы: Участники

Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,134
Мужчина
Российская Федерация

Сказал «Спасибо»: 460 раз
Поблагодарили: 1950 раз в 1508 постах

Автор: saaremaa Перейти к цитате

Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes…lugi.ru/aas/oauth2/v2/ac ???

По возможности примерами к командной строке. Если есть кусок кода на Golang — это просто будет чудесно.

Все что выше перепробовали — получаем ошибку ESIA-007053.

При этом самописное решение работает, но использовать его нельзя в боевой системе.

а этот ответ с примером команды уже проверили?

Техническую поддержку оказываем тут
Наша база знаний


Вверх

WWW

Пользователи, просматривающие эту тему

Guest (2)

Форум КриптоПро
 » 
Общие вопросы
 » 
Общие вопросы
 » 
ЕСИА версия 2.90, код авторизации

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

We appreciate your report. Unfortunately, a special account is needed in order to sign-in. (account creation requires valid data)

image

If the reporter (or anyone else) can do a more in depth test and provide more information (console logs/errors/screenshots) regarding this issue, feel free to reopen and leave a comment (or you can send us an email with the test account credentials and we will test it on our own).

Suggestions:
• Clear cache/data/cookies, disable Ad-blocker (if available), or use a clean profile and check again
• If there are any changes made to the default settings of the browser (e.g. in about:config), please revert to the default settings

Closing this as incomplete due to a lack of valid credentials.

[qa_20/2023]

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • Ошибка esg шкода
  • Ошибка eutil dll как исправить
  • Ошибка esent 544
  • Ошибка ets мерседес w163
  • Ошибка esent 510

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии