Внешние поставщики#

Список внешних поставщиков#

Метод

GET /api/v3/users/{subjectId}/fa

Получение списка привязок учетных записей внешних поставщиков идентификации к учетной записи пользователя.

Необходимые разрешения: blitz_api_ufa или blitz_api_sys_ufa.

Возвращает

Тип и имя привязки (fpType и fpName), идентификатор привязки (sid) и имя пользователя (userName).

Пример

GET /blitz/api/v3/users/d2580c98‑e584‑4aad‑a591‑97a8cf45cd2a/fa HTTP/1.1
Authorization: Bearer m9tuVBNUnizkuwFnq95IXQm1XTplXLUFD1O5TUmGij4
Cache-Control: no-cache
[
    {
        "sid": "1000347601",
        "fpType": "esia",
        "fpName": "esia_1",
        "userName": "user.name@esia.ru"
    },
    {
        "sid": "1234",
        "fpType": "tcs",
        "fpName": "tcs_1"
        "userName": "Олег"
    }
]

Привязка поставщика по идентификатору#

Метод

POST /api/v3/users/{subjectId}/fa/{fpType}/{fpName}/{sid}

Привязка учетной записи внешнего поставщика идентификации к учетной записи пользователя, если вход через внешний поставщик идентификации произведен ранее иными средствами и известен идентификатор (sid) учетной записи во внешнем поставщике идентификации.

Необходимые разрешения: blitz_api_ufa_chg или blitz_api_sys_ufa_chg.

URL-параметры

guid пользователя (subjectId), тип внешнего поставщика (fpType), имя внешнего поставщика (fpName) и идентификатор учетной записи во внешнем поставщике (sid).

Тело запроса

JSON:

  • federatedAccountName: имя внешней учетной записи, которую необходимо привязать (опционально). Если параметр не передается, то используется прежнее имя.

Возвращает

В случае успешного вызова 204 No Content.

Пример

Запрос#
POST /blitz/api/v3/users/d2580c98‑e584‑4aad‑a591‑97a8cf45cd2a/fa/tcs/tcs_1/1234 HTTP/1.1
Authorization: Bearer m9tuVBNUnizkuwFnq95IXQm1XTplXLUFD1O5TUmGij4

{
    "federatedAccountName": "Elle Woods"
}

Привязка поставщика#

Привязка к учетной записи внешнего поставщика при неизвестном идентификатору учетной записи во внешнем поставщике осуществляется в два этапа:

  • Запрос инструкции привязки.

  • Выполнение привязки пользователем в браузере.

Метод

POST /api/v2/users/current/fa/bind

Запрос инструкции привязки.

Тело запроса
  • fp – идентификатор поставщика, связь с профилем которого должна быть установлена;

  • callback – адрес, на который должен быть возвращен пользователь после успешной привязки аккаунта соцсети;

  • isPopup – требуется ли открытие страницы поставщика идентификации в popup-окне (опционально).

Возвращает

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

Пример

POST /blitz/api/v2/users/current/fa/bind HTTP/1.1
Authorization: Basic ZG5ldm5pay10ZXN0Lm1vcy5ydTphUU56S0JuY2VBQVQwelg
Content-Type: application/json

{
    "fp": "vk:vk_1",
    "callback": "https://app.company.com/callback"
}
200 OK
{
"redirectTo": "https://login.company.com/blitz/api/v2/users/current/fa/bind/auth/fc111c86-5193-42a2-862a-d819a4f45a86"
}

Удаление привязки поставщика#

Метод

DELETE /api/v2/users/{subjectId}/fa/{fpType}/{fpName}/{sid}

Удаление привязки внешнего поставщика к пользователю.

URL-параметры

guid пользователя (subjectId), тип внешнего поставщика (fpType), имя внешнего поставщика (fpName) и идентификатор учетной записи во внешнем поставщике (sid).

Пример

Заголовок#
DELETE /blitz/api/v3/users/d2580c98‑e584‑4aad‑a591‑97a8cf45cd2a/fa/tcs/tcs_1/1234 HTTP/1.1
Authorization: Bearer m9tuVBNUnizkuwFnq95IXQm1XTplXLUFD1O5TUmGij4

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

Метод

GET /api/v3/users/${subjectId}/fedToken/${fedPointType}/${fedPointName}

Получение актуального маркера доступа пользователя во внешнем поставщике идентификации с типом ${fedPointType} и именем ${fedPointName}. Маркер доступа считается актуальным, если время жизни больше минимально допустимого (по умолчанию 30 секунд). Если маркер доступа неактуален, но вместе с ним был сохранен маркер обновления, то происходит попытка обновления маркера доступа. В случае удачной попытки данный метод выдает новый маркер доступа.

Важно

Получение маркера возможно только для тех поставщиков, у которых включена настройка Запоминать маркеры.

Необходимые разрешения: fed_tkn_any или fed_tkn_${fedPointType}_${fedPointName}.

Примечание

Для того чтобы приложение могло запросить маркер доступа, для него также должны быть указаны данные разрешения.

Возвращает
  • HTTP 404: маркер доступа не найден.

  • HTTP 200 и JSON с информацией по маркерам доступа пользователя в случае успеха. Для каждого маркера передается ключ sid, значение маркера token и период действия expiresOn в формате Unix-time.

  • HTTP 401: нет необходимого разрешения или неверный поставщик.

Пример

GET /blitz/api/v3/users/d2580c98‑e584‑4aad‑a591‑97a8cf45cd2a/fedToken/tcs/tcs_1 HTTP/1.1
Authorization: Bearer m9tuVBNUnizkuwFnq95IXQm1XTplXLUFD1O5TUmGij4
Content-Type: application/json
Успех#
{
    "da0c69c5-aef8-41e4-a37f-89c6d30abdfa": {
        "expiresOn": 1711125311,
        "token": "t.eFgoMik6regKsLjxfds1V0PlNEv_smx-W_x"
    },
    "00000000-1111-41e4-a37f-89c6d30abdfa": {
        "expiresOn": 1711125344,
        "token": "t.ddddddddddLjxfds1V0PlNEv_smx-W_x"
    }
}
Нет необходимого разрешения#
{
    "type":"security_error",
    "error":"bad_access_token",
    "desc":"No enough scopes or wrong subject Id"
}