Авторизация
Запрос кода авторизации
Данная операция выполняется в качестве первой операции в процессе сквозной авторизации. Партнерский сервис НЕ ДОЛЖЕН вызывать операцию в рамках взаимодействия server-to-server, а просто выполнить выполнить перенаправление сессии браузера в которой работает пользователь на указанный URL с передачей всех необходимых параметровПараметры
| Наименование | Описание |
|---|---|
response_type
* |
Тип запроса. Значение должно быть всегда code.
Это ограничение согласно требованию по обеспечению безопасности, разрешающее использовать исключительно AuthCode Flow |
scope
* |
Объем прав, выдаваемых партнерскому сервису при предоставлении токена.
Значение либо openid (если не обговорено отдельно), либо к openid добавляется через пробел наименование дополнительной области сведений (по договоренности). |
client_id
* |
Идентификатор партнерского сервиса, полученный при регистрации. |
redirect_uri
* |
URL-encoded строка, содержащая URL на который будет перенаправлен пользователь после завершения процесса авторизации.
Этот URL должен совпадать (по маске) со значением, указанным при регистрации сервиса |
state
* |
Параметр используемый для хранения в сериализованном виде контекста(состояния) партнерского сервиса
(например, набора параметров идентифицирующих запрос авторизации).
В том числе используется для предотвращения CSRF-атак.
В случае если хранение состояния не требуется, партнерский сервис должен обспечить генерацию произвольной уникальной строки state
для данного запроса |
nonce
* |
Это значение используется для защиты от атак с повторением токенов (replay attack) .
Значение, указанное в запросе должно соответствовать nonce значению, возвращаемому в составе ID Token.
Значение nonce должно быть уникальным в сеансе пользователя и сложным для угадывания |
Ответы
| HTTP Код | Описание |
| 302 |
В случае успешного выполнени авторизации пользователя сессия браузера будет перенаправлена
по адресу, указанному в redirect_uri к URL которого будут добавлены следующие параметры в адресной строке
https://seeneco-partner-service.ru/oauth/api/client?code=abcd-1234-fegh&state=some-complex-client-state&nonce=qwert-12313-yuio
Партнерский сервис должен выполнить следующие проверки на своей стороне при получении данного запроса
code на токен. |
| 400 |
Получен некорректный запрос. Данный ответ возвращается в одном из следующих случаев
|
| 500 |
Внутренняя ошибка сервера. Подробная информация в разделе
Обработка общих ошибок |
Получение OAuth токена
Данная операция позволяет получить токен доступа (access token) в обмен на один из следующих артефактов- Код авторизации, полученный в рамках процесса сквозной авторизации.
- Refresh_token, полученный вместе с access_token ранее при вызове этого API
Параметры
| Наименование | Описание |
|---|---|
grant_type
* |
Тип разрешения на основании которого производитя выдача токена.
|
client_id
* |
Идентификатор партнерского сервиса, полученный при регистрации. |
client_secret
* |
Секретный ключ партнерского сервиса, полученный при регистрации. |
code |
Необходимо передавать этот параметр только в случае grant_type = authorization_code
Авторизационный код, полученный в результате запроса авторизации, направленного по адресу /authorize |
redirect_uri |
Необходимо передавать этот параметр только в случае grant_type = authorization_code
URL-encoded строка, содержащая URL на который будет перенаправлен пользователь после завершения процесса авторизации.
Этот URL должен совпадать (по маске) со значением, указанным при регистрации сервиса |
refresh_token |
Необходимо передавать этот параметр только в случае grant_type = refresh_token
Значение refresh_token полученное в ответ на предыдущий запрос токена. |
Ответы
| HTTP Код | Описание |
| 200 |
Успешное завершение операции. В ответе содержится набор токенов, которые могут быть использованы для работы с API
Ответ представлен в формате объекта Ответ на запрос Access Token
Пример ответа
{
"token_type": "Bearer",
"expires_in": 3600,
"id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJ0ZXN0LWNsaWVudCIsInN1YiI6IjEwMDAwIiwiaXNzIjoiaHR0cHM6Ly9zZWVuZWNvLmNvbSIsImV4cCI6MTU5NjE4NTA3NywiaWF0IjoxNTY0NjQ5MDc3fQ.Q-ZEMHjYV2oagjl3uMWUam_LxGpIIRZq9f7qPKMXsbc",
"access_token": "jLu0sjZI34REkJa0OpHJNfMwvJqnSCaodn9Gf94akM7H9S02KrNG65rZIiD3cEIhE8kzE1CQlzjgG96sUlzdOJO3D8tsBqjf0LulmOMC3Ab0vGYwNETNBaKuzs9icmEWvcEvJ36tAXP9xCRJp9bliKJwKBAWajgCN6kedN92DwKC8nIkBw4BGiw46IFzgiKCnIVc23nSc3n10gpQpNOqjC1wnhLT7MuXQQINKH13pv1QvYVdKphJ78H58BZ854n5",
"refresh_token": "qWdPk6WeSZWxqRyEzSf7aFb6I3PGELo1MUwub6763ca1UppgXnYKiBiZ1mcaGmBLj9A8yfyWLVVNFr9J060NOWtAVu043kzjCgYXKQlby1vYl7duO43Q2r2YAshq8Vs8H2buBD8N6IqXM9GsQj2eMYiV4makLeIULyc6MUUpNA1NZJeriZPXrR2oX8aawIKdBZKqNopOKECvIZ27rxo5hf5jXQzgcSp1c9ZQ2DncRfbFmzRhXe6BkDLOhH9EdFUD"
}
|
| 400 |
Получен некорректный запрос. Данный ответ возвращается в одном из следующих случаев
|
| 500 |
Внутренняя ошибка сервера. Подробная информация в разделе
Обработка общих ошибок |
Получение информации о пользователе
Данная операция позволяет получить информацию о пользователе, которому был выдан Access token, переданный в заголовке запроса ВАЖНО! Операция работает только при использовании OAuth Access token, полученного в рамках сквозой авторизации. Для токенов с типом API-ключ операция вернет ошибкуПараметры
| Наименование | Описание |
|---|---|
Authorization
* |
Заголовок авторизации со значением Bearer Значение_Access_Token. Подробнее в разделе Аутентификация |
Ответы
| HTTP Код | Описание |
| 200 |
Успешное завершение операции. В ответе содержится информация о пользователе которому был выдан токен
Ответ представлен в формате объекта Информация о пользователе
Пример ответа
{
"sub": "10000",
"username": "Петрушкин Андрей Иванович",
"email": "ostapenko@angrydev.ru",
"phone": "+79161234567",
"org_uid": "10000",
"org_name": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"СТРОЙИНВЕСТ\"",
"org_taxcode": "7706656855",
"org_additional_taxcode": "770101001"
}
|
| 401 |
Ошибка авторизации вызова. Подробная информация в разделе
Обработка общих ошибок |
| 500 |
Внутренняя ошибка сервера. Подробная информация в разделе
Обработка общих ошибок |