REST API#
Blitz Identity Provider позволяет настраивать разрешения (scopes) для доступа к сервисам REST API. В данном разделе описывается процесс изменения набора разрешений по умолчанию, а также настройка доступа к атрибутам, связанным с этими разрешениями.
Ниже приведен список сервисов Blitz Identity Provider, системные имена сервисов и разрешения (scope) по умолчанию.
Административные REST API
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/admin/api/v3/apps |
admin.getApps |
blitz_api_sys_app |
GET /blitz/admin/api/v3/app/{appId} |
admin.app.get |
blitz_api_sys_app |
PUT /blitz/admin/api/v3/app/{appId} |
admin.app.create |
blitz_api_sys_app_chg |
POST /blitz/admin/api/v3/app/{appId} |
admin.app.change |
blitz_api_sys_app_chg |
DELETE /blitz/admin/api/v3/app/{appId} |
admin.app.delete |
blitz_api_sys_app_chg |
Регистрация и удаление учетной записи REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
PUT /blitz/reg/api/v3/users |
reg.put |
blitz_api_sys_users_reg |
POST /blitz/reg/api/v3/users/{context} |
reg.advance |
blitz_api_sys_users_reg |
DELETE /blitz/api/v3/users/{instanceId} |
users.rmUser |
blitz_api_user_chg, blitz_api_sys_users_chg |
Аутентификация по QR-коду REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/auth/qr/:code} |
auth.qrcode.get |
blitz_qr_auth |
POST /blitz/api/v3/auth/qr/{code}/refuse |
auth.qrcode.refuse |
blitz_qr_auth |
POST /blitz/api/v3/auth/qr/{code}/confirm |
auth.qrcode.confirm |
blitz_qr_auth |
Работа с правами доступа REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/rights/of/{sub} |
rights.sbj.get |
blitz_api_user_rights, blitz_rights_full_access |
GET /blitz/api/v3/rights/on/{sub}, GET /blitz/api/v4/rights/on/{sub} |
rights.obj.get |
blitz_rights_full_access, blitz_api_user_rights |
POST /blitz/api/v3/rights |
rights.change |
blitz_api_user_rights, blitz_rights_full_access |
PUT /blitz/api/v3/rights |
rights.grant |
blitz_api_user_rights, blitz_rights_full_access |
DELETE /blitz/api/v3/rights |
rights.revoke |
blitz_api_user_rights, blitz_rights_full_access |
Работа с пользователями REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
POST /blitz/api/v3/users/notes/{action}/{state} |
users.docommand |
blitz_api_user_chg, blitz_api_sys_users_chg |
GET /blitz/api/v3/users/{subjectId} |
users.attrs.get |
blitz_api_user, blitz_api_sys_users |
POST /blitz/api/v3/users/{instanceId} |
users.attrs.change |
blitz_api_user_chg, blitz_api_sys_users_chg |
POST /blitz/api/v3/users/{instanceId}/pswd |
users.pswd.change |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
POST /blitz/api/v3/users/{subjectId}/sessions/reset |
users.sessions.reset |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
POST /blitz/api/v3/users/{subjectId}/auth |
users.auth.change |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
GET /blitz/api/v3/users/{subjectId}/props |
users.props.get |
blitz_api_user, blitz_api_sys_users |
POST /blitz/api/v3/users/{subjectId}/props |
users.props.change |
blitz_api_user_chg, blitz_api_sys_users_chg |
POST /blitz/api/v3/users/{subjectId}/state |
users.lockState.change |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
GET /blitz/api/v3/users/{subjectId}/secQsn |
users.SecQuestion.get |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
POST /blitz/api/v3/users/{subjectId}/secQsn |
users.SecQuestion.change |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
DELETE /blitz/api/v3/users/{subjectId}/secQsn |
users.SecQuestion.delete |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
POST /blitz/api/v3/users/{subjectId}/secQsn/check |
users.SecQuestion.check |
blitz_api_usec, blitz_api_sys_usec |
Работа с приложениями пользователя REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/users/{subjectId}/uas |
users.userAgents.get |
blitz_api_uapps, blitz_api_sys_uapps |
DELETE /blitz/api/v3/users/{subjectId}/uas/{uaId} |
users.userAgents.delete |
blitz_api_uapps_chg, blitz_api_sys_uapps_chg |
GET /blitz/api/v3/users/{subjectId}/apps |
users.apps.get |
blitz_api_uapps, blitz_api_sys_uapps |
DELETE /blitz/api/v3/users/{subjectId}/apps/:id} |
users.apps.delete |
blitz_api_uapps_chg, blitz_api_sys_uapps_chg |
Работа со списками разрешений, выданных пользователем и аудит REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/users/{subjectId}/acls |
users.acls.get |
blitz_api_usec, blitz_api_sys_usec |
DELETE /blitz/api/v3/users/{subjectId}/acls/{id} |
users.acls.delete |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
GET /blitz/api/v3/users/{subjectId}/audit |
users.audit.get |
blitz_api_uaud, blitz_api_sys_uaud |
Пользовательские привязки TOTP REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/users/{subjectId}/totps |
users.totp.get |
blitz_api_usec, blitz_api_sys_usec |
GET /blitz/api/v3/users/{subjectId}/totps/attach/qr |
users.totp.qrGen |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
POST /blitz/api/v3/users/{subjectId}/totps/attach/qr |
users.totp.attach |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
DELETE /blitz/api/v3/users/{subjectId}/totps/{totpId} |
users.totp.detach |
blitz_api_usec_chg, blitz_api_sys_usec_chg |
Пользовательские привязки внешних поставщиков REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/users/{subjectId}/fa |
users.fed.get |
blitz_api_ufa, blitz_api_sys_ufa |
POST /blitz/api/v3/users/{subjectId}/fa/{typ}/{name}/{sid} |
users.fed.bind |
blitz_api_ufa_chg, blitz_api_sys_ufa_chg |
DELETE /blitz/api/v3/users/{subjectId}/fa/{typ}/{name}/{sid} |
users.fed.unbind |
blitz_api_ufa_chg, blitz_api_sys_ufa_chg |
GET /blitz/api/v3/users/{subjectId}/fedToken/{typ}/{name} |
users.fedToken.get |
fed_tkn_any |
Работа с группами пользователей REST API v3
Путь к сервису |
Системное имя |
Разрешения |
|---|---|---|
GET /blitz/api/v3/groups/{id} |
groups.get |
blitz_api_groups, blitz_api_sys_groups |
GET /blitz/api/v3/groups/search |
groups.search |
blitz_api_groups, blitz_api_sys_groups |
GET /blitz/api/v3/groups/{profile}/search |
groups.searchByProfile |
blitz_api_groups, blitz_api_sys_groups |
PUT /blitz/api/v3/groups/{profile}/{id} |
groups.create |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
POST /blitz/api/v3/groups/{profile}/{id} |
groups.update |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
DELETE /blitz/api/v3/groups/{profile}/{id} |
groups.remove |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
POST /blitz/api/v3/groups/{profile}/{id}/members |
groups.getMembers |
blitz_api_groups, blitz_api_sys_groups |
POST /blitz/api/v3/groups/{profile}/{id}/members/{subjectId} |
groups.addMember |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
DELETE /blitz/api/v3/groups/{profile}/{id}/members/{subjectId} |
groups.removeMember |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
POST /blitz/api/v3/groups/{profile}/{id}/members |
groups.changeMembers |
blitz_api_groups_chg, blitz_api_sys_groups_chg |
GET /blitz/api/v3/users/{subjectId}/grps?expand=Boolean |
groups.getUserGroups |
blitz_api_groups, blitz_api_sys_groups |
GET /blitz/api/v3/users/{subjectId}/grps/{profile} |
groups.getUserGroupsByProfile |
blitz_api_groups, blitz_api_sys_groups |
Чтобы завести новое разрешение для одного из указанных сервисов, необходимо добавить в конфигурационный файл новый блок blitz.prod.local.idp.rest. В него добавить следующие параметры:
defaultEnabled– принимает значение true, если нужно, чтобы разрешения по умолчанию продолжали работать;points– перечень сервисов (используется системное имя из таблицы выше), для которых необходимо предусмотреть новые разрешения.
Настройка разрешений для каждого сервиса определяется следующими параметрами:
enabled– признак необходимости включить настройку (true/false);access– блок из следующих настроек:methods– методы авторизации к сервису:oauth(авторизация по маркеру доступа) иbasic(Basic-авторизация);filter– способы фильтрации атрибутов:disabled(возвращаются все атрибуты),strict(атрибуты возвращаются при условии, что все возвращаемые атрибуты разрешены системе) иflexible(возвращаются только те атрибуты, приписанные данному разрешению);scopes– список разрешений для данного сервиса;oauth– перечень приложений, которым разрешен доступ к сервису при предъявлении маркера доступа (если параметр отсутствует, то сервис разрешен всем приложениям, которым выдан маркер доступа с данным разрешением);basic– перечень приложений, которым разрешен доступ к сервису с помощью Basic-авторизации (если параметр отсутствует, то сервис разрешен всем приложениям).
Пример настройки разрешений (blitz_custom_api_sys_users_chg, blitz_api_sys_users_chg, blitz_api_user_chg) для сервиса изменения атрибутов пользователя (users.attrs.change):
"rest" : {
"defaultEnabled" : true,
"points" : {
"users.attrs.change" : {
"access" : {
"filter" : "flexible",
"methods" : [
"oauth"
],
"scopes" : [
"blitz_custom_api_sys_users_chg",
"blitz_api_sys_users_chg",
"blitz_api_user_chg"
]
},
"enabled" : true
}
}
},
Примечание
Для получения сведений о механизмах хранения разрешений (scope) обратитесь к разделу Разрешения (scopes). Хранение разрешений возможно в конфигурационном или отдельном файле. Хранение в отдельном файле упрощает управление конфигурацией: изменения в разрешениях не затрагивают основную конфигурацию, есть возможность быстрого обновления и восстановление настроек.