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). Хранение разрешений возможно в конфигурационном или отдельном файле. Хранение в отдельном файле упрощает управление конфигурацией: изменения в разрешениях не затрагивают основную конфигурацию, есть возможность быстрого обновления и восстановление настроек.