Инструменты пользователя

Инструменты сайта


iis-info

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
iis-info [2020/07/06 09:58] – [PKCE] admin1iis-info [2023/11/13 08:46] (текущий) – admin1
Строка 1: Строка 1:
 //Автор: Владимир Недорослев// //Автор: Владимир Недорослев//
  
-====== Протокол работы ЕСИА ======+====== Протокол работы ЕСИ ======
  
 //Все запросы в данном руководстве разделены построчно для удобства чтения.// //Все запросы в данном руководстве разделены построчно для удобства чтения.//
  
-Данный документ описывает конфигурацию работы ЕСИА.+Данный документ описывает конфигурацию работы ЕСИ.
  
 ====== Discovery document ====== ====== Discovery document ======
  
-Discovery document – это документ в формате JSON, показывающий информацию об ЕСИА -  адреса Endpoint’ов, поддерживаемые scope, какую информацию о пользователе можно выдать и пр.+Discovery document – это документ в формате JSON, показывающий информацию об ЕСИ -  адреса Endpoint’ов, поддерживаемые scope, какую информацию о пользователе можно выдать и пр.
  
 Его можно найти по адресу:  Его можно найти по адресу: 
-  https://{Базовый адрес ЕСИА}/.well-known/openid-configuration  +  https://{Базовый адрес ЕСИ}/.well-known/openid-configuration  
  
 Содержит следующие поля: Содержит следующие поля:
-  * **issuer** – URL идентификатор ЕСИА. ЕСИА использует его для сравнения с полем **iss** в **ID Token**’е. +  * **issuer** – URL идентификатор ЕСИ. ЕСИ использует его для сравнения с полем **iss** в **ID Token**’е. 
-  * **jwks_uri** – URL JWK документа. Содержит ключи, которые клиенты должны использовать при проверке подписей ЕСИА. +  * **jwks_uri** – URL JWK документа. Содержит ключи, которые клиенты должны использовать при проверке подписей ЕСИ. 
   * **authorization_endpoint** – URL адрес Authorization Endpoint’а.   * **authorization_endpoint** – URL адрес Authorization Endpoint’а.
   * **token_endpoint** – URL адрес Token Endpoint’а.   * **token_endpoint** – URL адрес Token Endpoint’а.
Строка 23: Строка 23:
   * **revocation_endpoint** - endpoint отзыва **Access Token**'а.   * **revocation_endpoint** - endpoint отзыва **Access Token**'а.
  
-  * **scopes_supported** – JSON массив, содержащий список всех значений scope, поддерживаемых ЕСИА:+  * **scopes_supported** – JSON массив, содержащий список всех значений scope, поддерживаемых ЕСИ:
     * **openid** – обязательный scope для всех запросов. Означает, что используется технология OpenID Connect.     * **openid** – обязательный scope для всех запросов. Означает, что используется технология OpenID Connect.
     * **profile** – включает в себя:     * **profile** – включает в себя:
Строка 37: Строка 37:
     * **phone** – включает в себя **phone** и **phone_verified**.     * **phone** – включает в себя **phone** и **phone_verified**.
     * **offline_access** – нужно ли получение Refresh Token'а.     * **offline_access** – нужно ли получение Refresh Token'а.
-    * **organizations** - ИНН организаций (юридических лиц), в которых состоит пользователь.+    * **device_api** - доступ к API для мобильного приложения. 
 +    * **IdentityServerAPI** - обязательный параметр для доступа к ЕСИ посредствам API (Обязателен для мобильных приложений, и сервисов которые используют API "ЕСИ"). 
 +    * **PEP_disable** - позволяет отключить вход через обычную электронную подпись клиенту. 
 +    * **signature_api** - доступ к подписанию. 
 +    * **TouchIdApi** - доступ к API для верификации человека по отпечатку пальца. 
 +    * **FaceIdApi** - доступ к API для верификации человека по лицу. 
 +    * **PersonalCabinetApi** - доступ к API личного кабинета мобильному приложению. 
 +    * **oepRegister** - доступ к API для удаленного получения ОЭП. 
 +    * **pki_srs_kg_create_user** - API необходимое для создание и синхронизированния пользователей. 
 +    * **organization_tin** – ИНН юридического лица, от имени которого заходит пользователь. 
 +      * **position_name** – должность пользователя в юридическом лице, указанного в organization_tin. 
 +    * **QRdisable** - значение отключает возможность авторизации в системе через QR-код (при включенной функции не отображается вкладка «QR» в ЕСИ) 
 +    * **CdsOtpApi** - доступ к api для получения otp с ОЭП 
 +    * **IisUserInfo** - доступ к информации о пользователе еси api
  
-  * **response_types_supported** – JSON массив, содержащий список значений **response_type**, поддерживаемых ЕСИА.+  * **response_types_supported** – JSON массив, содержащий список значений **response_type**, поддерживаемых ЕСИ.
   * **response_modes_supported** – JSON массив, содержащий список поддерживаемх **response_mode**, основанный на OAuth 2.0.   * **response_modes_supported** – JSON массив, содержащий список поддерживаемх **response_mode**, основанный на OAuth 2.0.
  
-  * **claims_supported** – JSON массив, содержащий список данных, которые может выдавать ЕСИА: +  * **claims_supported** – JSON массив, содержащий список данных, которые может выдавать ЕСИ: 
-    * **sub** – идентификатор пользователя ЕСИА.+    * **sub** – идентификатор пользователя ЕСИ.
     * **pin** – персональный номер.     * **pin** – персональный номер.
     * **family_name** – Фамилия.     * **family_name** – Фамилия.
Строка 56: Строка 69:
     * **phone_number** – мобильный телефон в формате **E164**.     * **phone_number** – мобильный телефон в формате **E164**.
     * **phone_number_verified** – подтвержден ли телефон (true/false).        * **phone_number_verified** – подтвержден ли телефон (true/false).   
-    * **organizations** - массив, содержащий ИНН организаций (юридических лиц), в которых состоит пользователь.+    * **organization_tin** – ИНН юридического лица, от имени которого заходит пользователь. 
 +    * **position_name** – должность пользователя в юридическом лице, указанного в organization_tin.
  
  
Строка 62: Строка 76:
 ====== ID Token ====== ====== ID Token ======
  
-Для аутентификации пользователя OpenID Connect вводит понятие **ID Token**’а. Это структура данных, которая хранит информацию об аутентификации пользователя ЕСИА. Представляется в виде JSON Web Token (JWT). +Для аутентификации пользователя OpenID Connect вводит понятие **ID Token**’а. Это структура данных, которая хранит информацию об аутентификации пользователя ЕСИ. Представляется в виде JSON Web Token (JWT). 
-ЕСИА выдаёт **ID Token** со следующими полями: +ЕСИ выдаёт **ID Token** со следующими полями: 
-  * **iss** – (Issuer) идентификатор ЕСИА. Это регистрозависимый URL, использующий https, содержащий схему и хост. Может содержать номер порта, путь. Не содержит параметров запроса. +  * **iss** – (Issuer) идентификатор ЕСИ. Это регистрозависимый URL, использующий https, содержащий схему и хост. Может содержать номер порта, путь. Не содержит параметров запроса. 
-  * **sub** – (Subject) идентификатор пользователя. Уникальный, никогда неменяющийся идентификатор пользователя, который хранит ЕСИА. Например, ''24400320''. Является регистрозавсимой строкой, длиной не более 255 ASCII символов.+  * **sub** – (Subject) идентификатор пользователя. Уникальный, никогда неменяющийся идентификатор пользователя, который хранит ЕСИ. Например, ''24400320''. Является регистрозавсимой строкой, длиной не более 255 ASCII символов.
   * **aud** – (Audience) массив строк, содержащий идентификаторы клиентов (client_id), которым предназначен данный ID Token.    * **aud** – (Audience) массив строк, содержащий идентификаторы клиентов (client_id), которым предназначен данный ID Token. 
   * **exp** – (Expiration) срок действия **ID Token**'a. Время, после которого **ID Token** не является валидным и не должен обрабатываться. При валидации **ID Token**'а текущее время должно быть до времени, указанного в этом поле. Значение представляется в виде JSON числа, показывающий количество секунд прошедших с 1970-01-01T0:0:0Z согласно UTC стандарту (см. [[https://tools.ietf.org/html/rfc3339|RFC3339]] для подробной информации насчёт времени в UTC).   * **exp** – (Expiration) срок действия **ID Token**'a. Время, после которого **ID Token** не является валидным и не должен обрабатываться. При валидации **ID Token**'а текущее время должно быть до времени, указанного в этом поле. Значение представляется в виде JSON числа, показывающий количество секунд прошедших с 1970-01-01T0:0:0Z согласно UTC стандарту (см. [[https://tools.ietf.org/html/rfc3339|RFC3339]] для подробной информации насчёт времени в UTC).
Строка 71: Строка 85:
   * **auth_time** – (Authentication time) время, когда была произведена аутентификация пользователя. Значение представляется в виде JSON числа, показывающий количество секунд прошедших с 1970-01-01T0:0:0Z согласно UTC стандарту.   * **auth_time** – (Authentication time) время, когда была произведена аутентификация пользователя. Значение представляется в виде JSON числа, показывающий количество секунд прошедших с 1970-01-01T0:0:0Z согласно UTC стандарту.
   * **nonce** – регистрозависимая строка, ассоциирующая сессию клиента с **ID Token**’ом, чтобы избежать атак повторного воспроизведения (replay attacks). Клиенты должны проверять, чтобы это значение было равно значению **nonce** в authentication request'e.   * **nonce** – регистрозависимая строка, ассоциирующая сессию клиента с **ID Token**’ом, чтобы избежать атак повторного воспроизведения (replay attacks). Клиенты должны проверять, чтобы это значение было равно значению **nonce** в authentication request'e.
-  * **amr** – (Authentication methods references) JSON массив строк, хранящий методы аутентификации, использованные при аутентификации пользователя. Например, может покаазть, что при аутентификации был использован пароль и OTP.+  * **amr** – (Authentication methods references) JSON массив строк, хранящий методы аутентификации, использованные при аутентификации пользователя. Например, может покаазть, что при аутентификации был использован пароль и OTP. Возможные значения: **sc** (Паспорт), **pwd** (Логин/пароль), **cds** (Облачная ЭП). 
   * **at_hash** – хэш Access Token’а. Хэш вычисляется по левой половине хэшей октетов Access Token“a в формате ASCII. Примененный хэш-алгоритм указан в головной части (header) **ID Token**’a в значении ''alg''.    * **at_hash** – хэш Access Token’а. Хэш вычисляется по левой половине хэшей октетов Access Token“a в формате ASCII. Примененный хэш-алгоритм указан в головной части (header) **ID Token**’a в значении ''alg''. 
  
Строка 77: Строка 91:
 ====== Authentication request ====== ====== Authentication request ======
  
-Authentication request (Запрос на аутентификацию) — это GET или POST запрос клиента в Authorization Endpoint, который требует, чтобы пользователь аутентифицировался в ЕСИА. +**Authentication request** (Запрос на аутентификацию) — это GET или POST запрос клиента в Authorization Endpoint, который требует, чтобы пользователь аутентифицировался в ЕСИ. 
  
 В случае GET запроса, параметры запроса указывается непосредственно в самом запросе.\\ В случае GET запроса, параметры запроса указывается непосредственно в самом запросе.\\
Строка 84: Строка 98:
  
   * **scope** (Обязательный) – разделенные пробелом значения, показывающие, какие данные необходимы клиенту. **Обязательно должно содержать значение ''openid''.**   * **scope** (Обязательный) – разделенные пробелом значения, показывающие, какие данные необходимы клиенту. **Обязательно должно содержать значение ''openid''.**
-  * **response_type** (Обязательный) – определяет способ процесса авторизации. В случае с ЕСИА используется значение ''**code**''.  +  * **response_type** (Обязательный) – определяет способ процесса авторизации. В случае с ЕСИ используется значение ''**code**''.  
-  * **client_id** (Обязательный) – идентификатор клиента, выданный ЕСИА. +  * **client_id** (Обязательный) – идентификатор клиента, выданный ЕСИ. 
-  * **redirect_uri** (Обязательный) – URI, куда будет отправлен ответ ЕСИА после того, как пользователь пройдёт аутентификацию в ЕСИА. Он задаётся вместе с ''client_id'' при регистрации клиента.+  * **redirect_uri** (Обязательный) – URI, куда будет отправлен ответ ЕСИ после того, как пользователь пройдёт аутентификацию в ЕСИ. Он задаётся вместе с ''client_id'' при регистрации клиента.
   * **nonce** (Опциональный) – регистрозависимая строка ассоциирующая сессию клиента с **ID Token**’ом, чтобы избежать атак повторного воспроизведения (replay attacks).   * **nonce** (Опциональный) – регистрозависимая строка ассоциирующая сессию клиента с **ID Token**’ом, чтобы избежать атак повторного воспроизведения (replay attacks).
   * **state** (Опциональный) – значение для сохраниния состояние между запросом и callback’ом. Обычно для борьбы с CSRF это значение криптографически привязывается к куки браузера.      * **state** (Опциональный) – значение для сохраниния состояние между запросом и callback’ом. Обычно для борьбы с CSRF это значение криптографически привязывается к куки браузера.   
Строка 93: Строка 107:
 ===== PKCE ===== ===== PKCE =====
  
-Так как ЕСИА использует **Authorization Code flow with PKCE** ([[https://tools.ietf.org/html/rfc7636|RFC7636]]), при запросе на авторизацию необходимо сделать следующее:+Так как ЕСИ использует **Authorization Code flow with PKCE** ([[https://tools.ietf.org/html/rfc7636|RFC7636]]), при запросе на аутентификацию необходимо дополнительно сделать следующее:
  
- * Сформировать **code verifier** - криптографически случайная строка размером от 43 до 128 символов, и состоящая из символов a-z, A-Z, 0-9 -._~ +  * Сформировать и сохранить **code_verifier** (он ещё понадобится при запросе на получение токенов) - криптографически случайная строка размером от 43 до 128 символов, и состоящая из символов ''a-z A-Z 0-9 -._~'' 
- * Сформировать **code_challenge** следующим образом:+  * Сформировать **code_challenge** следующим образом:
  
   base64url(sha256(code_verifier))   base64url(sha256(code_verifier))
 + 
 +  * Добавить в запрос следующие параметры:
  
- * Добавить в запрос следующий параметр: +  &code_challenge={сформированный code_challenge}
   code_challenge_method=S256   code_challenge_method=S256
 ===== Валидация запроса ===== ===== Валидация запроса =====
  
-При получении запроса на аутентификацию ЕСИА проверит, чтобы все параметры запроса соответствовали стандарту OAuth 2.0 и OpenId Connect. Подразумевается наличие обязательных параметров **scope**, **response_type**,  **client_id**, **redirect_uri**. +При получении запроса на аутентификацию ЕСИ проверит, чтобы все параметры запроса соответствовали стандарту OAuth 2.0 и OpenId Connect. Подразумевается наличие обязательных параметров **scope**, **response_type**,  **client_id**, **redirect_uri**. 
-В случае, если запрос составлен не верно, ЕСИА вернёт ошибку на указанный **redirect_uri**. Информация об ошибке будет представлена в виде параметров.+В случае, если запрос составлен не верно, ЕСИ вернёт ошибку на указанный **redirect_uri**. Информация об ошибке будет представлена в виде параметров.
  
 Возможны следующие параметры: Возможны следующие параметры:
Строка 112: Строка 127:
     * **invalid_request** – неправильный запрос. Возникает, если в запросе отсутствует обязательный параметр, запрос содержит неправильное значение параметра, включает в себя одинаковый параметр более одного раза и пр.     * **invalid_request** – неправильный запрос. Возникает, если в запросе отсутствует обязательный параметр, запрос содержит неправильное значение параметра, включает в себя одинаковый параметр более одного раза и пр.
     * **unauthorized_client** – неавторизованный клиент. Клиент не авторизован и не может получить авторизационный код.     * **unauthorized_client** – неавторизованный клиент. Клиент не авторизован и не может получить авторизационный код.
-    * **access_denied** – отказано в доступе. Пользователь либо ЕСИА отколнили запрос. +    * **access_denied** – отказано в доступе. Пользователь либо ЕСИ отколнили запрос. 
-    * **unsupported_response_type** – неподдерживаемый возвращаемый тип. ЕСИА не поддерживает получение авторизационного кода указанным методом. +    * **unsupported_response_type** – неподдерживаемый возвращаемый тип. ЕСИ не поддерживает получение авторизационного кода указанным методом. 
     * **invalid_scope** – неправильный scope. Запрашиваемое(-ые) значения scope неверны, неизвестны, либо составлены неправильно.     * **invalid_scope** – неправильный scope. Запрашиваемое(-ые) значения scope неверны, неизвестны, либо составлены неправильно.
-    * **server_error** – ошибка сервера. Ошибка со стороны ЕСИА, которая не позволяет обработать запрос. +    * **server_error** – ошибка сервера. Ошибка со стороны ЕСИ, которая не позволяет обработать запрос. 
-    * **temporarily_unavailable** – временно недоступно. В данный момент ЕСИА не может обработать запрос из-за перегрузки либо технических работах на сервере.+    * **temporarily_unavailable** – временно недоступно. В данный момент ЕСИ не может обработать запрос из-за перегрузки либо технических работах на сервере.
     * **invalid_request_uri** – неправильный **redirect_uri**. **redirect_uri** возвращает ошибку при перенаправлении либо содержит неправильные данные.     * **invalid_request_uri** – неправильный **redirect_uri**. **redirect_uri** возвращает ошибку при перенаправлении либо содержит неправильные данные.
-  * **error_description** (Опциональный) – описание ошибки. Описание ошибки понятное человеку. +  * **error_description** (Опциональный) – описание ошибки понятное человеку. 
-  * **error_uri** (Опциональный) – URI ошибки. URI веб-страницы, на которой находится дополнительная информация об ошибке.+  * **error_uri** (Опциональный) – URI веб-страницы, на которой находится дополнительная информация об ошибке.
   * **state** (Опциональный) – состояние согласно OAuth 2.0. Ставится значение, полученное от клиента.   * **state** (Опциональный) – состояние согласно OAuth 2.0. Ставится значение, полученное от клиента.
  
Строка 130: Строка 145:
  
 Пример ответа клиента, который перенаправляет браузер пользователя к Authorization endpoint для запроса на аутентификацию: Пример ответа клиента, который перенаправляет браузер пользователя к Authorization endpoint для запроса на аутентификацию:
-  HTTP/1.1 302 Found +  302 Found 
-  Location: https://{базовый-адрес-ЕСИА}/connect/authorize?+  Location: https://{базовый-адрес-ЕСИ}/connect/authorize?
     response_type=code     response_type=code
     &scope=openid%20profile%20email     &scope=openid%20profile%20email
     &client_id=s6BhdRkqt3     &client_id=s6BhdRkqt3
     &state=af0ifjsldkj     &state=af0ifjsldkj
-    &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb+    &redirect_uri=https://client.example.org/cb 
 +    &code_challenge=UTGRtxSHqyGSX1z54iTOBB6Z3WdAMeFv7iYSC6yqx0w 
 +    &code_challenge_method=S256
  
-Пример запроса, который отправит браузер пользователя к ЕСИА в ответ на redirect ответ клиента:+Пример запроса, который отправит браузер пользователя к ЕСИ в ответ на redirect ответ клиента:
  
-  GET https://{базовый-адрес-ЕСИА}/connect/authorize?+  GET https://{базовый-адрес-ЕСИ}/connect/authorize?
     response_type=code     response_type=code
     &scope=openid%20profile%20email     &scope=openid%20profile%20email
     &client_id=s6BhdRkqt3     &client_id=s6BhdRkqt3
     &state=af0ifjsldkj     &state=af0ifjsldkj
-    &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb HTTP/1.1+    &redirect_uri=https://client.example.org/cb  
 +    &code_challenge=UTGRtxSHqyGSX1z54iTOBB6Z3WdAMeFv7iYSC6yqx0w 
 +    &code_challenge_method=S256
    
  
Строка 156: Строка 175:
     &state=af0ifjsldkj     &state=af0ifjsldkj
  
-Пример ответа ЕСИА при успешной валидации запроса на аутентификацию:+Пример ответа ЕСИ при успешной валидации запроса на аутентификацию:
  
   HTTP/1.1 302 Found   HTTP/1.1 302 Found
Строка 166: Строка 185:
    
  
-Для получения ID Token’а и Access Token’а клиент должен отправить POST запрос в Token Endpoint ЕСИА, предоставив полученный авторизационный код (**code**), свой **client_id**, **client_secret** и **redirect_uri**.+Для получения ID Token’а и Access Token’а клиент должен отправить POST запрос в Token Endpoint ЕСИ, предоставив полученный авторизационный код (**code**), свой **client_id**, **client_secret** и **redirect_uri**.
  
 **client_id** и **client_secret** должны находится в заголовке запроса **Authorization** типа **Basic** в качестве имени пользователя и пароля соответственно. **client_id** и **client_secret** должны находится в заголовке запроса **Authorization** типа **Basic** в качестве имени пользователя и пароля соответственно.
Строка 174: Строка 193:
   &code={ваш авторизационный код}   &code={ваш авторизационный код}
   &redirect_uri={ваш redirect_uri}   &redirect_uri={ваш redirect_uri}
 +  &code_verifier={code_verifier, который вы сгенерировали на этапе Authentication request}
  
 ===== Пример запроса к Token Endpoint ===== ===== Пример запроса к Token Endpoint =====
  
-  POST https://{базовый-адрес-ЕСИА}/connect/token+  POST https://{базовый-адрес-ЕСИ}/connect/token
   Content-Type: application/x-www-form-urlencoded   Content-Type: application/x-www-form-urlencoded
   Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW   Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
      
   grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA   grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
-  &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb+  &redirect_uri=https://client.example.org/cb 
 +  &code_verifier=oV0CFtgI2ywyqV6y5Z2gy49stoKn0T2daY_nLvXDeWRNqQeJ
  
  
 ===== Валидация запроса ===== ===== Валидация запроса =====
  
-ЕСИА валидирует запрос следующим образом:+ЕСИ валидирует запрос следующим образом:
  
   - Аутентифицирует клиента по полученным **client_id** и **client_secret**.   - Аутентифицирует клиента по полученным **client_id** и **client_secret**.
   - Проверит авторизационный код. Действительно ли он был выдан данному клиенту. Правильный ли он, не был ли он использован до этого, был ли выдан в результате запроса на аутентификацию.   - Проверит авторизационный код. Действительно ли он был выдан данному клиенту. Правильный ли он, не был ли он использован до этого, был ли выдан в результате запроса на аутентификацию.
   - Сравнит полученный **redirect_uri** со значением **redirect_uri** полученном при запроса на аутентификацию.   - Сравнит полученный **redirect_uri** со значением **redirect_uri** полученном при запроса на аутентификацию.
 +  - Сформирует **code_challenge** из полученнго **code_verifier** и сравнит с ранее полученным **code_challenge** при запросе на аутентификацию.
  
  
-При успешной валидации ЕСИА вернёт **Id Token** и **Access Token** в ответ в формате ''application/json'', а также следующие поля:+При успешной валидации ЕСИ вернёт **Id Token** и **Access Token** в ответ в формате ''application/json'', а также следующие поля:
   * **token_type** – по стандарту всегда имеет значение ''Bearer''.   * **token_type** – по стандарту всегда имеет значение ''Bearer''.
   * **refresh_token** – токен, позволяющий получить новый access token после того, как он истёк. Выдаётся в случае, если было указано значение scope ''offline_access'' во время authentication request.   * **refresh_token** – токен, позволяющий получить новый access token после того, как он истёк. Выдаётся в случае, если было указано значение scope ''offline_access'' во время authentication request.
Строка 201: Строка 223:
 При возникновении ошибки, информация о ней вернётся в том же формате, что и при запросе на аутентификацию. При возникновении ошибки, информация о ней вернётся в том же формате, что и при запросе на аутентификацию.
  
-Пример успешного ответа ЕСИА с **ID Token**'ом и **Access Token**'ом:+Пример успешного ответа ЕСИ с **ID Token**'ом и **Access Token**'ом:
  
   HTTP/1.1 200 OK   HTTP/1.1 200 OK
Строка 225: Строка 247:
 Пример запроса: Пример запроса:
  
-  GET https://{базовый-адрес-ЕСИА}connect/userinfo +  GET https://{базовый-адрес-ЕСИ}connect/userinfo 
   Host: server.example.com   Host: server.example.com
   Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImNhZzBDYk1UYzh4d293MDVaVDRpRFEiLCJ0eXAiOiJhdCtqd3QifQ.eyJuYmYiOjE1ODQ0NDExNTAsImV4cCI6MTU4NDQ0NDc1MCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo3MDAwIiwiYXVkIjoibm90aWZpY2F0aW9uX2FwaSIsImNsaWVudF9pZCI6Im12Yy1jbGllbnQiLCJzdWIiOiIxMDAwMDAwIiwiYXV0aF90aW1lIjoxNTg0NDQxMTQ4LCJpZHAiOiJsb2NhbCIsInNjb3BlIjpbInByb2ZpbGUiLCJvcGVuaWQiLCJlbWFpbCIsInBob25lIiwibm90aWZpY2F0aW9uX2FwaSJdLCJhbXIiOlsibWZhIl19.KC-_Ua4k3rbRAVEkWF_NffnlGqInfSsSiD-zEk5dmLn5a7PAiiptDNqGpmSJbMhl2rbyFqTrBtUDxmkSbXALDWTAvuRqagTkEvlu2uUpJSQ9c_aYLsW4QdUdR2uAKliRlNAQFygWkN4xsXPSaB6E0B71YKmQcYutssBBcP3tBu_E4EDMW30Vky_osQeB8moHkPthMxXkpBxLSKieY77FOQDJzbaVmzrm9wmIor7OuwFtp0b9yKdpAsg9cGbgcmqW5pYNSa2GdhEzYrf6tkfF7tyuw-LYbJjCklfPwIQNk-RT1TicSwdZzsBWoAS8pWiBfwN4MAaA6TP4O6LA7hcdZw   Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImNhZzBDYk1UYzh4d293MDVaVDRpRFEiLCJ0eXAiOiJhdCtqd3QifQ.eyJuYmYiOjE1ODQ0NDExNTAsImV4cCI6MTU4NDQ0NDc1MCwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo3MDAwIiwiYXVkIjoibm90aWZpY2F0aW9uX2FwaSIsImNsaWVudF9pZCI6Im12Yy1jbGllbnQiLCJzdWIiOiIxMDAwMDAwIiwiYXV0aF90aW1lIjoxNTg0NDQxMTQ4LCJpZHAiOiJsb2NhbCIsInNjb3BlIjpbInByb2ZpbGUiLCJvcGVuaWQiLCJlbWFpbCIsInBob25lIiwibm90aWZpY2F0aW9uX2FwaSJdLCJhbXIiOlsibWZhIl19.KC-_Ua4k3rbRAVEkWF_NffnlGqInfSsSiD-zEk5dmLn5a7PAiiptDNqGpmSJbMhl2rbyFqTrBtUDxmkSbXALDWTAvuRqagTkEvlu2uUpJSQ9c_aYLsW4QdUdR2uAKliRlNAQFygWkN4xsXPSaB6E0B71YKmQcYutssBBcP3tBu_E4EDMW30Vky_osQeB8moHkPthMxXkpBxLSKieY77FOQDJzbaVmzrm9wmIor7OuwFtp0b9yKdpAsg9cGbgcmqW5pYNSa2GdhEzYrf6tkfF7tyuw-LYbJjCklfPwIQNk-RT1TicSwdZzsBWoAS8pWiBfwN4MAaA6TP4O6LA7hcdZw
      
      
-Ответ от ЕСИА:+Ответ от ЕСИ:
  
 +Если пользователь заходит как физическое лицо:
   HTTP/1.1 200 OK   HTTP/1.1 200 OK
   Content-type: application/json   Content-type: application/json
Строка 248: Строка 271:
     "phone_number":"+996000123456",     "phone_number":"+996000123456",
     "phone_number_verified":"True"     "phone_number_verified":"True"
 +  }
 +
 +Если пользователь заходит как юридическое лицо:
 +  HTTP/1.1 200 OK
 +  Content-Type: application/json
 +  {
 +     "sub": "1000000",
 +     "organization_tin": "ОсОО \"/Компания\"",
 +     "position_name": "Директор",
 +     "pin":"20101199012345",
 +     "citizenship":"KGZ",
 +     "family_name":"Андреев",
 +     "given_name":"Андрей",
 +     "middle_name":"Андреевич",
 +     "name":"Андреев Андрей Андреевич",
 +     "gender":"male",
 +     "birthdate":"1990-01-01",
 +     "email":"some.email@gmail.com",
 +     "email_verified":"True",
 +     "phone_number":"+996000123456",
 +     "phone_number_verified":"True"
   }   }
iis-info.1594029486.txt.gz · Последнее изменение: — admin1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki