Разрешения на основе ролей

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

Роли и Сегменты появляются в системном дереве, если хотя бы у одного пользователя в Настройках аккаунта активировано свойство Использовать разрешения на основе ролей.

Сегмент

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

Чтобы создать сегмент, включающий все устройства, сегмент должен содержать следующие контекстные маски:

  • users

  • users.*

  • users.role.*

  • users.role.devices.*

  • users.admin.devices.*

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

Роли

После создания вышеуказанного Сегмента можно создать Роль для предоставления доступа к определенным типам устройств. Чтобы предоставить доступ ко всем объектам во всех виртуальных устройствах, исключая Функции и Переменные, в таблицу прав доступа роли может быть добавлена следующая строка:

  • Тип контекста: тип контекстов, к которым будут предоставляться разрешения, например, device.virtual предоставляет разрешения к контекстам типа "device.virtual".

  • Тип объекта: тип объектов контекста, к которым будут предоставлены разрешения, например, Все указывает, что разрешение будет применено ко всем объектам контекста указанного типа.

  • Объект: имя объекта контекста, к которому будут предоставлены разрешения, например, Все указывает, что разрешение будет применено ко всем объектам указанного типа.

  • Исключения - вложенная таблица объектов, для которых данное разрешение не будет применяться.

    • Тип объекта: тип объекта контекста, к которому не будут предоставлены разрешения, например, Функция указывает, что разрешения не будут применены к объекту типа "Функция".

    • Объект: имя объекта контекста, к которому не будут предоставлены разрешения, например, Вычислить указывает, что функция "Вычислить" будет исключена из применения данного разрешения.

  • Права доступа: тип применяемых прав, например, Все дает права на чтение, запись и выполнение для пользователей указанных сущностей.

Назначение прав доступа пользователям

Для того чтобы предоставить пользователю доступ ко всем виртуальным устройствам и, при этом, запретить доступ к функции Вычислить, необходимо установить в свойствах пользователя Сегмент и Роль, созданные выше. На вкладке Разрешения на основе ролей для требуемого пользователя добавьте строку и укажите следующие значения:

  • Маска контекста или сегмент: segments.<имя сегмента, созданного выше> для указания сегмента.

  • Роль: roles.<имя созданной выше роли> для указания роли.