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

Задайте дополнительные условия проверки доступа в виде логического выражения одним из способов:
используйте поле «Условие» для формирования выражения вручную;
используйте окно «Создание условия» для формирования выражения с помощью атрибутов(операндов), функций и операторов.
Для открытия окна нажмите кнопку
:
в настольном приложении в правой половине окна менеджера безопасности;
в веб-приложении на боковой панели «Свойства».
После выполнения одного из действий будет открыто окно «Создание условия»:

Для формирования выражения обратитесь к разделу «Создание формул и выражений».
Примечание. Заданное выражение отображается в поле «Условие» и в окне «Создание условия», независимо от способа формирования выражения.
После выполнения действий будут заданы дополнительные условия проверки доступа.
Для формирования выражения доступны системные и пользовательские атрибуты, которые содержатся в атрибутном доступе.
Системные атрибуты, для которых можно получить значение на основе информации, хранящейся в системе, делятся на группы:
Для разграничения прав доступа на элементы табличного справочника НСИ используется атрибут объекта в виде «OBJECT.ELEMENT.<идентификатор атрибута>». Идентификаторы атрибута элемента содержатся на вкладке «Атрибуты» при открытии справочника на редактирование.
Примечание. Атрибут элемента задается только в дополнительном условии правила.
Для получения подробной информации обратитесь к разделу «Права доступа на элементы справочников НСИ».
Для формирования выражения используются системные функции и функции «ABAC»:
| Наименование | Синтаксис и параметры | Описание |
| Count | Синтаксис. ABAC.Count(<аргумент>). Параметры. В качестве аргумента задается:
|
Метод Count возвращает количество значений в массиве пользовательского атрибута субъекта или объекта, а также количество групп, в которых состоит пользователь, или количество пользователей в группе. Примеры:
Метод возвращает количество значений в массиве пользовательского атрибута объекта с идентификатором «ATTR».
Метод возвращает количество групп, в которых состоит пользователь. |
| Is_Empty | Синтаксис. ABAC.Is_Empty(<аргумент>). Параметры. В качестве аргумента задается:
|
Метод Is_Empty определяет содержание пустого значения пользовательского атрибута субъекта или объекта и возвращает значение:
Примеры:
Метод возвращает значение True, если пользовательский атрибут объекта с идентификатором «ATTR_OBJ» содержит пустое значение, иначе False.
Метод возвращает значение True, если пользовательский атрибут субъекта с идентификатором «ATTR_USER» содержит пустое значение, иначе False. |
| Interseca | Синтаксис. ABAC.Interseca(<аргумент_1>,..., <аргумент_n>), где n - это количество заданных аргументов. Параметры. В качестве аргументов задается:
Примечание. Массив значений должен содержаться хотя бы в одном из заданных аргументов. |
Метод Interseca осуществляет поиск общих значений заданных аргументов и возвращает значение:
Примеры:
Метод возвращает значение True, если в массиве значений пользовательского атрибута объекта с идентификатором «ATTR_1» и в массиве значений пользовательского атрибута субъекта с идентификатором «ATTR_2» содержится значение 3.3, иначе False.
Метод возвращает значение True, если в массиве значений пользовательского атрибута субъекта с идентификатором «ATTR_3» и в массиве значений пользовательского атрибута объекта с идентификатором «ATTR_4» содержатся общие значения, иначе False.
|
| Intersecc | Синтаксис. ABAC.Intersecc("<свойство атрибута>", <аргумент_1>,..., <аргумент_n>), где n - это количество заданных аргументов. Параметры. Свойство атрибута. Фильтрация атрибутов коллекции по указанному свойству. Свойство атрибута указано справа от точки, например, у атрибута «SUBJECT.NAME» одним из свойств является наименование «NAME». Аргументы. В качестве аргументов задается:
|
Метод Intersecc осуществляет поиск общих значений заданных аргументов по указанному свойству атрибута и возвращает значение:
Примеры:
Метод возвращает значение True, если наименование группы «ADMIN» совпадает с одним из наименований в списке групп, в которых состоит пользователь, иначе False.
Метод возвращает значение True, если в списке групп, в которых состоит пользователь, и в массиве значений атрибута объекта с идентификатором «ATTR» содержится хотя бы одно совпадающее наименование группы, иначе False. |
| FindAttr | Синтаксис. ABAC.FindAttr("<свойство атрибута>", <атрибут субъекта>, <искомое значение>, "<свойство найденного атрибута>"). Параметры. Свойство атрибута. Фильтрация атрибутов коллекции по указанному свойству. Свойство атрибута указано справа от точки, например, у атрибута «SUBJECT.NAME», одним из свойств является наименование «NAME». Атрибут субъекта. В качестве атрибута задается список групп, в которых состоит пользователь (SUBJECT.GROUPS). Искомое значение. Числовое или строковое искомое значение, соответствующее указанному свойству атрибута. Свойство найденного атрибута. Свойство найденного атрибута, значение которого необходимо получить. |
Метод FindAttr осуществляет поиск атрибута по указанному свойству в списке групп, в которых состоит пользователь, или в списке пользователей в группе. Возвращает значение заданного свойства найденного атрибута. Примеры:
Метод возвращает значение «ADMIN», если в списке групп, в которых состоит пользователь, содержится наименование группы «ADMIN».
Метод возвращает SID группы «ADMIN», если в списке групп, в которых состоит пользователь, содержится наименование группы «ADMIN». |
См. также:
Настройка атрибутного метода | Добавление правил и политик проверки доступа