Правила контроля доступа
Требуемая роль: security_admin.
Правило контроля доступа (ACL, Access Control List) указывает, каким пользователям и/или процессам разрешен доступ к объектам, а также какие операции можно проводить с этими объектами.
В SimpleOne пользователи проверяются на соответствие набору требований правил для доступа, прежде чем им будет разрешено работать с данными.
Правила контроля доступа определяют:
- Объект для защиты.
- Операцию для защиты.
- Необходимые разрешения.
Объекты
Правила контроля доступа ограничивают доступ к объекту. Каждый объект состоит из типа и наименования таблицы, поля или записи.
В данной таблице представлены примеры объектов:
Тип | Таблица | Колонка | Защищаемый объект |
---|---|---|---|
запись | Проблемы (itsm_problem) | (не задано) | Таблица Проблемы. |
запись | Инциденты (itsm_incident) | infrastructure_incident | Поле Инфраструктурный инцидент в таблице Инциденты. |
Операции
В правилах контроля доступа операция относится к действию проверки, выполняемой над указанным объектом. С некоторыми объектами, например, с записями, можно выполнять несколько операций.
В данной талице представлены примеры объектов:
Тип | Таблица | Колонка | Защищаемый объект |
---|---|---|---|
[Create] создание | itsm_problem | (не задано) | Создание записей в таблице Проблемы. Сгенерированное название записи правила – [Create].itsm_problem |
[Write] запись | itsm_incident | infrastructure_incident | Редактирование поля Инфраструктурный инцидент в таблице Инциденты. Сгенерированное название записи правила – [Write].itsm_incident.active |
Разрешения
Разрешения определяют детали доступа к названному объекту и операции. Ответственные лица должны указать разрешение со следующей информацией:
- Роли пользователей в поле Роли.
- Условия.
- Скрипт, возвращающий значение true или false, или задающий переменной answer значение true или false.
Подробнее читайте в статье Создание правил контроля доступа.
Чтобы выполнить конкретную операцию над конкретным объектом, пользователь должен удовлетворять ВСЕМ разрешениям, перечисленным в правиле контроля доступа. Например, чтобы получить доступ к активной записи в таблице Статьи, пользователь должен выполнить следующие условия:
Тип разрешения | Требования | Описание |
---|---|---|
Роли | Требуется роль: service_owner | Только пользователи с ролью service_owner могут читать статьи. |
Условие | Владелец равно (динамическое) Я | Статья доступна владельцу записи Элемент контента, с которым связана статья. Пустое условие возвращает значение true. |
Системное свойство acl.disabled позволяет отключить все проверки по правилам контроля доступа.
Чтобы отключить проверку безопасности, выполните следующие шаги:
- Перейдите в Свойства системы → Свойство ACL.
- В поле Значение введите true, чтобы отключить проверку по правилам, или false, чтобы ее включить.
- Нажмите Сохранить или Сохранить и выйти.
Установка значения true может привести к открытию несанкционированного доступа к данным вашего экземпляра SimpleOne. Поэтому используйте свойство осторожно и не забывайте выключать его после всех необходимых операций.
Как ACL проверяет разрешения
- При запросе данных система проверяет, есть ли правила контроля доступа, соответствующие запрошенному объекту и операции.
- Если подходящее правило найдено, система проверяет пользователя на соответствие всем требованиям, а затем либо разрешает доступ к объекту и операции, либо запрещает его.
- Если пользователь не соответствует одному из требований, система ограничивает доступ.
- Система проверяет все правила, относящиеся к запрашиваемому объекту. Если пользователь не соответствует всем требованиям ACL к запрашиваемому объекту и операции, система отказывает в доступе к н им.
Если запрошенный объект и операция не имеют связанных правил, пользователь получает к ним доступ. Однако это редкий случай: набор стандартных правил контроля доступа, защищающих все операции с записями, поставляется вместе с коробочной конфигурацией.
Отказ в доступе влияет на то, что пользователь видит или делает, в зависимости от самого правила контроля доступа. Например, если отклонено правило доступа на чтение, пользователю будет запрещен просмотр объекта. В зависимости от объекта пользователь не будет видеть поле, записи из списка или страницу пользовательского интерфейса.
В таблице ниже перечислены результаты несоответствия правилу контроля доступа для конкретной операции и типа объекта:
Операция | Результаты несоответствия правилу |
---|---|
Создание | Действие пользовательского интерфейса Создать не отображается пользователю на страницах. Пользователи также не могут создать записи в таблицах, используя API протоколы. Если у правила на Создание есть условие, которое указывает значение поля, оно всегда возвращается с результатом false. В только что созданных записях поля считаются незаполненными, пока запись не будет сохранена. |
Чтение | Объекты формы и списка не отображаются для пользователя. Пользователи также не могут извлекать записи таблиц, используя протоколы API. |
Запись | Поля формы недоступны для редактирования пользователю: они доступны только для чтения. Пользователи также не могут обновлять записи таблицы, используя протоколы API. |
Удаление | Действие пользовательского интерфейса Удалить не отображается пользователю на страницах. Пользователи также не могут удалить записи в таблицах, используя API протоколы. |