Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Ролевая модель системы: различия между версиями

Материал из Платформа Эра. Документации
Строка 32: Строка 32:


= Пользователи и группы пользователей =
= Пользователи и группы пользователей =
'''Пользователь''' отражает учетную запись с доступом к системе. Каждый пользователь обладает параметрами доступа, набором ролей и прав администратора.
'''Группа пользователей''' определяет общий набор ролей для этих пользователей. Каждая группа определяется набором ролей, составом пользователей и вложенными группами.
Роли вложенных групп также применяются к пользователем родительской группы. При использовании вложенных групп не допускаются циклы.
Большая часть функционала разграничивается ролями пользователей, которые они могут получить лично или через членство в группе. Детально работа ролей будет описана далее.
Также, функционал разработчика приложений позволяет произвольно проверять отношение пользователя к конкреткной группе для определения алгоритма работы кастомного функционала.


= Правила субординации =
= Правила субординации =
'''Правила субординации''' определяют отношения субординации между пользователями.
Отношения задаются между пользователями, группами и ролями. Существует также особый тип - ВСЕ ('all').
Каждое отношение задается между одним вышестоящим элементом одного из типов и несколькими нижестоящими элементами одного из типов. Группы и пользователи задаются идентификаторами, роли задаются именами. По умолчанию добавляется правило "ВСЕ КО ВСЕМ". При наличии такого правила, все остальные правила не имеют значения. На основе набора правил субординации рассчитывается кэш субординаций, содержащий приведенные к пользователями и сокращенные списки подчинения. При наличии правила субординации "ВСЕ КО ВСЕМ" в кэше содержится только оно. Ключом является строка "all". В противном случае кэш содержит по одному элементу для каждого пользователя с непустым списком подчиненных (включая его самого). При подчиненности пользователю всех остальных пользователей (включая его самого) в кэш для него попадает значение 'all' (в списке). В остальных случаях для пользователя перечислены идентификаторы всех других пользователей, подчиненных к нему на основе развертки правил через раскрытие групп и ролей.
Таким образом, набор этих правил позволяет гибко настроить параметры подчиненности, которые в дальнейшем могут быть использованы для фильтрации и огранчиения доступа к данным.
Пример работы с подчиненностью можно посмотреть в [[Доступ к данным и приложениям. Роли#Подчиненность пользователей|курсе по разработке приложений]].


= Роли и ограничения доступа =
= Роли и ограничения доступа =

Версия от 10:58, 5 июня 2025

Общая информация

Платформа Эра предоставляет очень гибкую ролевую модель, позволяющую настраивать структуру и права пользователей любой сложности.

Ролевую модель реализуют три основных компонента:

  • Система доменов
  • Система групп пользователей и субординации
  • Система ролей и мандатов

Комбинация всех трех систем позволяет настроить организационную сруктуру любой сложности, от сложной подчиненности отделов компании до использования несколькими заказчиками одного инстанса платформы со строгим разграничением доступа к данным.

Домены

Домен - это элемент структуры данных, определяющий границы между данными внутри развернутой системы «Era».

Домены представляют собой иерархическое доменное дерево, где каждый дочерний домен наследует имя своего родительского домена.

Логика работы системы использует домены и принадлежащие им объекты при реализации функционала и определении доступа для отдельных пользователей. Любой объект, доступный снаружи через API, принадлежит какому-либо домену. В том числе любой пользователь системы принадлежит одному конкретному домену и может оперировать только данными внутри домена. Все данные внутри домена по умолчанию замкнуты. Та сущность, которая принадлежит одному домену, не может принадлежать другому домену. За редким исключением на вертикальной иерархии, домены, их пользователи, процессы и объекты не имеют доступа к данным друг друга.

Домены участвуют в распределении количественных лицензий по дереву. Каждый домен из переданных ему от родительского домена лицензий резервирует часть под свое использование, а остальные может передавать дочерним доменам.

Фактически, система доменов позволяет создавать изолированные контексты в рамках платформы, т.е. возможно обособленное использование одного инстанса двумя или более заказчиками, исключающее взаимный доступ к данным.

Каждый инстанс платформы по-умолчанию имеет мастер-домен, который используется только для настройки и администрирования, например era.example.com.

Для использования конечными пользователями, создается один или несколько дочерних доменов (например, sip.era.example.com). Пользователи и бизнес-данные будут относиться только к этому дочернему домену, доступ к мастер-домену остается только у администраторов платформы. Каждый дочерний домен в свою очередь может создавать собственные дочерние домены, если это необходимо. Данные каждого домена также будут изолированы, и они будут работать обособленно.

Каждый домен получает от вышестоящего домена набор лицензий, часть которых он может разрезервировать себе, а другую часть может распределить по дочерним доменам. Таким образом, осуществляется иерархические распределение лицензий.

Домен не привязан к какому-либо серверу платформы, а так же может быть не связан с реальным доменным именем сервера (FQDN), так как эта сущность присутствутет только на уровне данных платформы.

Больше технических деталей про работу домена можно найти на ресурсе Vendor.

Пользователи и группы пользователей

Пользователь отражает учетную запись с доступом к системе. Каждый пользователь обладает параметрами доступа, набором ролей и прав администратора.

Группа пользователей определяет общий набор ролей для этих пользователей. Каждая группа определяется набором ролей, составом пользователей и вложенными группами.

Роли вложенных групп также применяются к пользователем родительской группы. При использовании вложенных групп не допускаются циклы.

Большая часть функционала разграничивается ролями пользователей, которые они могут получить лично или через членство в группе. Детально работа ролей будет описана далее.

Также, функционал разработчика приложений позволяет произвольно проверять отношение пользователя к конкреткной группе для определения алгоритма работы кастомного функционала.

Правила субординации

Правила субординации определяют отношения субординации между пользователями.

Отношения задаются между пользователями, группами и ролями. Существует также особый тип - ВСЕ ('all').

Каждое отношение задается между одним вышестоящим элементом одного из типов и несколькими нижестоящими элементами одного из типов. Группы и пользователи задаются идентификаторами, роли задаются именами. По умолчанию добавляется правило "ВСЕ КО ВСЕМ". При наличии такого правила, все остальные правила не имеют значения. На основе набора правил субординации рассчитывается кэш субординаций, содержащий приведенные к пользователями и сокращенные списки подчинения. При наличии правила субординации "ВСЕ КО ВСЕМ" в кэше содержится только оно. Ключом является строка "all". В противном случае кэш содержит по одному элементу для каждого пользователя с непустым списком подчиненных (включая его самого). При подчиненности пользователю всех остальных пользователей (включая его самого) в кэш для него попадает значение 'all' (в списке). В остальных случаях для пользователя перечислены идентификаторы всех других пользователей, подчиненных к нему на основе развертки правил через раскрытие групп и ролей.

Таким образом, набор этих правил позволяет гибко настроить параметры подчиненности, которые в дальнейшем могут быть использованы для фильтрации и огранчиения доступа к данным.

Пример работы с подчиненностью можно посмотреть в курсе по разработке приложений.

Роли и ограничения доступа