Перейти к основному содержимому
Версия: 1.22.3

Правила контроля доступа

подсказка

Требуемая роль: security_admin.

Правило контроля доступа (ACL, Access Control List) указывает, каким пользователям и/или процессам разрешен доступ к объектам, а также какие операции можно проводить с этими объектами.

В SimpleOne пользователи проверяются на соответствие набору требований правил для доступа, прежде чем им будет разрешено работать с данными.

Правила контроля доступа определяют:

  • Объект для защиты.
  • Операцию для защиты.
  • Необходимые разрешения.

Объекты


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

В данной таблице представлены примеры объектов:

ТипТаблицаКолонкаЗащищаемый объект
записьПроблемы (itsm_problem)(не задано)Таблица Проблемы.
записьИнциденты (itsm_incident)infrastructure_incidentПоле Инфраструктурный инцидент в таблице Инциденты.

Операции


В правилах контроля доступа операция относится к действию проверки, выполняемой над указанным объектом. С некоторыми объектами, например, с записями, можно выполнять несколько операций.

В данной талице представлены примеры объектов:

ТипТаблицаКолонкаЗащищаемый объект
[Create] созданиеitsm_problem(не задано)Создание записей в таблице Проблемы. Сгенерированное название записи правила – [Create].itsm_problem
[Write] записьitsm_incidentinfrastructure_incidentРедактирование поля Инфраструктурный инцидент в таблице Инциденты. Сгенерированное название записи правила – [Write].itsm_incident.active

Разрешения


Разрешения определяют детали доступа к названному объекту и операции. Ответственные лица должны указать разрешение со следующей информацией:

  • Роли пользователей в поле Роли.
  • Условия.
  • Скрипт, возвращающий значение true или false, или задающий переменной answer значение true или false.

Подробнее читайте в статье Создание правил контроля доступа.

Чтобы выполнить конкретную операцию над конкретным объектом, пользователь должен удовлетворять ВСЕМ разрешениям, перечисленным в правиле контроля доступа. Например, чтобы получить доступ к активной записи в таблице Статьи, пользователь должен выполнить следующие условия:

Тип разрешенияТребованияОписание
РолиТребуется роль: service_ownerТолько пользователи с ролью service_owner могут читать статьи.
УсловиеВладелец равно (динамическое) ЯСтатья доступна владельцу записи Элемент контента, с которым связана статья. Пустое условие возвращает значение true.

Системное свойство acl.disabled позволяет отключить все проверки по правилам контроля доступа.

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

  1. Перейдите в Свойства системы → Свойство ACL.
  2. В поле Значение введите true, чтобы отключить проверку по правилам, или false, чтобы ее включить.
  3. Нажмите Сохранить или Сохранить и выйти.
предупреждение

Установка значения true может привести к открытию несанкционированного доступа к данным вашего экземпляра SimpleOne. Поэтому используйте свойство осторожно и не забывайте выключать его после всех необходимых операций.

Как ACL проверяет разрешения


  1. При запросе данных система проверяет, есть ли правила контроля доступа, соответствующие запрошенному объекту и операции.
  2. Если подходящее правило найдено, система проверяет пользователя на соответствие всем требованиям, а затем либо разрешает доступ к объекту и операции, либо запрещает его.
  3. Если пользователь не соответствует одному из требований, система ограничивает доступ.
    • Система проверяет все правила, относящиеся к запрашиваемому объекту. Если пользователь не соответствует всем требованиям ACL к запрашиваемому объекту и операции, система отказывает в доступе к ним.
внимание

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

Отказ в доступе влияет на то, что пользователь видит или делает, в зависимости от самого правила контроля доступа. Например, если отклонено правило доступа на чтение, пользователю будет запрещен просмотр объекта. В зависимости от объекта пользователь не будет видеть поле, записи из списка или страницу пользовательского интерфейса.

В таблице ниже перечислены результаты несоответствия правилу контроля доступа для конкретной операции и типа объекта:

ОперацияРезультаты несоответствия правилу
СозданиеДействие пользовательского интерфейса Создать не отображается пользователю на страницах. Пользователи также не могут создать записи в таблицах, используя API протоколы.
Если у правила на Создание есть условие, которое указывает значение поля, оно всегда возвращается с результатом false. В только что созданных записях поля считаются незаполненными, пока запись не будет сохранена.
ЧтениеОбъекты формы и списка не отображаются для пользователя. Пользователи также не могут извлекать записи таблиц, используя протоколы API.
ЗаписьПоля формы недоступны для редактирования пользователю: они доступны только для чтения. Пользователи также не могут обновлять записи таблицы, используя протоколы API.
УдалениеДействие пользовательского интерфейса Удалить не отображается пользователю на страницах. Пользователи также не могут удалить записи в таблицах, используя API протоколы.