Настройка доступов к сервисам Blitz Identity Provider#

Blitz Identity Provider позволяет создавать и конфигурировать настраиваемые разрешения (scope) для доступа к сервисам Blitz Identity Provider. В таблице ниже приведен список сервисов Blitz Identity Provider, системные имена сервисов и разрешения (scope) по умолчанию.

Административные REST API

Сервис

Путь к сервису

Системное имя

Разрешения

Получение информации о приложении

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 /sps/reg/api/v3/users

reg.put

blitz_api_sys_users_reg

Регистрация пользователя (подтверждение контактов)

POST /sps/reg/api/v3/users/:context

reg.advance

blitz_api_sys_users_reg

Аутентификация по QR-коду REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Показать QR-код для аутентификации по QR-коду

GET /sps/api/v3/auth/qr/:code

auth.qrcode.get

blitz_qr_auth

Подтвердить аутентификацию по QR-коду

POST /sps/api/v3/auth/qr/:code/refuse

auth.qrcode.refuse

blitz_qr_auth

Отклонить аутентификацию по QR-коду

POST /sps/api/v3/auth/qr/:code/confirm

auth.qrcode.confirm

blitz_qr_auth

Работа с правами доступа REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Получить права субъекта

GET /sps/api/v3/rights/of/:id GET /sps/api/v3/rights/of/:typ/:id

rights.sbj.get

blitz_user_rights, blitz_rights_full_access

Получить права на объект

GET /sps/api/v3/rights/on/:id GET /sps/api/v3/rights/on/:typ/:id

rights.obj.get

blitz_rights_full_access

Изменить права

POST /sps/api/v3/rights

rights.change

blitz_user_rights, blitz_rights_full_access

Назначить права

PUT /sps/api/v3/rights

rights.grant

blitz_user_rights, blitz_rights_full_access

Отозвать права

DELETE /sps/api/v3/rights

rights.revoke

blitz_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 /sps/api/v3/users/:subjectId

users.attrs.get

blitz_api_user, blitz_api_sys_users

Изменение атрибутов пользователя

POST /sps/api/v3/users/:instanceId

users.attrs.change

blitz_api_user_chg, blitz_api_sys_users_chg

Смена пароля

POST /sps/api/v3/users/:instanceId/pswd

users.pswd.change

blitz_api_usec_chg, blitz_api_sys_usec_chg

Сброс сессий

POST /sps/api/v3/users/:subjectId/sessions/reset

users.sessions.reset

blitz_api_usec_chg, blitz_api_sys_usec_chg

Изменение аутентификационной информации

POST /sps/api/v3/users/:subjectId/auth

users.auth.change

blitz_api_usec_chg, blitz_api_sys_usec_chg

Изменение свойств пользователя

GET /sps/api/v3/users/:subjectId/props

users.props.get

blitz_api_user, blitz_api_sys_users

Изменение признака блокировки

POST /sps/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 /sps/api/v3/users/:subjectId/secQsn

users.SecQuestion.get

blitz_api_usec_chg, blitz_api_sys_usec_chg

Изменение контрольного вопроса/ответа

POST /sps/api/v3/users/:subjectId/secQsn

users.SecQuestion.change

blitz_api_usec_chg, blitz_api_sys_usec_chg

Удаление контрольного вопроса

DELETE /sps/api/v3/users/:subjectId/secQsn

users.SecQuestion.delete

blitz_api_usec_chg, blitz_api_sys_usec_chg

Проверка контрольного вопроса

POST /sps/api/v3/users/:subjectId/secQsn/check

users.SecQuestion.check

blitz_api_usec, blitz_api_sys_usec

Работа с приложениями пользователя REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Посмотреть устройства входа

GET /sps/api/v3/users/:subjectId/uas

users.userAgents.get

blitz_api_uapps, blitz_api_sys_uapps

Удалить устройство входа

DELETE /sps/api/v3/users/:subjectId/uas/:uaId

users.userAgents.delete

blitz_api_uapps_chg, blitz_api_sys_uapps_chg

Посмотреть мобильные устройства пользователя

GET /sps/api/v3/users/:subjectId/apps

users.apps.get

blitz_api_uapps, blitz_api_sys_uapps

Удалить устройство пользователя

DELETE /sps/api/v3/users/:subjectId/apps/:id

users.apps.delete

blitz_api_uapps_chg, blitz_api_sys_uapps_chg

Работа со списками разрешений, выданных пользователем и аудит REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Посмотреть разрешения пользователя

GET /sps/api/v3/users/:subjectId/acls

users.acls.get

blitz_api_usec, blitz_api_sys_usec

Удалить разрешение пользователя

DELETE /sps/api/v3/users/:subjectId/acls/:id

users.acls.delete

blitz_api_usec_chg, blitz_api_sys_usec_chg

Посмотреть события пользователя

GET /sps/api/v3/users/:subjectId/audit

users.audit.get

blitz_api_uaud, blitz_api_sys_uaud

Пользовательские привязки TOTP REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Посмотреть привязки TOTP-генераторов

GET /sps/api/v3/users/:subjectId/totps

users.totp.get

blitz_api_usec, blitz_api_sys_usec

Показать QR-код для привязки TOTP-генератора

GET /sps/api/v3/users/:subjectId/totps/attach/qr

users.totp.qrGen

blitz_api_usec_chg, blitz_api_sys_usec_chg

Привязать TOTP-генератор

POST /sps/api/v3/users/:subjectId/totps/attach/qr

users.totp.attach

blitz_api_usec_chg, blitz_api_sys_usec_chg

Отвязать TOTP-генератор

DELETE /sps/api/v3/users/:subjectId/totps/:totpId

users.totp.detach

blitz_api_usec_chg, blitz_api_sys_usec_chg

Пользовательские привязки внешних поставщиков REST API V3

Сервис

Путь к сервису

Системное имя

Разрешения

Посмотреть привязки внешних поставщиков

GET /sps/api/v3/users/:subjectId/fa

users.fed.get

blitz_api_ufa, blitz_api_sys_ufa

Привязать внешний поставщик

POST /sps/api/v3/users/:subjectId/fa/:typ/:name/:sid

users.fed.bind

blitz_api_ufa_chg, blitz_api_sys_ufa_chg

Отвязать внешний поставщик

DELETE /sps/api/v3/users/:subjectId/fa/:typ/:name/:sid

users.fed.unbind

blitz_api_ufa_chg, blitz_api_sys_ufa_chg

Получить маркер доступа внешнего поставщика

GET /sps/api/v3/users/:subjectId/fedToken/:typ/:name

users.fedToken.get

fed_tkn_any

Чтобы завести новое разрешение для одного из указанных сервисов, необходимо добавить в конфигурационный файл новый блок 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
        }
    }
},