Материал из Hivext Wiki
Управление доступом
Установка прав доступа (создание, чтение, изменение, удаление, изменение прав) для сущностей платформы.
Сервис оперирует субъектами и объектами (или ресурсами) доступа. Почти во все сервисы платформы интегрирован сервис управления правами доступа, это реализовано на уровне платформы, что повышает безопасность и снижает риски несанкционированного доступа к данным.
Сервис управления доступом реализует в себе две техники Ролевое разделение и Избирательную систему на основе списков прав доступа (Access Control List - ACL). Обе техники дополняют друг друга, создавая гибкое решение: можно установить права доступа сразу на группы пользователей через Роли (чего достаточно для большинства приложений), так и связать конкретные объекты, права и пользователей через Списки доступа (для частных случаев).
| Виды субъектов
| Виды объектов
|
- Приложения платформы;
- Зарегистрированные пользователи;
- Не зарегистрированные пользователи [гости].
|
- Типы данных;
- Экземпляры типов [объекты].
|
Для установки связей субъекта с объектом, платформа оперирует следующим набором ключей:
|
для субъектов
| Субъект
| Описание
|
| 0
| все гости и пользователи текущего приложения
|
| *
| все пользователи текущего приложения
|
| */*
| все пользователи всех приложений
|
| appid/*
| все пользователи одного конкретного приложения
|
| */uid
| один конкретный пользователь всех приложений
|
| appid/uid
| один конкретный пользователь одного конкретного приложения
|
|
|
|
для объектов
| Объект
| Описание
|
| *
| все типы
|
| type
| один конкретный тип
|
| */*
| все типы и все объекты этих типов
|
| type/*
| один тип и все объекты этого типа
|
| */id
| все типы и один объект этих типов
|
| type/id
| один тип и один объект этого типа
|
|
где
- appid - идентификатор приложения (* - все приложения)
- uid - идентификатор пользователя (* - все пользователи, 0 - гости)
- type - название типа (* - все типы)
- id - идентификатор объекта (* - все объекты)
|
При поиске того или иного права система идет от частного к общему: права доступа, установленные на конкретные связи субъекта (appid, uid) с объектом (type, id), имеют больший приоритет, чем права установленные на группы (*).
Общая информация
| Параметр
| Значение
|
| Версия сервиса
| 1.0 [stable]
|
| Пространство имен
| Security
|
| Имя сервиса
| AccessControl
|
| Локальный доступ
| hivext.security.accesscontrol.{название_метода}
|
| Сетевой доступ
| http://api.hivext.ru/1.0/security/accesscontrol/{protocol}/{название_метода}
|
| Характеристика
|
- Избирательная система управления доступом
- Управление политикой доступа на основе ролей
|
| Консоль
| http://code.hivext.ru/development/APIConsole/#Security.AccessControl
|
Методы
Разделение методов сервиса по категориям
| Управление ролями
| Управление списком доступа (ACL)
|
|
CreateRole
Создание новой роли.
DeleteRole
Удаление роли.
GetRoles
Взять все роли для приложения.
AddPolicy
Добавление прав доступа к объекту для указанной роли.
RemovePolicy
Удаление прав доступа к объекту для указанной роли.
GetPolicy
Взять все права доступа к объектам для указанной роли.
ApplyRole
Применить роль к субъектам доступа (приложениям или пользователям).
RemoveRole
Удалить роль у субъектов доступа (приложений или пользователей).
GetRolesBySubject
Отобразить все роли для указанного субъекта доступа.
GetSubjectsByRole
Отобразить все субъекты для указанной роли.
GetRolesByObject
Отобразить все роли для указанного объекта доступа.
GetObjectsByRole
Отобразить все объекты для указанной роли.
|
SetRights
Запись прав в таблицу ACL для субъекта и объекта доступа.
GetRights
Информация о правах из таблицы ACL для субъекта и объекта доступа.
GetRightsBySubject
Информация о правах из таблицы ACL для субъекта доступа.
GetRightsByObject
Информация о правах из таблицы ACL для объекта доступа.
RemoveRights
Удаление прав из таблицы ACL для субъекта и объекта доступа.
RemoveRightsBySubject
Удаление прав из таблицы ACL для субъекта доступа.
RemoveRightsByObject
Удаление прав из таблицы ACL для объекта доступа.
|
| Общие методы
|
|
CheckRights
Проверка прав для субъекта и объекта доступа.
|
Клиенты
Компоненты
Для данного сервиса нет компонентов.