Содержание
- Получение операторского маркера доступа для управления пользователями
- Инициация аутентификации
- Получение кода авторизации
- Получение операторского маркера доступа
- Получение делегирующего маркера доступа
- Приложение В. Сервисы ЕСИА, основанные на протоколе 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 | |
|
Адрес электронной почты пользователя | 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:actor=»http://smev.gosuslugi.ru/actors/smev«> следует указывать действующий сертификат ИС, которая осуществляет вызов сервиса10.
Запрос
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 PQGDIb+BJA== Electronic system identification and authentication Electronic system identification and authentication 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 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==
Electronic system identification and authentication
Electronic system identification and authentication
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 |
Содержание
- Получение операторского маркера доступа для управления пользователями
- Инициация аутентификации
- Получение кода авторизации
- Получение операторского маркера доступа
- Получение делегирующего маркера доступа
- Приложение В. Сервисы ЕСИА, основанные на протоколе 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, код авторизации
foke |
|
Статус: Новичок Группы: Участники
|
Здравствуйте. Изменилось описание формирования параметра client_secret. До версии 2.90: Цитата: <client_secret> – подпись запроса в формате PKCS#7 detached signature в кодировке UTF- Версия 2.90: Цитата: <client_secret> — подпись значений пяти параметров в кодировке UTF-8: В версии <2.90 с «подпись запроса в формате PKCS#7 detached signature» разобрались, работает. В версии 2.90 неясно, что такое «подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP»? Использование прежнего 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 Отредактировано пользователем 31 мая 2022 г. 22:15:29(UTC) |
|
|
saaremaa |
|
Статус: Новичок Группы: Участники
|
У вас получилось что-нибудь с получением кода авторизации? Тоже зависли на этом моменте и не знаем куда двигаться. Поддержка Минцифры только пересылает отрывки из методички. Дополнение от 07.07.2022: Цитата: К Вашему запросу SCR#2946679 добавлен комментарий: Добрый день! По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования: Кто добавил: СКУФ Служебный/ПУБЛИЧНОЕ АКЦИОНЕРНОЕ ОБЩЕСТВО «РОСТЕЛЕКОМ» после формирования подписи с помощью GOST3411_2012_256withGOST3410_2012_256 получили корректный client_secret Библиотеки на языке Golang: https://github.com/Theo730/gogost Отредактировано пользователем 7 июля 2022 г. 13:01:22(UTC) |
|
|
two_oceans |
|
Статус: Эксперт Группы: Участники Сказал(а) «Спасибо»: 110 раз |
Автор: saaremaa По Вашему обращению сообщаем, что при формировании client_secret необходимо использовать следующие алгоритмы шифрования: Добрый день. Сначала конечно замечание, что не шифрования, а подписания, так как в сообщениях выше процитированы места, где ясно говорится «подпись», «подписать». Что же до указанной ссылки на библиотеку Го, похоже на несертифицированное решение с самостоятельной реализацией криптографических примитивов. Для тестов с тестовыми ключами конечно никто Вам ничего особо не скажет. Используя же несертифицированное решение с гитхаба в продакшене с «боевыми» ключами, Вы принимаете на себя риски возможных штрафов за неправильное обращение со СКЗИ и ключевой информацией. Будьте бдительны, не все работающие решения можно использовать по закону. |
|
|
forumname |
|
Статус: Новичок Группы: Участники
|
Автор: foke подписать полученную строку с использованием алгоритма подписания data hash с использованием механизмов КриптоПРО CSP Я правильно понимаю, что сначала вычисляем hash с помощью алгоритма GOST3411_2012_256, а потом подписываем вычисленное значение алгоритмом GOST3410_2012_256? Или нужно как-то иначе использовать механизмы КриптоПро CSP? |
|
|
navrocky |
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 2 раз |
Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle: Код:
Отредактировано пользователем 19 октября 2022 г. 13:53:54(UTC) |
|
|
|
JsutUser
оставлено 11.11.2022(UTC) |
EugeneNSK |
|
Статус: Участник Группы: Участники Сказал(а) «Спасибо»: 3 раз |
Автор: navrocky Вот рабочий код на Java для формирования client_secret с использованием крипто-провайдера BouncyCastle: Код:
Тоже столкнулся с проблемой формирования client_secret при получении кода доступа (через v2/ac). Для JCP/JCSP использую: Код:
|
|
|
dzibzeev |
|
Статус: Новичок Группы: Участники
|
Коллеги! А у кого-нибудь получилось с использованием cryptcp -signf подписать секрет клиента для второй версии API(v2/ac) ЕСИА? Вот так мы сейчас создаем подпись для ЕСИА(код на go): command := exec.Command(s.cmd, «-signf», С первой версией все прекрасно работает, с v2 не хочет работать. ЕСИА возвращает ошибку ESIA-007053: OAuthErrorEnum.clientSecretWrong |
|
|
MESHOK |
|
Статус: Новичок Группы: Участники
|
Находите имя своего ключа: csptest -keys -enum_cont -verifycontext -fqcn |
|
|
saaremaa |
|
Статус: Новичок Группы: Участники
|
Коллеги, поделитесь решением. Как подписать через КриптоПро строку client_secret для получения авторизационного кода через https://esia-portal1.tes…lugi.ru/aas/oauth2/v2/ac ??? По возможности примерами к командной строке. Если есть кусок кода на Golang — это просто будет чудесно. Все что выше перепробовали — получаем ошибку ESIA-007053. При этом самописное решение работает, но использовать его нельзя в боевой системе. |
|
|
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 460 раз |
Автор: 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)
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]