Сервис проверки прав
Инфраструктурный сервис проверки прав предназначен для проверки прав доступа субъекта на объект (обладает ли субъект правами на осуществление определённых действий с объектом), предоставления субъекту прав на действия с объектами, а также для выполнения действий, связанных с безопасностью.
Для управления членством пользователей в группах, определения объектов безопасности и назначения прав вы можете использовать пользовательский интерфейс в консоли администрирования и API сервиса.
API сервиса проверки прав дает возможность любому сервису и компоненту Платформы и продукта проверять наличие прав на доступ к определенному объекту на совершение определенного действия.
Сущности сервиса проверки прав
Пространство имен (Namespace)
Пространство имён (также Namespace): логическое объединение субъектов, объектов и видов прав в одной предметной области. Набор полей Namespace приведен в таблице ниже.
| Название поля | Тип поля | Описание | 
|---|---|---|
| Code | String | ID Namespace во внешней системе, задается в предметной области | 
| Description | String | Название и описание Namespace | 
Структура пространства имён в формате JSON, содержащего набор элементов.
{
  "Subject": [],
  "Objects": [],
  "Rights": [],
  "Code": 
  "Description": 
}
Основные элементы пространства имён:
- субъект (Subject): элемент, который может получить право на действие — в роли субъектов могут выступать пользователи, группы пользователей, сервисы и т.д.;
- объект (Object): элемент, над которым может совершаться действие, определяющееся выданным правом — в роли объектов могут выступать сервисы, методы сервисов, элементы пользовательского интерфейса;
- группа субъектов (Subject Group): субъект, который содержит другие субъекты;
- группа объектов (Object Group): объект, который содержит другие объекты;
- тип операции (Right): действия, которые субъекты могут совершать над объектами, например, запуск, отображение, скачивание файла.
Описание полей субъекта
| Название поля | Тип поля | Описание | 
|---|---|---|
| Code | String | ID элемента во внешней системе, используется для связки внешнего субъекта с сущностью сервиса | 
| Namespace | String | Code Namespace, в рамках которого существует элемент | 
| Description | String | Описание элемента | 
| Title | String | Краткое описание | 
| isGroup | Boolean | Признак группы субъектов | 
| extCode | String | Идентификатор субъекта во внешней системе | 
Описание полей объекта
| Название поля | Тип поля | Описание | 
|---|---|---|
| Code | String | ID элемента во внешней системе, используется для связки внешнего объекта (SID) с сущностью сервиса | 
| Namespace | String | Code Namespace, в рамках которого существует элемент | 
| Description | String | Описание элемента | 
| Title | String | Название элемента | 
| isGroup | Boolean | Признак группы объектов | 
Описание полей права
| Название поля | Тип поля | Описание | 
|---|---|---|
| Code | String | ID элемента во внешней системе, используется для связки типа операции с сущностью сервиса | 
| Namespace | String | Code Namespace, в рамках которого существует элемент | 
| Description | String | Описание элемента | 
| Title | String | Название элемента | 
Все пространства имен загружаются в сервис проверки прав доступа сервисами Платформы при старте самостоятельно. Каждое пространство имен содержит список объектов и групп объектов, если требуются, и типы опереций — Right.
Одно пространство имен может быть вложено в другое пространство имен.
Для настройки прав доступа субъекта к объекту используется консоль администрирования или методы API сервиса. Например, воспользуйтесь методом /api/access/Add, передайте в него следующие данные:
- субъект, которому предоставляется разрешение или запрет;
- объект, на который предоставляется разрешение или запрет;
- тип операции, который предоставляется (обязательно из того же Namespace, что и объект);
- значение: Allowed/Denied.