Иерархическая структура групп доступа с наследованием ограничений позволяет создавать локальных администраторов и делегировать им создание пользователей и настройку их прав в рамках подразделений организации.
Локальному администратору доступны экраны подсистемы безопасности, однако он видит только пользователей и группы в своей группе доступа и ниже. Он может создавать подгруппы и пользователей и назначать им имеющиеся в системе роли. При этом все создаваемые им пользователи будут иметь как минимум те же ограничения, что и он сам.
Глобальный администратор, находящийся в корневой группе доступа, лишенной ограничений, должен создать роли, которые будут доступны локальным администраторам для назначения пользователям. Сами локальные администраторы не должны иметь прав на создание и изменение ролей.
Рассмотрим следующую структуру групп доступа:
Задача:
-
Пользователи внутри группы
Departments
должны видеть только пользователей своей группы и ниже. -
В каждой из групп
Dept 1
,Dept 2
, и т.д. должен быть свой локальный администратор, который может создавать пользователей и назначать им имеющиеся роли.
Способ решения задачи:
-
Задать для группы
Departments
следующие ограничения:-
Для сущности
sec$Group
:{E}.id in ( select h.group.id from sec$GroupHierarchy h where h.group.id = :session$userGroupId or h.parent.id = :session$userGroupId )
Это ограничение не позволяет пользователям видеть группы выше своей собственной.
-
Для сущности
sec$User
:{E}.group.id in ( select h.group.id from sec$GroupHierarchy h where h.group.id = :session$userGroupId or h.parent.id = :session$userGroupId )
Это ограничение не позволяет пользователям видеть других пользователей, входящих в группы выше своей собственной.
-
Для сущности
sec$Role
:({E}.description is null or {E}.description not like '[hide]')
Данное ограничение не позволяет пользователям видеть роли, в атрибуте
description
которых записана строка[hide]
.
-
-
Создать роль, которая запретит редактирование ролей и разрешений:
-
Установите флажок Default role.
-
В поле Description добавьте строку
[hide]
. -
На вкладке Entities запретите операции create, update, delete для сущностей
sec$Role
иsec$Permission
(для добавления разрешений на объектsec$Permission
установите флажок System level).
Все создаваемые пользователи, включая локальных администраторов, будут получать роль
local_user
. Эта роль невидима для пользователей группыDepartments
, поэтому даже локальные администраторы не смогут ее с себя снять. В результате они смогут оперировать только существующими ролями, созданными для них глобальным администратором. Разумеется, эти роли не должны отменять запрещений, введенных рольюlocal_user
. -