API для работы с динамическими клиентами#
API предназначен для работы с данными, используемыми при динамической регистрации клиентов.
API позволяет:
генерировать
software_statement;получать список
Initial Access Token(IAT) приложения;создавать
IAT;удалять
IAT.
Методы API вызываются через административные сервисы по адресу:
https://login.mos.ru/sps/admin/api/v3/app/{appId}/oauth/...
где {appId} — идентификатор приложения, для которого выполняется операция.
Внимание
Необходимо указать разрешения (scope) blitz_api_sys_app и blitz_api_sys_app_chg среди допустимых разрешений, которые имеет право запрашивать данное приложение.
Генерация software_statement#
Метод: PUT /sps/admin/api/v3/app/{appId}/oauth/softStm
Авторизация: Bearer {token}, где token — это маркер доступа вызывающей системы, содержащий разрешение blitz_api_sys_app_chg.
Тело запроса: в формате JSON. Поле softwareVersion - обязательное, поля redirectUris, tokenEndpointAuthMethod, grantTypes, responseTypes, scope - опциональные.
Пример
curl --location --request PUT 'https://login.mos.ru/sps/admin/api/v3/app/exampleApp/oauth/softStm' \
--header 'Authorization: Bearer eyJra...CQQ' \
--header 'Content-Type: application/json' \
--data-raw '{
"softwareVersion": "1",
"redirectUris": [
"https://example.com/callback"
],
"tokenEndpointAuthMethod": "client_secret_basic",
"grantTypes": [
"authorization_code"
],
"responseTypes": [
"code",
"token"
],
"scope": [
"openid",
"profile"
]
}'
200 ОК
"eyJr...QJA"
401 Unauthorized
{
"type": "security_error",
"error": "bad_access_token",
"desc": "token_not_found"
}
404 Not Found
{
"type": "process_error",
"error": "client_not_found",
"desc": "unknown client 'badAppId'"
}
400 Bad Request
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "json.error.mandatory.field",
"desc": "json.error.expected.string",
"pos": "softwareVersion"
},
{
"type": "input_error",
"error": "json.error.expected.uri",
"desc": "Illegal character in scheme name at index 0: а:ff",
"pos": "redirectUris.[0]"
},
{
"type": "input_error",
"error": "wrong_value",
"desc": "unexpected values [authorization_code1]",
"pos": "grantTypes"
},
{
"type": "input_error",
"error": "wrong_value",
"desc": "unexpected values [token1]",
"pos": "responseTypes"
},
{
"type": "input_error",
"error": "wrong_value",
"desc": "wrong value client_secret_basic1, expected some of [none,client_secret_basic,client_secret_post]",
"pos": "tokenEndpointAuthMethod"
},
{
"type": "input_error",
"error": "wrong_value",
"desc": "unexpected values [profile1]",
"pos": "scope"
}
]
}
Получение IAT токенов приложения#
Метод: GET /sps/admin/api/v3/app/{appId}/oauth/iat
Авторизация: Bearer {token}, где token — это маркер доступа вызывающей системы, содержащий разрешение blitz_api_sys_app.
Пример
curl --location --request GET 'https://login.mos.ru/sps/admin/api/v3/app/exampleApp/oauth/iat' \
--header 'Authorization: Bearer eyJra...qElQ' \
200 ОК
[
{
"createdOn": 1769437759,
"softwareVersion": "1",
"softwareId": "exampleApp",
"id": "ZYzL...mQ"
}
]
401 Unauthorized
{
"type": "security_error",
"error": "bad_access_token",
"desc": "token_not_found"
}
404 Not Found
{
"type": "process_error",
"error": "client_not_found",
"desc": "unknown client 'badAppId'"
}
Создание IAT токена приложения#
Метод: PUT /sps/admin/api/v3/app/{appId}/oauth/iat
Авторизация: Bearer {token}, где token — это маркер доступа вызывающей системы, содержащий разрешение blitz_api_sys_app_chg.
Тело запроса: в формате JSON. Поле softwareVersion – обязательное.
Пример
curl --location --request PUT 'https://login.mos.ru/sps/admin/api/v3/app/exampleApp/oauth/iat' \
--header 'Authorization: Bearer eyJra...ElQ' \
--header 'Content-Type: application/json' \
--data-raw '{
"softwareVersion": "1"
}'
200 ОК
{
"createdOn": 1769594410,
"softwareVersion": "1",
"softwareId": "exampleApp",
"id": "GbhF...qw"
}
401 Unauthorized
{
"type": "security_error",
"error": "bad_access_token",
"desc": "token_not_found"
}
404 Not Found
{
"type": "process_error",
"error": "client_not_found",
"desc": "unknown client 'badAppId'"
}
400 Bad Request
{
"type": "input_error",
"error": "wrong_values",
"errors": [
{
"type": "input_error",
"error": "json.error.mandatory.field",
"desc": "json.error.expected.string",
"pos": "softwareVersion"
}
]
}
Удаление IAT токена приложения#
Метод: DELETE /sps/admin/api/v3/app/{appId}/oauth/iat/{tokenId}
Авторизация: Bearer {token}, где token — это маркер доступа вызывающей системы, содержащий разрешение blitz_api_sys_app_chg.
Пример
curl --location --request DELETE 'https://login.mos.ru/sps/admin/api/v3/app/exampleApp/oauth/iat/SmCYp...aqw' \
--header 'Authorization: Bearer eyJra...ElQ'
204 No Content
401 Unauthorized
{
"type": "security_error",
"error": "bad_access_token",
"desc": "token_not_found"
}
404 Not Found
{
"type": "process_error",
"error": "client_not_found",
"desc": "unknown client 'badAppId'"
}