Права доступа#
Внимание
Для выполнения запросов по просмотру, назначению, отзыву прав доступа приложение должно получить маркер доступа с системным разрешением blitz_rights_full_access
.
Совет
Для просмотра прав доступа пользователя, где он является субъектом, также можно использовать маркер доступа с пользовательским разрешением blitz_user_rights
.
Право доступа назначается от субъекта доступа к объекту доступа.
пользователи,
приложения (префикс
its
).
пользователи,
группы пользователей (префикс
grps
),приложения (префикс
its
).
Перечень прав пользователя#
GET https://login.company.com/blitz/api/v3/rights/of/<sub>
Получение прав доступа по субъекту доступа, являющемуся пользователем.
Примеры
GET /blitz/api/v3/rights/of/BIP-1SEQ41A HTTP/1.1
Authorization: Bearer cNwIX…Nz
{
"grps|1147746651733|orgs": {
"ORG_ADMIN": [
"set_from_api",
"another_one_tag"
]
},
"its|test_app2": {
"APP_ADMIN": [
"set_from_api"
]
},
"BIP-3SGR7TA": {
"change_password": [
"parent"
]
}
}
Перечень прав приложения#
GET https://login.company.com/blitz/api/v3/rights/of/its/<app_id>
Получение прав доступа по субъекту доступа, являющемуся приложением.
Примеры
GET /blitz/api/v3/rights/of/its/test_app HTTP/1.1
Authorization: Bearer cNwIX…Nz
{
"its|test_app2": {
"SYS_MON": [
"set_from_api"
]
},
"BIP-3SGR7TA": {
"change_password": [
"set_from_api"
]
},
"grps|1147746651733|orgs": {
"ORG_ADMIN": [
"set_from_api"
]
}
}
Права в отношении пользователя#
GET https://login.company.com/blitz/api/v3/rights/on/<sub>
Получение прав доступа по объекту доступа, являющемуся пользователем.
Примеры
GET /blitz/api/v3/rights/on/BIP-3SGR7TA HTTP/1.1
Authorization: Bearer cNwIX…Nz
{
"BIP 1SEQ41A": [
"change_password"
],
"its|test_app": [
"change_password"
]
}
Права в отношении группы пользователей#
GET https://.../blitz/api/v3/rights/on/grps/<grp_id>?objectExt=<profile>
Получение прав доступа по объекту доступа, являющемуся группой.
Примеры
GET /blitz/api/v3/rights/on/grps/1147746651733?objectExt=orgs HTTP/1.1
Authorization: Bearer cNwIX…Nz
{
"BIP 1SEQ41A": [
"ORG_ADMIN"
],
"its|test_app": [
"ORG_ADMIN"
]
}
Права в отношении приложения#
GET https://login.company.com/blitz/api/v3/rights/on/its/<app_id>
Получение прав доступа по объекту доступа, являющемуся приложением.
Примеры
GET /blitz/api/v3/rights/on/its/test_app2 HTTP/1.1
Authorization: Bearer cNwIX…Nz
{
"BIP 1SEQ41A": [
"APP_ADMIN"
],
"its|test_app": [
"SYS_MON"
]
}
{
"type": "security_error",
"error": "bad_access_token",
"desc": "expired_access_token"
}
Назначение прав#
PUT https://login.company.com/blitz/api/v3/rights
Назначение прав доступа.
subject
– идентификатор субъекта, которому назначается право (идентификатор пользователя или приложения);subjectType
– тип субъекта. Параметр указывается только в случае назначения права приложению. В этом случае используется значениеits
;object
– идентификатор объекта, на который назначается право (идентификатор пользователя, группы пользователей или приложения);objectType
– тип объекта. Параметр указывается только в случае назначения права на группу пользователей (значениеgrps
) или на приложение (значениеits
);rights
– массив со списком назначаемых прав субъекту на объект;tags
– массив со списком тэгов назначаемых прав.
В случае успешного назначения права доступа -
HTTP 204 No Content
.Если маркер доступа просрочен -
HTTP 401 Unauthorized
.Если субъекта или объекта не существует -
HTTP 400 Bad Request
Примеры
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "BIP-3SGR7TA",
"rights": ["change_password"],
"tags": ["set_from_api"]
}
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "1147746651733",
"objectType": "grps",
"rights": ["ORG_ADMIN"],
"tags": ["set_from_api"]
}
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "test_app2",
"objectType": "its",
"rights": ["APP_ADMIN"],
"tags": ["set_from_api"]
}
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "BIP-3SGR7TA",
"rights": ["change_password"],
"tags": ["set_from_api"]
}
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "1147746651733",
"objectType": "grps",
"rights": ["ORG_ADMIN"],
"tags": ["set_from_api"]
}
PUT /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "test_app2",
"objectType": "its",
"rights": ["SYS_MON"],
"tags": ["set_from_api"]
}
{
"type": "security_error",
"error": "bad_access_token",
"desc": "expired_access_token"
}
{
"type": "process_error",
"error": "unknown_right",
"desc": "The specified right is unknown",
"params": {
"right": "change_password1"
}
}
{
"type": "process_error",
"error": "unknown_user",
"desc": "The specified user is unknown",
"params": {
"userId": "ivanov1"
}
}
{
"type": "process_error",
"error": "unknown_group",
"desc": "The specified group is unknown",
"params": {
"grpId": "1147746651734"
}
}
{
"type": "process_error",
"error": "unknown_rp",
"desc": "The specified relying party is unknown",
"params": {
"rpId": "test_app3"
}
}
Отзыв прав#
DELETE https://login.company.com/blitz/api/v3/rights
Отзыв права доступа.
subject
– идентификатор субъекта, у которого отзывается право (идентификатор пользователя или приложения);subjectType
– тип субъекта. Параметр указывается только в случае отзыва права у приложения. В этом случае используется значениеits
;object
– идентификатор объекта, на который отзывается право (идентификатор пользователя, группы пользователей или приложения);objectType
– тип объекта. Параметр указывается только в случае отзыва права на группу пользователей (значениеgrps
) или на приложение (значениеits
);rights
– массив со списком отзываемых прав субъекта на объект;tags
– массив со списком тэгов отзываемых прав.Предупреждение
Если право доступа было назначено субъекту доступа на объект доступа с указанием нескольких тэгов, то для отзыва права доступа также необходимо указать все тэги. Если отзыв права доступа вызывается не с полным указанием тэгов, то при отзыве будут удалены только отзываемые тэги, а право доступа у субъекта доступа к объекту доступа останется, пока остается хотя бы один из тэгов.
В случае успешного отзыва права доступа сервис вернет
HTTP 204 No Content
.Если маркер доступа просрочен -
HTTP 401 Unauthorized
.Если отзываемого права, субъекта или объекта не существует -
HTTP 400 Bad Request
Примеры
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "BIP-3SGR7TA",
"rights": ["change_password"],
"tags": ["set_from_api"]
}
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "1147746651733",
"objectType": "grps",
"rights": ["ORG_ADMIN"],
"tags": ["set_from_api"]
}
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "BIP-1SEQ41A",
"object": "test_app2",
"objectType": "its",
"rights": ["APP_ADMIN"],
"tags": ["set_from_api"]
}
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "BIP-3SGR7TA",
"rights": ["change_password"],
"tags": ["set_from_api"]
}
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "1147746651733",
"objectType": "grps",
"rights": ["ORG_ADMIN"],
"tags": ["set_from_api"]
}
DELETE /blitz/api/v3/rights HTTP/1.1
Authorization: Bearer cNwIXNz
Content-Type: application/json
{
"subject": "test_app",
"subjectType": "its",
"object": "test_app2",
"objectType": "its",
"rights": ["SYS_MON"],
"tags": ["set_from_api"]
}
{
"type": "security_error",
"error": "bad_access_token",
"desc": "expired_access_token"
}
{
"type": "process_error",
"error": "unknown_right",
"desc": "The specified right is unknown",
"params": {
"right": "change_password1"
}
}
{
"type": "process_error",
"error": "unknown_user",
"desc": "The specified user is unknown",
"params": {
"userId": "ivanov1"
}
}
{
"type": "process_error",
"error": "unknown_group",
"desc": "The specified group is unknown",
"params": {
"grpId": "1147746651734"
}
}
{
"type": "process_error",
"error": "unknown_rp",
"desc": "The specified relying party is unknown",
"params": {
"rpId": "test_app3"
}
}
Права ведущего пользователя в отношении ведомого#
POST https://login.company.com/blitz/api/v3/users/rights/change
Назначение и отзыв права ведущего пользователя в отношении ведомого пользователя.
Внимание
Запрос на отзыв прав может быть выполнен приложением не только с использованием пользовательского маркера доступа, полученного на разрешение с именем blitz_user_rights
, но и с использованием системного маркера доступа, полученного на разрешение с именем blitz_rm_rights
. В этом случае запрос на отзыв может включать subject
любых пользователей (для отзыва у пользователя права не потребуется, чтобы именно этот пользователь осуществлял вход в систему и получал маркер доступа – система может отзывать права любого пользователя).
В запрос должен быть добавлен заголовок с маркером доступа на разрешение с именем blitz_user_rights
, полученным учетной записью ведущего пользователя.
Назначение прав
Заполненный блок update
с перечнем прав, которые должны быть добавлены в результате выполнения операции.
Каждое право описывается параметрами:
subject
– идентификатор (sub
) учетной записи ведущего пользователя;object
– идентификатор (sub
) учетной записи ведомого пользователя;rights
– перечень прав в виде массива, который получает учетная запись ведущего пользователя в отношении учетной записи ведомого пользователя. Например, для права менять пароль от учетной записи должно быть указано правоchange_password
(смена пароля), а для права менять атрибуты должно быть указано правоchange_attrs
(смена атрибутов);tags
– перечень тегов, указывающих на основания, по которым данный пользователь получил права.
Отзыв прав
Заполненный блок delete
с перечнем прав, которые должны быть отозваны в результате выполнения операции.
Каждое право описывается параметрами:
subject
– идентификатор (sub
) учетной записи ведущего пользователя;object
– идентификатор (sub
) учетной записи ведомого пользователя;rights
– перечень прав в виде массива, которые отзываются у ведущей учетной записи в отношении ведомой учетной записи;tags
– перечень тегов, указывающих на основания, по которым данный пользователь получил права.
Если при выполнении запроса права не назначаются или не отзываются, то в теле запроса должен соответственно присутствовать или пустой блок update
, или пустой блок delete
.
В одном запросе может быть указано сразу несколько назначаемых/отзываемых прав, но в качестве субъекта (subject
) должен быть указан только тот пользователь, на которого был получен маркер доступа, используемый для вызова сервиса.
Примеры
POST /blitz/api/v3/users/rights/change HTTP/1.1
Authorization: Bearer cNwIXTg
Content-Type: application/json
{
"update":[
{
"subject":"6561d0d9-5583-4bb5-a681-b591358e5fcd",
"object":"5cffd68f-2cb8-4f7a-b0f3-9fa69a1fbbcd",
"rights":[
"change_password"
],
"tags":[
"parent"
]
},
{
"subject":"6561d0d9-5583-4bb5-a681-b591358e5fcd",
"object":"b855957d-bf24-48d4-bb63-cce4f5064590d",
"rights":[
"change_password"
],
"tags":[
"parent"
]
}
],
"delete":[
]
}
POST /blitz/api/v3/users/rights/change HTTP/1.1
Authorization: Bearer cNwIXTg
Content-Type: application/json
{
"update":[
],
"delete":[
{
"subject":"b855957d-bf24-48d4-bb63-cce4f5064590d",
"object":"5cffd68f-2cb8-4f7a-b0f3-9fa69a1fbbcd",
"rights":[
"change_password"
],
"tags":[
"parent"
]
}
]
}
{
"errors" : [
{
"code" : "validation_error",
"params" : {},
"desc" : "(For subject 'dea75b73-a2ba-4b60-a41c-bb640968826b') Incorrect right '' to object '5cffd68f-2cb8-4f7a-b0f3-9fa69a1fbbcd'"
},
{
"params" : {},
"code" : "validation_error",
"desc" : "(For subject 'dea75b73-a2ba-4b60-a41c-bb640968826b') Incorrect tag '' for right 'write' to object '5cffd68f-2cb8-4f7a-b0f3-9fa69a1fbbcd'"
},
{
"desc" : "(For subject 'dea75b73-a2ba-4b60-a41c-bb640968826b') Incorrect object ''",
"code" : "validation_error",
"params" : {}
},
{
"desc" : "Incorrect subject ''",
"code" : "validation_error",
"params" : {}
}
]
}