Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
iis-info [2020/07/06 10:21] admin1 [Authentication request] |
iis-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 -._~'' | ||
Строка 106: | Строка 120: | ||
===== Валидация запроса ===== | ===== Валидация запроса ===== | ||
- | При получении запроса на аутентификацию ЕСИА проверит, чтобы все параметры запроса соответствовали стандарту 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**. Информация об ошибке будет представлена в виде параметров. |
Возможны следующие параметры: | Возможны следующие параметры: | ||
Строка 113: | Строка 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. Ставится значение, полученное от клиента. | ||
Строка 132: | Строка 146: | ||
Пример ответа клиента, который перенаправляет браузер пользователя к Authorization endpoint для запроса на аутентификацию: | Пример ответа клиента, который перенаправляет браузер пользователя к Authorization endpoint для запроса на аутентификацию: | ||
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=UTGRtxSHqyGSX1z54iTOBB6Z3WdAMeFv7iYSC6yqx0w | ||
&code_challenge_method=S256 | &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 | + | &redirect_uri=https://client.example.org/cb |
&code_challenge=UTGRtxSHqyGSX1z54iTOBB6Z3WdAMeFv7iYSC6yqx0w | &code_challenge=UTGRtxSHqyGSX1z54iTOBB6Z3WdAMeFv7iYSC6yqx0w | ||
&code_challenge_method=S256 | &code_challenge_method=S256 | ||
Строка 161: | Строка 175: | ||
&state=af0ifjsldkj | &state=af0ifjsldkj | ||
- | Пример ответа ЕСИА при успешной валидации запроса на аутентификацию: | + | Пример ответа ЕСИ при успешной валидации запроса на аутентификацию: |
HTTP/1.1 302 Found | HTTP/1.1 302 Found | ||
Строка 171: | Строка 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** в качестве имени пользователя и пароля соответственно. | ||
Строка 183: | Строка 197: | ||
===== Пример запроса к 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 | &code_verifier=oV0CFtgI2ywyqV6y5Z2gy49stoKn0T2daY_nLvXDeWRNqQeJ | ||
Строка 194: | Строка 208: | ||
===== Валидация запроса ===== | ===== Валидация запроса ===== | ||
- | ЕСИА валидирует запрос следующим образом: | + | ЕСИ валидирует запрос следующим образом: |
- Аутентифицирует клиента по полученным **client_id** и **client_secret**. | - Аутентифицирует клиента по полученным **client_id** и **client_secret**. | ||
Строка 202: | Строка 216: | ||
- | При успешной валидации ЕСИА вернёт **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. | ||
Строка 209: | Строка 223: | ||
При возникновении ошибки, информация о ней вернётся в том же формате, что и при запросе на аутентификацию. | При возникновении ошибки, информация о ней вернётся в том же формате, что и при запросе на аутентификацию. | ||
- | Пример успешного ответа ЕСИА с **ID Token**'ом и **Access Token**'ом: | + | Пример успешного ответа ЕСИ с **ID Token**'ом и **Access Token**'ом: |
HTTP/1.1 200 OK | HTTP/1.1 200 OK | ||
Строка 233: | Строка 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 | ||
Строка 256: | Строка 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" | ||
} | } |