Фильтр позволяет отсеивать и/или дополнительно обрабатывать сторонние изменения учётных записей, обнаруженные при аудите, сразу после обнаружения до отправки уведомлений и сохранения в журнале аудита. Главным образом для автоматического пропуска несущественных с точки зрения нарушения доступа прав, когда таких событий много.
Сценарии должны быть написаны на языке python 2.7 и выполняются в среде IronPython. В сценариях доступна стандартная библиотека IronPython.
Примечание:
Подробнее о IronPython см. документацию: http://ironpython.net/documentation/.
Примечание:
О применении сценариев фильтра событий аудита в веб-интерфейсе администратора см. статью "5.1.4. Настройка интеграции с целевыми системами" руководства по администрированию.
Навигатор по разделу:
1. Контекст
Для сценария содержимого IDM формирует глобальный контекст:
Параметр | Описание |
|---|---|
Account.Name | Имя учётной записи. |
Account.ResourceId | Идентификатор ресурса учётной записи. |
Account.ProfileId | Идентификатор профиля учётной записи. |
Modifications | Список всех сторонних изменений учётной записи. Параметры Modifications см. в разделе "Параметры Modifications". |
AddRightModifications | Список только добавленных прав. |
Connector | Коннектор с уже открытым подключением (закрывать нельзя). |
Debug.Print() | Отладочный вывод. |
Employee | Сотрудник. Свойство типа ScriptEmployee. Параметры Employee см. в разделе "Параметры Employee". |
Unit | Юнит. Свойство типа UnitScriptModel. Параметры Unit см. в разделе "Параметры Unit". |
Role | Роль. Свойство типа ScriptRole. Параметры Role см. в разделе "Параметры Role". |
1.1. Параметры Modifications
Параметр | Описание |
|---|---|
Id | Идентификатор изменения. |
Type | Тип изменения. Доступные типы изменений см. в разделе "Типы изменений". |
Supressed | Тип boolean. Устанавливается значение "true" для изменений, которые требуется полностью пропустить, как если бы они не были обнаружены вообще. |
Hidden | Тип boolean. Устанавливается значение "true" для изменений, которые нужно оставить в журнале аудита скрытыми по умолчанию, и о которых не нужно уведомлять администратора. |
RightName | Человекочитаемое название права. |
RightId | Идентификатор права (для глобальных и для объектных прав). |
HasAttributes | Флаг наличия атрибутов. При значении "true" для права можно указывать значения атрибутов объектов доступа, на которые оно выдаётся. |
Conditions | Атрибуты объектов, соответствующих праву. Массив значений типа GeneratorAccountObjectPredicate. Данный тип содержит свойства:
|
ObjectUri | Идентификатор объекта (для объектных прав). |
LockedByAdministrator | Блокировка требуется из-за ручного запроса (для событий разблокировки). |
1.2. Типы изменений
Название | Описание |
|---|---|
AccountAddRightModification | Добавлено лишнее право |
AccountRemoveRightModification | Удалено необходимое право |
AccountUnlockModification | Разблокирована учётная запись |
AccountDeleteModification | Удалена учётная запись |
1.3. Параметры Role
| Параметр | Описание |
|---|---|
Role.Id | Идентификатор роли. Целочисленный тип. |
Role.Name | Название роли. Строковый тип. |
Role.Properties | Расширенные свойства роли. Массив с парами значений string - ExtendedPropertyValueScriptMode. Данный тип содержит свойства:
|
1.4. Параметры Employee
| Параметр | Описание |
|---|---|
Employee.Id | Идентификатор сотрудника. Целочисленный тип. |
Employee.EMail | Почтовый адрес сотрудника. Строковый тип. |
Employee.FirstName | Имя сотрудника. Строковый тип. |
Employee.LastName | Фамилия сотрудника. Строковый тип. |
Employee.Patronymic | Отчество сотрудника. Строковый тип. |
Employee.PersonnelNumber | Табельный номер сотрудника. Строковый тип. |
Employee.Extension | Расширенные данные сотрудника, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag. |
Employee.Extension.Properties | Массив свойств сотрудника, предоставленных кадровой системой. |
Employee.BirthDate | Дата рождения в формате ISO 8061 (гггг-мм-дд). Строковый тип. |
Employee.Division | Подразделение сотрудника с ссылкой на родительское подразделение. Свойство типа ScriptDivision. |
Employee.Division.Id | Идентификатор подразделения сотрудника. Целочисленный тип. |
Employee.Division.Name | Название подразделения сотрудника. Строковый тип. |
Employee.Division.Extension | Расширенные данные подразделения, предоставленные кадровой системой (без наследования). Свойство типа ExtensionBag. |
Employee.Division.Extension.Properties | Массив свойств подразделения, предоставленных кадровой системой. |
Employee.Division.Parent | Ссылка на родительское подразделения (рекурсивная). Свойство типа ScriptDivision. |
Employee.Division.ManagerId | Идентификатор руководителя подразделения. Целочисленный тип. |
Employee.Division.ExternalId | Идентификатор подразделения сотрудника в кадровой системе. Строковый тип. |
Employee.Division.GetFullName() | Функция для получения полного названия подразделения в формате DN (в качестве OU берутся либо первые 64 символа названия подразделения, либо значение Extension.OU) |
Employee.Division.GetFullNameExplicit(bool ignoreMissing = false) | Функция для получения полного названия подразделения в формате DN без вывода OU из названий подразделений (в качестве OU берётся только значение Extension.OU) При ignoreMissing=True, если хотя бы одно значение не заполнено, возвращается None, иначе компонент DN пропускается. |
Employee.Division.GetPath() | Функция для получения списка подразделений на пути к этому подразделению начиная от корневого и заканчивая текущим. Employee.Division.GetPath()[0] всегда корневое. |
Employee.Position | Должность сотрудника. Свойство типа ScriptPosition. |
Employee.Position.Id | Идентификатор должности сотрудника. Целочисленный тип. |
Employee.Position.Name | Название должности сотрудника. Строковый тип. |
Employee.Position.ExternalId | Идентификатор должности сотрудника в кадровой системе. Строковый тип. |
Employee.ExternalId | Идентификатор сотрудника в кадровой системе. Строковый тип. |
Employee.PersonId | Идентификатор физического лица в кадровой системе. Строковый тип. |
Employee.GetManagerId() | Функция для получения идентификатора руководителя ближайшего по иерархии подразделения кроме тех подразделений, которыми руководит указанный работник. |
Employee.GetDirectManagerId() | Функция для получения идентификатора текущего непосредственного руководителя работника. |
1.5. Параметры Unit
| Параметр | Описание |
|---|---|
Unit.Id | Идентификатор юнита. Строковый тип. |
Unit.Name | Имя юнита. Строковый тип. |
Unit.ParentId | Идентификатор родительского юнита. Строковый тип. |
Unit.DisableIdentity | Флаг отключения авторизации. Тип boolean. |
Unit.Path | Путь к юниту. Строковый тип. |
Unit.Type | Тип юнита. Свойство типа UnitType. |
Unit.Type.Id | Идентификатор типа юнита. Тип Guid. |
Unit.Type.Name | Название типа юнита. Строковый тип. |
Unit.Type.AllowAssignments | Флаг разрешения назначения юнитов данного типа сотрудникам. Тип boolean. |
Unit.Type.IsIdentitySubject | Флаг, показывающий, являются ли юниты данного типа субъектами авторизации. Тип boolean. |
Unit.Type.Icon | Иконка типа юнита. Строковый тип. |
Unit.Type.Links | Ссылки на другие типы юнитов. Массив значений типа UnitTypeLink. Данный тип содержит свойства:
|
Unit.Type.Properties | Свойства типа юнитов. Массив значений типа UnitTypeProperty. Данный тип содержит свойства:
|
Unit.Type.Children | Дочерние типы юнитов. Массив значений типа UnitTypeChild. Данный тип содержит свойства:
|
Unit.Properties | Расширенные свойства юнита. Массив с парами значений string - UnitPropertyValueScriptModel. Данный тип содержит свойства:
|
Unit.Links | Ссылки юнита. Массив значений типа UnitLink. Данный тип содержит свойства:
|
Unit.Responsibles | Ответственные за юнит. Массив значений типа UnitEmployeeResponsibleScriptModel. Данный тип содержит свойства:
|
Unit.Assignments | Назначения юнита сотрудникам. Массив значений типа UnitAssignment. Данный тип содержит свойства:
|
Unit.Children | Дочерние юниты. Массив значений типа Unit. Данный тип содержит свойства и методы:
|
2. Примеры сценариев
for m in AddRightModifications:
if m.RightName.startswith("CN=Domain Guest"):
m.Supressed = True
for m in AddRightModifications:
if m.ObjectUri is None:
Connector.DropUserRights(Account.Name, [m.RightId])
else:
Connector.DropUserObjectRight(Account.Name, m.ObjectUri, m.RightId)
m.Supressed = True