Описание задач#

Основные интеграционные задачи#

Обязательная очередность только у задач(tasks) с 1 по 6. Остальные задачи можно выполнять в любом порядке, так как они либо зависимы от наличия ресурса, либо от тех задач, что уже были выполнены.

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

При загрузке IDM сразу же автоматически выполняется задача(task) 01 SYSTEM Configuration Modify, которая меняет системную конфигурацию.

Примеры конфигураций, которые описываются в задаче:

  1. Настройка панели ADUserPasswordEditPanel для создания AD пароля.

  2. Отправка пароля менеджеру при создании УЗ в AD.

  3. Настройка и отправка уведомлений при изменении данных пользователя в IDM.

  4. Настройка и отправка уведомлений при изменении групп AD у пользователя в IDM.

  5. Описание ObjectTemplate и типов объектов в IDM.

  6. Описание SodConflict политик (ограничения для конфликтующих ролей).

  7. Глобальные политики (например, запрет назначения групп AD пользователю без аккаунта AD; ограничения для конкретных ролей т.д).

Блок

Категория задачи

Наименование задачи

Описание задачи

Очередность запуска задач (где 1 - первый порядковый номер)

Комментарий

Расписание для перезапуска

SYSTEM CONFIGURATION

Single bulk action task

01 SYSTEM Configuration Modify

Задача выполняет обновление системной конфигурации

Запуск автоматически после загрузки IDM

DEPARTMENTS (Департаменты)

KIS Departments tasks

02 DEPARTMENTS Import. Multi-node

Задача выполняет выгрузку департаментов из представления kis.v_current_departments_mid в объекты организационных единиц в IDM в многопоточном режиме

1

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

03 DEPARTMENTS Recompute all objects

Задача выполняет проставление константы в поле родительского подразделения («Родительское подразделение») всем подразделениям, у которых нет корректного родительского подразделения в IDM в многопоточном режиме

2

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

04 EMPLOYEES Import. Multi-node

Задача выполняет выгрузку сотрудников из представления kis.v_current_employees в объекты пользователей в IDM в многопоточном режиме

3

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES Focal Objects

KIS Employees tasks

05 EMPLOYEES Focal Objects Task. Multi-node

Задача выполняет разбиение сотрудников в IDM на сущности в многопоточном режиме

4

Добавлена доработка альтернатив при выполнении сценария при выводе сотрудника в декрет. При этом, через 3 дня после наступления даты выхода в декрет, у сотрудника назначается роль Сотрудник в декрете, блокируются

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

AD

AD tasks

06 AD Modify Fosbykos

Задача выполняет изменение пути контейнера, в котором создается УЗ сотрудника в AD

5

Запускается в том случае, когда нужно, чтобы создание УЗ сотрудника в AD было сделано в определенной OU

Нет расписания. Однократное выполнение. Ручной запуск

AD

AD tasks

20-30 AD Import group. Multi-node

Задача выполняет выгрузку групп безопасности из AD в IDM в виде ролей в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Import Recovery

Задача выполняет повторную выгрузку департаментов, которые упали при выполнении задачи импорта 02 DEPARTMENTS Import

Запускается в том случае, когда задача импорта департаментов 02 DEPARTMENTS Import упала с ошибками. Выгружает только те департаменты, которые упали при импорте с ошибками (fatal_error или partial_error). В случае, если нужно повторно выгрузить департаменты из других задач импорта, то в задаче 20-30 DEPARTMENTS Import Recovery изменить oid в атрибуте taskRef

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Recompute. Multi-node

Задача выполняет повторное вычисление департаментов (проставление родительских подразделений) в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Live Synchronization

Задача выполняет модификацию объекта организационной единицы в IDM (задача отработает только в том случае, когда было изменение даты record_create_date в БД)

Запуск по расписанию раз в 15 секунд. interval = 15. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Reconciliation. Multi-node

Задача выполняет глобальное обновление объекта организационной единицы в IDM. Обновление происходит в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Live Synchronization with delay

Задача выполняет модификацию объекта организационной единицы в IDM, синхронизация реагирует на изменения даты record_create_date. Обрабатывает изменения для организаций с разницей не более указанного в задаче времени (параметр syncDelay) от последнего record_create_date.

Запуск по расписанию раз в 120 минут. interval = 15. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Import Recovery

Задача выполняет повторную выгрузку пользователей, которые упали при выполнении задачи импорта 05 EMPLOYEES Import

Запускается в том случае, когда задача импорта сотрудников 05 EMPLOYEES Import упала с ошибками. Выгружает только тех сотрудников, которые упали при импорте с ошибками (fatal_error или partial_error). В случае, если нужно повторно выгрузить сотрудников из других задач импорта, то в задаче 20-30 EMPLOYEES SAP Recovery изменить oid в атрибуте taskRef

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Live Synchronization

Задача выполняет модификацию объекта пользователя в IDM (задача отработает только в том случае, когда было изменение даты record_create_date в БД)

Запуск по расписанию раз в 15 секунд. interval = 15. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Recomputation. Multi-node

Задача выполняет полный перерасчет всего для пользователя (вызов всех маппингов). Перерасчет выполняется в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Name migration

Задача выполняет смену имени сущностей карточки и контракта согласно новой политике

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Reconcile with status needReconcile. Single-node

Задача выполняет глобальное обновление объекта пользователя в IDM, у которого флаг needReconcile = true. Задача проходит по всем записям сотрудников, у которых атрибут needReconcile = true и запускает для этих записей реконсиляцию для обновления текущего состояния.

Запуск по расписанию раз в 5 минут. interval = 300. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES search failed add resource

Задача выполняет поиск пользователей, для которых не удалось создать аккаунт в каком-то ресурсе. Такому пользователю устанавливается значение атрибута extension/needReconcile = true. Затем выполняется задача «EMPLOYEES Reconcile with status needReconcile» и для таких пользователей выполняется повторная попытка создания аккаунта.

Запуск по расписанию раз в 2 минуты. interval = 120. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

05 EMPLOYEES Import filter on last edit. Multi-node

Задача выполняет импорт по фильтру record_create_date в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CONTRACT Recompute. Multi-node

Задача выполняет пересчет всех контрактов в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

60 TEMPLATE EMPLOYEES reconcile with status needReconcile

Задача выполняет реконсиляцию карточек, у которых стоит флаг «needReconcile». Задача является шаблоном (а именно запускать ее руками нельзя). Задача запускается автоматически после выполнения «60 TEMPLATE Set needReconcile for users with business role». Все завершенные экземпляры этой задачи удаляются автоматически через 1 день.

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

EMPLOYEES (Сотрудники)

KIS Employees tasks

60 TEMPLATE Delete role task template

Задача выполняет удаление роли из IDM. Перед удалением роли из IDM выполняется удаление роли из всех assignment и inducement. Задача является шаблоном, запускается автоматически при попытке удалить архивированную/отключенную роль. Завершенный экземпляр задачи удаляется автоматически через 7 дней.

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

EMPLOYEES (Сотрудники)

KIS Employees tasks

60 TEMPLATE Set needReconcile for users with business role

Задача выполняет проставление флага «needReconcile» карточкам. Задача является шаблоном, запускается автоматически при изменении inducement у бизнес роли. Завершенные экземпляры задачи удаляются автоматически через 1 день

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

EMPLOYEES (Сотрудники)

KIS Employees tasks

60 TEMPLATE Initial load accounts

Задача выполняет первоначальную загрузку аккаунтов. Задача является шаблоном (а именно запускать ее руками нельзя!)

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Reconciliation. Multi-node

Задача выполняет глобальное обновление объекта пользователя в IDM. Обновление происходит в многопоточном режиме

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Focal Invalid Objects Task

Задача выполняет разбиение тех сотрудников, которые попали на вкладку «Rejected Records» в IDM

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Live Synchronization with delay

Задача выполняет модификацию пользователей, синхронизация реагирует на изменения даты record_create_date. Обрабатывает изменения для пользователей с разницей не более указанного в задаче времени (параметр syncDelay) от последнего record_create_date.

Запуск по расписанию раз в 15 секунд. interval = 15. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Day Reconciliation. Multi-node

Задача выполняет глобальное обновление пользователей, у которых есть изменения за 2 дня

Запуск ежедневно. cronLikePattern = 0 0 0 ? * * *. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES saplogin mailalias task. Multi-node

Задача выполняет импорт saplogin, mailalias

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CARD Recompute. Multi-node

Задача выполняет перерасчет всех карточек, у которых были изменения за определенный период

Запуск по расписанию раз в 2 минуты. interval = 120. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES INDIVIDUALS Recompute. Multi-node

Задача выполняет перерасчет всех физлиц

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 Initial load accounts task creator

Задача выполняет создание задачи на первоначальную загрузку аккаунтов

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Migrate task. Set contractStatus

Задача выполняет проставление(вычисление) contractStatus для уже существующих контрактов

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

EMPLOYEES migrate to lifecycleState

Задача выполняет переход текущих записей о трудоустройстве на lifecycleState

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CARD Create recompute trigger. Multi-node

Задача выполняет создание триггера для перерасчета всех карточек, у которых были изменения за определенный период

Запуск по расписанию раз в 2 минуты. interval = 120. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CARD Recompute v2. Multi-node

Задача выполняет перерасчет всех карточек, у которых были изменения за определенный период. Интервал окончания обновляется только, если выполнение activity „cards-recompute“ завершилось без ошибок

Запуск по расписанию раз в 2 минуты. interval = 120. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

05 EMPLOYEES Union focal Objects Task. Multi-node

Задача выполняет разбиение сотрудников на сущности, назначает бизнес-роли сотрудникам, увольняет сотрудников, выводит в декрет и выводит из декрета. При такой реализации исключен параллельный запуск кадровых сценариев для одной карточки.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

AD

AD tasks

20-30 AD Live Synchronization

Задача выполняет модификацию объекта карточки сотрудника в AD

Запуск по расписанию раз в 10 секунд. interval = 10. Ручной запуск

AD

AD tasks

20-30 AD Reconciliation. Single-node

Задача выполняет глобальное обновление объекта пользователя в AD

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

AD

AD tasks

20-30 AD Initial load groups

Задача выполняет первоначальную загрузку крупп из AD

Нет расписания. Однократное выполнение. Ручной запуск

AD

AD tasks

20-30 AD Reconcile Cards with status Need reconcile

Задача выполняет обновление корточек, которые имеют статус Need reconcile

Нет расписания. Однократное выполнение. Ручной запуск

AD

AD tasks

AD Dead shadows cleaner

Задача выполняет удаление ссылки на dead shadows и делает реконсиляцию в случае, если задан ресурс AD, но нет проекции

Нет расписания. Однократное выполнение. Ручной запуск

AD

AD tasks

20-30 AD/Exchange Delete all unlinked shadows. Multi-node

Задача выполняет удаление всех unlinked shadows для AD из IDM

Нет расписания. Однократное выполнение. Ручной запуск

AD

AD tasks

TEMPLATE Task set password in pending operation

При переводе ресурса AD из состояния maintenance запускается шаблонная задача. Задача выполняет подставление unicodePwd и pwdLastSet в самую раннюю pending operation в состоянии IN_PROGRESS.

Для обработки pendingOperation следует запустить задачу вручную, указав oid ресурса, который вывели из ручного режима. Для этого следует отредактировать задачу в RAW или XML представлении, добавив в блок <extension> атрибут <resourceOid> со значением oid ресурса.

Нет расписания. Однократное выполнение. Ручной запуск.

AD

AD tasks

Assigning an attribute controlledByIDM value task

Задача выполняет проставление значения атрибуту controlledByIDM для выборки групп/ролей AD. Массовое проставление данного признака с заданным значением во все группы AD в IDM. Группы AD задаются в условиях выборки.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Cleanup sync genericObjects

Задача выполняет очистку объектов синхронизации (GenericObject) в случае если штатная очистка объектов по каким-то причинам не отработала в многопоточном режиме

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Search stalled tasks

Задача выполняет поиск зависших задач и выполняет их перезапуск

Запуск после 12 часов. cronLikePattern = * 12 * * *. Ручной запуск

SYSTEM TASK

SYSTEM tasks

20-30 Retry task

Задача выполняет перезапуск зависших подзадач

Запуск по расписанию раз в 3 минуты. interval = 180. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Task of monitoring the execution time of tasks

Задача отслеживает время исполнения текущей задачи. Для задач добавлен параметр расширения enableExecutionTimeLimit. Если он задан в true, то задача «Task of monitoring the execution time of tasks» будет отслеживать время исполнения текущей задачи. В системную конфигурацию добавлен атрибут taskRunDuration. В нем в формате duration задается максимальное время исполнения каждой отслеживаемой задачи.

Задачи, остановленные «Task of monitoring the execution time of tasks», перезапускаются вручную

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Search cards with criticality roles - trigger scanner

Автоматическая задача. Производит поиск карточек, на которые назначены роли с триггером changeRoleCriticality, и проставляет триггер для пересчета критичности на эти карточки.

Триггер changeRoleCriticality автоматически проставляется на роль АС при изменении признаков критичности (параметры criticality_pdn, criticality_bt, criticality_dpk). Если все параметры были ранее в false, и хотя бы один получил значение true, либо если хотя бы один имел значение true, и после операции все получили значение false - триггер проставляется.

Запуск по расписанию. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Recompute card criticality role - trigger scanner

Задача проверяет учетные карточки на наличие триггера recomputeCardCriticalityRole, и запускает пересчет доступов пользователя. В случае успешной реконсиляции триггер удаляется.

В задаче можно сконфигурировать блок <extension>, добавив в него список ресурсов, для которых необходимо проводить проверку реконсиляции доступов. Для этого в <extension> следует добавить блоки вида <checkResourceOid xsi:type="xsd:string">RESOURCE_OID_1</checkResourceOid>. Если не заполнить данный блок - триггер будет удаляться только при полностью успешной реконсиляции доступов.

Запуск по расписанию. Ручной запуск

Задачи для проверки персональных сценариев#

Для корректной работы перечисленных ниже задач, в IDM должны отработать задачи с 1 по 5 из таблицы в разделе Основные интеграционные задачи.

Задачи «50 SCENARIO TASK …» независимы друг от друга и могут быть запущены в любой последовательности.

Для задачи «50 SCENARIO TASK personnel scenario coordinator» стоит настройка <schedule><cronLikePattern>0 0 * ? * * *</cronLikePattern></schedule> – запуск задачи раз в час.

У всех остальных задач по персональным сценариям стоит настройка <schedule><cronLikePattern>0 0 6 * * ?</cronLikePattern></schedule> – запуск задач раз в сутки.

Блок

Категория задачи

Наименование задачи

Описание задачи

Комментарий

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Dismissing an employee task (Deprecated)

Задача выполняется при увольнении сотрудника.

Принцип работы задачи: Задача проходит по всем записям сотрудников в IDM и проверяет наличие атрибута firedate. Если атрибут firedate меньше текущей даты, то соответствующим сущностям (card/contract/individual) проставляется статус ARCHIVED. В случае, если была УЗ в AD, то для УЗ в AD происходит изменения соответствующих значений атрибутов при увольнении согласно постановке

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Dismissing an employee task template

Задача-шаблон запускается при увольнении сотрудника.

Принцип работы задачи: Задача запускается координатором «50 SCENARIO TASK personnel scenario coordinator». Задача проходит по всем записям сотрудников в IDM и проверяет наличие атрибута firedate. Если атрибут firedate меньше текущей даты, то соответствующим сущностям (card/contract/individual) проставляется статус ARCHIVED. В случае, если была УЗ в AD, то для УЗ в AD происходит изменения соответствующих значений атрибутов при увольнении согласно постановке

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Last logon task

Задача выполняется при неактивности сотрудника.

Принцип работы задачи: Задача проходит по всем УЗ записям сотрудников в AD (по всем shadow объектам) и проверяет наличие атрибута comment (данный атрибут взят для примера). Если в атрибуте указана дата меньше текущей даты и с указанной даты прошло больше 28 дней, то у сотрудника отбирается роль «Role access to AC»

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Maternity leave task template

Задача-шаблон запускается при декретном отпуске сотрудника.

Принцип работы задачи: Задача запускается координатором «50 SCENARIO TASK personnel scenario coordinator». Задача проходит по всем записям сотрудников в IDM и проверяет наличие атрибутов absBegDate - дата начала отсутствия сотрудника absEndDate - дата окончания отсутствия сотрудника absCode - код отсутствия сотрудника. Если дата absBegDate не пустая и меньше текущей даты, не указана дата absEndDate или установлено значение больше текущей даты и absCode равно одному из значений кода декрета *, то соответствующим сущностям (card/contract/individual) проставляется статус DISABLED и назначается соответствующая роль карточке.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Prolonged absence of an employee task

Задача выполняется при длительном отсутствие сотрудника.

Принцип работы задачи: Если дата absBegDate не пуста и меньше текущей даты, дата absEndDate не указывается. или установлено значение, превышающее текущую дату, и с указанной даты absBegDate прошло более 28 дней, тогда статус объекта = ОТКЛЮЧЕН.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Maternity leave IN task

Задача выполняется при выходе сотрудника в декретный отпуск.

Принцип работы задачи: Если дата absBegDate не пуста и меньше текущей даты, дата absEndDate не указывается. или установлено значение больше текущей даты и absCode равен одному из значений кода указа, тогда статус сущности = ОТКЛЮЧЕН и карточке присвоена соответствующая роль. Также, на 3 день после наступления absBegDate у сотрудника блокируются роль Сотрудник и все прямые назначения, и назначается роль Сотрудник в декрете, а в объекте Запись о трудоустройстве сотрудника параметр contractStatus получает значение maternity_leave.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Maternity leave OUT task

Задача выполняется при выходе сотрудника из декретного отпуска.

Принцип работы задачи: Если дата absBegDate не пуста и меньше текущей даты, дата absEndDate не указывается. или установлено значение больше текущей даты и absCode равен одному из значений кода указа, тогда статус сущности = ОТКЛЮЧЕН и карточке присваивается соответствующая роль.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK personnel scenario coordinator

Создает задачи для декрета и увольнения по шаблонам. Задачи создаются в зависимости от параметров, указанных в Personnel scenario iterations by time and tbcode map.

Принцип работы задачи: По времени создает шаблоны задач декрета и увольнения для кодов указанных в Personnel scenario iterations by time and tbcode map dismissing - хранит в себе параметры кода и времени выполнения для персональных сценариев. Максимальное количество атрибутов неограниченно. code - sbertbcode, time - время сервера, когда необходимо выполнить сценарий для сотрудников с sbertbcode из атрибута „code“. Время указывается в формате „HH:MM:SS“, но минуты и секунды всегда должны быть равны „00“. Пример: 77

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Activate contracts

Задача переводит контракты из статуса кандидата в активный статус.

Принцип работы задачи: Задача проходит по всем контрактам сотрудников со статусом кандидат в IDM и с атрибутом hiredate меньше текущей даты. Найденным контрактам проставляется активный статус work. Если у пользователя дата приема и дата увольнения в один день и он был кандидатом, то такой пользователь не увольняется данной задачей. Увольнение такого пользователя происходит после запуска задачи увольнения.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK long absent in

Задача обрабатывает учетные карточки, у которых длительность отсутствия больше или равна заданному периоду (longAbsentPeriod в системной конфигурации) на момент запуска задачи, и код отсутствия не указан в параметре exclusionAbsCode. Таким учетным карточкам проставляется effectiveMarkRef = Long absent mark, блокируются все первичные роли (status = disabled, disabledReason = LONG_ABSENT) и блокируются учетные записи в соответствующих ресурсах (administrativeStatus = Disabled)

Модель данных расширяется параметрами: longAbsentPeriod (xsd:duration) - атрибут отвечает за настройку периода длительного отсутствия; exclusionAbsCode (xsd:string maxOccurs="unbounded") - атрибут отвечает за настройку кодов отсутствия, которые исключены из расчета длительного отсутствия.
Для корректной работы задачи у учетной карточки должны быть заполнены поля Код отсутствия, Дата начала отсутствия, Дата окончания отсутствия.

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK long absent out

Задача обрабатывает учетные карточки, имеющие effectiveMarkRef = Long absent mark, у которых текущая дата равна дате окончания отсутствия минус 1 день. Таким учетным карточкам разблокируются заблокированные задачей 50 SCENARIO TASK long absent in роли и учетные записи.

EMPLOYEES (Сотрудники)

Scenario tasks

50 Personal data cleanup

Задача предназначена для постепенного удаления персональных данных (ПДн) у сотрудников, уволенных из организации. Удаление происходит в два этапа, разделённых по времени:
Первый этап (через 30 дней после увольнения):
Очищаются контактные и идентификационные данные:
- Дата рождения (birthdate).
- СНИЛС (snils).
- Телефон (telephoneNumber).

Второй этап (через 5 лет после увольнения):
Очищаются ФИО:
- Имя (givenName).
- Фамилия (familyName).
- Отчество (additionalName).
- Given name history values.
- Family name history values.
- Additional name history values.

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

Очистка данных логируется с уровнем INFO (например, INFO (com.evolveum.midpoint.expression.task.cleanupPdn.firstStage)).

EMPLOYEES (Сотрудники)

Scenario tasks

50 SCENARIO TASK Long Inactivity With Search in Domain

Задача предназначена для блокировки учетных записей AD при длительной неактивности. Задача выполняет поиск УЗ, для которых выполняются условия блокировки по неактивности, добавляет им триггер needDisableByLongInactivity, блокирует УЗ с таким триггером и удаляет этот триггер, а затем формирует отчет по заблокированным УЗ (Report on Processing Inactive AD Accounts ${taskStartDateTime}, прикрепляется к задаче, также его можно найти на вкладке Отчеты).

Задача конфигурируемая, для настройки доступны следующие параметры:
- configuration_startDateOfInactivityAccounting - Дата начала учета неактивности для новых учеток (в которые не логинились).
- configuration_resourceOid - oid ресурса.
- configuration_additionalQuery - дополнительный фильтр. Добавится через and к основному фильтру.

Задача использует значения конфигурации объектов IDM для расчета условий блокировки по неактивности. Используется значение из более приоритетного объекта, приоритет в порядке возрастания: Системная конфигурация -> Ресурс -> Учетная карточка -> Учетная запись (shadow).
Доступны следующие параметры:
Системная конфигурация:
- acceptableInactivityPeriod - Допустимый период неактивности до блокировки.
- significantActivities - Перечень значимых активностей в УЗ. Принимает значения create или login. По умолчанию учитываются обе активности. Если задано только create - логины не будут учитываться при проверке условий блокировки, период неактивности будет отсчитываться только от даты создания УЗ.
- accountingProlongedInactivity - Учёт длительной неактивности. Если false, то функционал учета длительной неактивности отключается (Исключение для ресурсов, карточек, учетных записей, у которых accountingProlongedInactivity = true).

Ресурс:
- acceptableInactivityPeriod - Допустимый период неактивности до блокировки.
- acceptableInactivityPeriodAfterCreate - Допустимый период неактивности до блокировки после создания УЗ.
- significantActivities - Перечень значимых активностей в УЗ. Если значение данного параметра не задано, то УЗ данного ресурса будут пропускаться задачей.
- accountingProlongedInactivity - Учёт длительной неактивности. Если false, то функционал учета длительной неактивности отключается (Исключение для карточек и учетных записей, для которых accountingProlongedInactivity = true).
- ouForResetPassword - Список OU для сброса пароля при блокировке по длительной неактивности. Для записей в перечисленных OU будет сброшен пароль при блокировке.
- actionWhenInactivityDetected - список типов активностей. Может принимать значения disable (отключение УЗ), resetPassword (сброс пароля УЗ).

Учетная карточка:
- accountingProlongedInactivity - Учёт длительной неактивности. Если false, то функционал учета длительной неактивности отключается (Исключение для учетных записей, для которых accountingProlongedInactivity = true).

Учетная запись:
- accountingProlongedInactivity - Учёт длительной неактивности. Если false, то функционал учета длительной неактивности отключается.
- resetPasswordWhenDisableByLongInactivity - Сброс пароля при блокировке по длительной неактивности. Перекрывает значение ouForResetPassword.

* Коды декретного отпуска: "216", "217", "500", "501", "502", "503", "504", "505", "506", "507", "508", "509", "510", "511", "512", "513", "514", "515", "915", "224", "9216", "9500", "9501", "9502", "9503", "9504", "9505", "9506", "9507", "9508", "9509", "9510", "9511", "9512", "9513", "9514", "9515".

Задачи для проверки бизнес-ролей#

Для корректной работы перечисленных ниже задач, в IDM должны отработать задачи с 1 по 5 из таблицы в разделе Основные интеграционные задачи.

Блок

Категория задачи

Наименование задачи

Описание задачи

Комментарий

Расписание для перезапуска

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Assign business roles. Multi-node

Задача выполняет назначение бизнес-ролей сотрудникам в многопоточном режиме

Принцип работы задачи: Задача проходит по всем активным записям сотрудников в IDM и навешивает бизнес-роль согласно условиям постановки

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

Assign business roles for technical cards. Multi-node

Задача выполняет назначение бизнес-ролей техническим учетным карточкам в многопоточном режиме

Принцип работы задачи: Задача находит карточки, у которых присутствует архетип технической карточки и назначена определенная организация, и назначает бизнес-роль для технических учетных карточек.

Нет расписания. Однократное выполнение. Ручной запуск

Задачи для ресурсов SCIM, SOAP, NGAM, KAFKA, META#

Для корректной работы перечисленных ниже задач, в IDM должны отработать задачи с 1 по 5 из таблицы в разделе Основные интеграционные задачи.

Задачи ресурсов SCIM, SOAP, NGAM, KAFKA и META независимы друг от друга и могут быть запущены в любой последовательности.

Блок

Категория задачи

Наименование задачи

Описание задачи

Комментарий

Расписание для перезапуска

SCIM

Scim tasks

20-30 SCIM ACCOUNTS Import. Single-node

Задача выполняет выполняет импорт аккаунтов из SCIM

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SCIM

Scim tasks

20-30 SCIM ACCOUNTS Reconciliation. Single-node

Задача выполняет глобальное обновление объекта аккаунт Scim

Запуск по расписанию раз в 15 секунд. interval = 15. Ручной запуск

SCIM

Scim tasks

20-30 SCIM ROLES Import. Single-node

Задача выполняет выгрузку ролей из Scim сервера в IDM

Нет расписания. Однократное выполнение. Ручной запуск

SCIM

Scim tasks

20-30 SCIM ROLES Reconciliation

Задача выполняет глобальное обновление объекта роль Scim

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SCIM

Scim tasks

20-30 SCIM FOSNODES Import. Single-node

Задача выполняет выгрузку департаментов из Scim сервера в объекты организационных единиц в IDM

Нет расписания. Однократное выполнение. Ручной запуск

SCIM

Scim tasks

20-30 SCIM FOSNODES Reconciliation

Задача выполняет глобальное обновление объекта fosnodes Scim

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ACCOUNTS Import. Single-node

Задача выполняет импорт аккаунтов SOAP

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ACCOUNTS Reconciliation

Задача выполняет глобальное обновление объекта пользователя Soap

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ROLES Import

Задача выполняет выгрузку ролей из Soap сервера в IDM

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ROLES Reconciliation

Задача выполняет глобальное обновление объекта роли

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ROLES Live Synchronization

Задача выполняет модификацию объекта роли

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SOAP

Soap tasks

20-30 SOAP FOSNODES Import

Задача выполняет выгрузку департаментов из Soap сервера в объекты организационных единиц в IDM

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP FOSNODES Reconciliation

Задача выполняет глобальное обновление объекта организационной единицы

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SOAP

Soap tasks

20-30 SOAP FOSNODES Live Synchronization

Задача выполняет модификацию объекта организационной единицы

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict1 Import. Single-node

Задача выполняет импорт кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict2 Import. Single-node

Задача выполняет импорт кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict1 Live Synchronization

Задача выполняет синхронизацию кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict2 Live Synchronization

Задача выполняет синхронизацию кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict1 Reconciliation. Single

Задача выполняет реконсиляцию кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SOAP

Soap tasks

20-30 SOAP CustomDict2 Reconciliation. Single

Задача выполняет реконсиляцию кастомных справочников SOAP

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

NGAM

Ngam tasks

20-30 NGAM ACCOUNTS Import. Single-node

Задача выполняет импорт аккаунтов NGAM

Нет расписания. Однократное выполнение. Ручной запуск

NGAM

Ngam tasks

20-30 NGAM ACCOUNTS Reconciliation. Single-node

Задача выполняет глобальное обновление аккаунтов NGAM

Нет расписания. Однократное выполнение. Ручной запуск

KAFKA

Kafka tasks

Kafka Import AUTO-EXECUTION

Задача выполняет обработку входящих сообщений из входящей очереди Kafka ресурса Автоисполнение в IDM

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

KAFKA

Kafka tasks

Kafka Import URM

Задача выполняет обработку входящих сообщений из входящей очереди Kafka ресурса URM в IDM

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

KAFKA

Kafka tasks

Kafka Actions Runner Auto-Execution

Задача выполняет действия согласно входящим сообщениям из Kafka ресурса Автоисполнение

Задача обрабатывает не больше 500 объектов за запуск

Запуск по расписанию раз в 20 секунд. interval = 20. Ручной запуск

KAFKA

Kafka tasks

Kafka Actions Runner URM

Задача выполняет действия согласно входящим сообщениям из Kafka ресурса URM

Задача обрабатывает не больше 500 объектов за запуск

Запуск по расписанию раз в 20 секунд. interval = 20. Ручной запуск

KAFKA

Kafka tasks

Kafka Pending Actions Runner

Задача выполняет обработку и исполнение действий Kafka, находящимся в очереди (метка Pending).

Запуск по расписанию раз в 30 секунд. interval = 30. Ручной запуск

KAFKA

Kafka tasks

Kafka clear generic objects

Задача выполняет очистку genericObjects для Kafka сообщений, которые были созданы более 10 минут назад

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

KAFKA

Kafka tasks

Kafka Clear Processed Actions.

Задача выполняет очистку объектов genericObject с архетипам UTM Action и Pending UTM Action с меткой Processed Kafka Actions Requst.

Запуск по расписанию раз в 2 часа. interval = 3600. Ручной запуск

META

META tasks

Check link with meta

Задача выполняет проверку на корректность сопоставленных проекций МЕТА и ролей АС согласно условиям корреляции. В случае обнаружения ситуации, когда проекция МЕТА связана с ролью АС, но при этом ни одно из условий сопоставления не применимо, необходимо делать отвязку проекции МЕТА от роли АС.

Запуск по расписанию. Ручной запуск.

SCIM

Scim tasks

20-30 SCIM ROLES Reconciliation and Verification. Single-node

Шаблонная задача по реконсиляции и сверке ролей SCIM.

Задача проводит сверку ролей, у которых либо есть триггер needToCheckRole, либо атрибут consistency пустой.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

SOAP

Soap tasks

20-30 SOAP ROLES Reconciliation and Verification. Single-node

Шаблонная задача по реконсиляции и сверке ролей SOAP.

Задача проводит сверку ролей, у которых либо есть триггер needToCheckRole, либо атрибут consistency пустой.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

META

META tasks

META: Send verification result

Задача предназначена для отправки результатов сверки ролей в МЕТА через коннектор МЕТА. Задача автоматически запускается как итеративная массовая задача и обрабатывает роли, у которых заполнен атрибут consistency И установлено sendVerification = false или отсутствует значение sendVerification. По таким ролям отправляются результаты сверки. Затем результаты сверки отправляются для проекций со статусами not_in_AS и integration_missing. Запускается как итеративная массовая задача и обрабатывает проекции в статусе unmatched и время изменения которых было больше предыдущего запуска данной задачи.

Также в задаче проверяются композитные роли. В атрибуте проекции matched_meta_ids содержится список идентификаторов ролей МЕТА, который сравнивается с идентификатором роли. Если были отправлены проекции для каждого идентификатора составной роли, то consistency в роли = OK. Если были отправлены проекции не для каждого идентификатора составной роли, то consistency в роли = not_in_META. Значения признаков в роли проставляются = true, если хотя бы в одной из проекций META для составной роли признак был = true. На данный момент значения всегда берутся из версии с main = true.

Также в задачу добавлен параметр расширения <ci>, в котором указываются каталоги ролей, содержащие композитные роли.

Первый запуск вручную, дальнейшие запуски автоматически по расписанию раз в 60 секунд

Задачи для ручного импорта#

Задачи входят в состав дистрибутива, но не являются обязательными, и по этому автоматическая загрузка job «deploy конфигурационных файлов» не производится. Файлы для ручной загрузки расположены в дистрибутиве по пути package/conf/data/idmc/templates/post-init/forManualUpload Реализован механизм ротации для отчетов. В системной таске добавлена конфигурация для него, в rotation системной конфигурации есть атрибут maxSumSizeMb, который задает максимальный размер памяти, занимаемый отчетами. Отчеты хранятся в /app/idmx-engine/var/export/ИМЯ_ОТЧЕТА.

Блок

Категория задачи

Наименование задачи

Описание задачи

Комментарий

Расписание для перезапуска

DEPARTMENTS (Департаменты)

KIS Departments tasks

02 DEPARTMENTS Import. Single-node

Задача выполняет выполняет импорт подразделений в один поток

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Reconciliation. Single-node

Задача выполняет глобальное обновление объекта организационной единицы в IDM. Обновление происходит в однопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

03 DEPARTMENTS Recompute. Single-node

Задача выполняет повторное вычисление департаментов (проставление родительских подразделений) в однопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

04 DEPARTMENTS Task recompute and add parent org. Single-node

Задача выполняет проставление константы в поле родительского подразделения («Родительское подразделение») тем подразделениям, у которых нет корректного родительского подразделения в IDM в однопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

DEPARTMENTS (Департаменты)

KIS Departments tasks

20-30 DEPARTMENTS Delete all orgs custom

Задача выполняет удаление подразделений и их shadow объектов из репозитория IDM в многопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

05 EMPLOYEES Import. Single-node

Задача выполняет выгрузку сотрудников из представления kis.v_current_employees в объекты пользователей в IDM в однопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

05 EMPLOYEES Import with filter by employeeNumber. Single-node

Задача выполняет выгрузку пользователя по определённому employeeNumber

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Reconciliation. Single-node

Задача выполняет глобальное обновление объекта пользователя в IDM. Обновление происходит в однопоточном режиме

Необязательная задача.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Recomputation. Single-node

Задача выполняет полный перерасчет всего для пользователя (вызов всех маппингов). Перерасчет выполняется в однопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Delete all users custom. Multi-node

Задача выполняет удаление пользователей и их shadow объектов из репозитория IDM в многопоточном режиме

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES Repair users with two archetypes

Задача выполняет удаление всех архетипов у пользователя и повторно проставляет статус 2

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CARD Recompute. Single-node

Задача выполняет повторное вычисление карточек для генерации sapLogin

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

EMPLOYEES (Сотрудники)

KIS Employees tasks

20-30 EMPLOYEES CONTRACT Recompute. Single-node

Задача выполняет повторное вычисление контрактов для генерации mailAliases и emails

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

users-by-filter-disable-roles

Задача выполняет поиск карточки по заданному фильтру. По заданному в параметрах данной задачи фильтру (переменная расширения roleFilter), находятся назначения ролей. Найденные назначения блокируются, и для них устанавливается параметр disableReason со значением «Disabled by {имя_текущей_задачи}».

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

users-by-filter-disable-roles-coordinator

Задача является координатором - запускает задачу-шаблон „users-by-filter-disable-roles-template“ для отключения ролей. В первой activity происходит запуск задачи в асинхронном режиме. Во второй activity ожидается завершение работы задачи (30 секунд). Если задача отработала за указанное время, то запускается отчет (шаблон „Cards with disabled roles“)

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

TEMPLATE TASK (Шаблонная задача)

Template task

users-by-filter-disable-roles-template

Задача является шаблоном (template task). Она не запускается как обычная задача. Ее запускает задача-координатор „users-by-filter-disable-roles-coordinator“. В задаче есть параметр расширения „cardsRolesGO“, который хранит имя generic object-а „cards-roles“, в котором находится список карточек и список ролей на отключение (oid-ы). Задача идет по карточкам и ищет назначения ролей из этого списка. Найденные назначения блокируются, для них устанавливается параметр disableReason со значением «Disabled by users-by-filter-disable-roles-coordinator».

Необязательная задача. Обязательное присутствие, если используется „users-by-filter-disable-roles-coordinator“

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

SYSTEM TASK

SYSTEM tasks

users-by-filter-restore-roles

Задача выполняет активацию ролей, отключенных задачей «users-by-filter-disable-roles-coordinator». Происходит изменение параметра активации назначения на ENABLED и удаление причины блокировки.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

REPORT (Отчет)

Report

Cards with disabled roles

Шаблон отчета. По завершению задачи „users-by-filter-disable-roles-template“ формируется отчет (шаблон Cards with disabled roles) с полями: User oid - oid карточки; User name - имя карточки; Disabled roles - список oid-ов заблокированных ролей у пользователя.

Необязательный отчет. Обязательное присутствие, если используется „users-by-filter-disable-roles-coordinator“

Нет расписания. Однократное выполнение после завершения задачи „users-by-filter-disable-roles-template“

GENERIC OBJECT (Общий объект)

Generic object

cards-roles

Generic object. В данном объекте находится список карточек и список ролей на отключение (oid-ы) для задачи „users-by-filter-disable-roles-template“.

Необязательный generic object. Обязательное присутствие, если используется „users-by-filter-disable-roles-coordinator“

Настраивается вручную.

FAST ASSIGNMENT RECOMPUTE

Fast assignment recompute task

[FAST ASSIGNMENT RECOMPUTE] Recompute scanner. Multi-node

Задача выполняет поиск пользователей, у которых есть триггер «fastAssignmentRecompute».Триггер содержит информацию о ресурсах, для которых необходимо выполнить перерасчет (oid’ы ресурсов). Перерасчет выполняется с опцией «fast assignment», которая позволяет выполнить перерасчет только для необходимых проекций пользователя, а не для всех. После выполнение пересчета, проверяется его статус для каждой из проекции, на его основе список ресурсов в триггере может корректироваться (ресурсы, для которых расчет завершился без ошибок, будут удалены из списка), если для всех проекций пересчет завершился корректно, триггер удаляется. В задаче доступен дополнительный параметр расширения resourceOid (multivalue), который позволяет задать список ресурсов, для которых будет выполнен перерасчет, при условии что этот ресурс будет присутствовать в списке из триггера. По завершении задачи в колонке Object reference формируется шаблон отчета с названием «Fast assignment recompute». Необходимо перейти в саму задачу [FAST ASSIGNMENT RECOMPUTE] Recompute scanner. Multi-node и нажать на кнопку Download report, чтобы получить сгенерированный отчет «Fast assignment recompute».

Необязательная задача. Обратите внимание, параметр attemptNumber в триггере fastAssignmentRecompute будет вычисляться только при условии, что пересчет выполняется для всех ресурсов из триггера, а не для конкретных (которые заданы через параметр extension/resourceOid данной задачи). Например, для увеличения параметра attemptNumber (а именно количества неудачных попыток обработки этого триггера задачей) нужно, чтобы параметр extension/resourceOid данной задачи был пуст, и при работе задачи должна возникнуть ошибка при пересчете объекта с триггером для какого-либо из ресурсов, указанных в данном триггере. В случае, если в задаче указаны ресурсы в extension/resourceOid, то при успешной обработке они удаляются из триггера, а при неуспешной - не удаляются. При этом attemptNumber не увеличивается.
Также, при успешном пересчете для какого-либо из ресурсов в триггере - из триггера также удаляется дельта для этого ресурса.

Запуск по расписанию раз в 20 минут. cronLikePattern = 0 */20 * * * ?. Ручной запуск.

REPORT (Отчет)

Report

Fast assignment recompute

Отчет по карточкам, для которых выполнялся recompute через задачу «[FAST ASSIGNMENT RECOMPUTE] Recompute scanner. Multi-node». По завершению задачи формируется отчет «Fast assignment recompute» с полями: АС; Учетная запись; ФИО; Табельный номер; Статус отработки; Время; Ошибка (в случае неуспешности). Для предотвращения накопления большого объема данных реализован механизм ротации отчетов.

Необязательный отчет. Обязательное присутствие, если используется «[FAST ASSIGNMENT RECOMPUTE] Recompute scanner. Multi-node»

Нет расписания. Однократное выполнение после завершения задачи «[FAST ASSIGNMENT RECOMPUTE] Recompute scanner. Multi-node»

FAST ASSIGNMENT RECOMPUTE

Fast assignment recompute task

[FAST ASSIGNMENT RECOMPUTE] Search cards. Multi-node

Задача выполняет поиск карточек, у которых в shadow последняя операция завершилась с ошибкой и добавляет их владельцам триггер «fastAssignmentRecompute» для перерасчета с использованием «fast assignment». В shadow задача выполняет поиск последней operationExecution со статусами fatal_error или in_progress. Для операций со статусом in_progress, также дополнительно проверяется pendingOperation и их статус выполнения, и ищутся операции со статусом fatal_error. Если необходимо найти все карточки с нужным триггером, воспользуйтесь фильтром Advanced на вкладке Cards и используйте фильтр: trigger matches (handlerUri = 'fastAssignmentRecompute#shadowPendingOp'). По завершении задачи в колонке Object reference формируется ссылка на задачу с названием «Export task for Cards with shadow pending operations», которая генерирует отчет. Необходимо перейти в данную задачу («Export task for Cards with shadow pending operations»), нажать на кнопку Download report, чтобы получить сгенерированный отчет «Cards with shadow pending operations». В случае, если все проекции «мертвые2, в отчете будет указываться oid ресурса с комментарием ALL DEAD SHADOWS.

Необязательная задача. Примечание: задача пропускает карточки, если у них уже присутствует триггер «fastAssignmentRecompute». Также при работе задачи не учитываются ресурсы в статусе Archived.

Запуск по расписанию раз в час. cronLikePattern = 0 0 */1 * * ?. Ручной запуск.

REPORT (Отчет)

Report

Cards with shadow pending operations

Отчет по карточкам, у которых в shadow есть pending operations. По завершению задачи «[FAST ASSIGNMENT RECOMPUTE] Search cards. Multi-node» формируется отчет «Cards with shadow pending operations» с полями: name - имя карточки; oid - oid карточки; Resources - список ресурсов, которые были добавлены в триггер + дельта расхождений (если это было расхождение из-за pendingOperation). Для предотвращения накопления большого объема данных реализован механизм ротации отчетов.

Необязательный отчет. Обязательное присутствие, если используется «[FAST ASSIGNMENT RECOMPUTE] Search cards. Multi-node»

Нет расписания. Однократное выполнение после завершения задачи «[FAST ASSIGNMENT RECOMPUTE] Search cards. Multi-node»

FAST ASSIGNMENT RECOMPUTE

Fast assignment recompute task

[FAST ASSIGNMENT RECOMPUTE] Search inconsistent cards. Multi-node

Задача выполняет поиск карточек, у которых есть проекции с неконсистентными данными. Задача выполняет поиск расхождений при перерасчете на основе механизма «Preview changes - Предварительного просмотра изменений» и реконсиляции. Результат перерасчета не применяется. Если при пересчете найдены расхождения, то формируется список ресурсов и добавляется триггер «fastAssignmentRecompute. Информация о расхождениях сохраняется в параметры самого триггера, который добавляется карточке. Для каждого вида расхождения свой уникальный handlerUri в триггере. Если необходимо найти все карточки с нужным триггером, воспользуйтесь фильтром Advanced на вкладке Cards и используйте фильтр: trigger matches (handlerUri = 'fastAssignmentRecompute#inconsistentCards'). По завершении задачи в колонке Object reference формируется ссылка на задачу с названием «Export task for Inconsistent cards», которая генерирует отчет. Необходимо перейти в данную задачу («Export task for Inconsistent cards»), нажать на кнопку Download report, чтобы получить сгенерированный отчет «Inconsistent cards». В отчете также указывается параметр «(Projection sync decision: ЗНАЧЕНИЕ_СИНХРОНИЗАЦИИ)», где ЗНАЧЕНИЕ_СИНХРОНИЗАЦИИ - значение перечисления SynchronizationPolicyDecision, указывающее политику синхронизации, которая будет применена к объектам при реконсиляции. Возможные значения:
ADD - Указывает, что новая учетная запись будет создана и привязана (linked) к пользователю. Используется при обнаружении нового аккаунта на ресурсе, который должен быть добавлен в систему.
DELETE - Указывает, что существующая учетная запись будет удалена и отвязана (unlinked). Применяется, когда аккаунт на ресурсе больше не должен быть связан с пользователем и должен быть удален.
KEEP - Указывает, что учетная запись остается без изменений и продолжает быть привязанной. Обратите внимание: это не означает, что атрибуты или права доступа не будут обновлены — сама привязка сохраняется, но могут происходить другие изменения.
UNLINK - Указывает, что проекция должна быть отвязана, но не удалена. Физически значение из linkRef будет удалено, но сам аккаунт на ресурсе остается.
BROKEN - Указывает, что проекция находится в «сломанном» состоянии — например, из-за нарушения схемы, проблем с доступом или неправильной конфигурации. Такие проекции остаются в текущем состоянии: IDM не будет выполнять над ними операций и не будет отвязывать или удалять их, пока проблема не будет устранена.
IGNORE - Указывает, что контекст синхронизации был создан, но аккаунт будет пропущен. Используется исключительно при оценке назначений и политик назначений. Полезно, когда нужно временно исключить аккаунт из обработки без изменения его состояния.

Необязательная задача. Примечание: если в ресурсе включено кеширование, то для его shadow не будет найдено расхождений, т.к. сравнение будет выполняться с данными из IDM; задача пропускает карточки, если у них уже присутствует триггер «fastAssignmentRecompute». Также при работе задачи не учитываются ресурсы в статусе Archived.

Нет расписания. Однократное выполнение. Ручной запуск

REPORT (Отчет)

Report

Inconsistent cards

Отчет по карточкам c неконсистентными данными. По завершению задачи «[FAST ASSIGNMENT RECOMPUTE] Search inconsistent cards. Multi-node» формируется отчет «Inconsistent cards» с полями: name - имя карточки; oid - oid карточки; Resources - список ресурсов, которые были добавлены в триггер + расхождения из параметров триггера. Для предотвращения накопления большого объема данных реализован механизм ротации отчетов.

Необязательный отчет. Обязательное присутствие, если используется «[FAST ASSIGNMENT RECOMPUTE] Search inconsistent cards. Multi-node»

Нет расписания. Однократное выполнение после завершения задачи «[FAST ASSIGNMENT RECOMPUTE] Search inconsistent cards. Multi-node»

FAST ASSIGNMENT RECOMPUTE

Fast assignment recompute task

[FAST ASSIGNMENT RECOMPUTE] Search shadow diff cards. Multi-node

Задача выполняет поиск карточек, у которых есть проекции с расхождениями на основе расчета маппинга их ресурса. Выполняется повторный расчет маппинга для ресурса каждой из проекций. Учитываются расхождения только для атрирбутов, у которых используется outbound (чтобы исключить расхождения по метаданным или атрибутам, которые заполняются на стороне АС). Формируется итоговый список ресурсов с расхождениями и добавляется триггер «fastAssignmentRecompute». Информация о расхождениях сохраняется в параметры самого триггера, который добавляется карточке. Для каждого вида расхождения свой уникальный handlerUri в триггере. Если необходимо найти все карточки с нужным триггером, воспользуйтесь фильтром Advanced на вкладке Cards и используйте фильтр: trigger matches (handlerUri = 'fastAssignmentRecompute#shadowDiff'). По завершении задачи в колонке Object reference формируется ссылка на задачу с названием «Export task for Cards with shadow diff», которая генерирует отчет. Необходимо перейти в данную задачу («Export task for Cards with shadow diff»), нажать на кнопку Download report, чтобы получить сгенерированный отчет «Cards with shadow diff». В случае, если проекции «мертвые», в колонках отчета с диффом атрибутов, операций и значений будет указано значение ALL DEAD SHADOWS.

Необязательная задача. Примечание: расчет расхождений выполняется только для ресурсов, у которых включено кеширование; задача пропускает карточки, если у них уже присутствует триггер «fastAssignmentRecompute». Также при работе задачи не учитываются ресурсы в статусе Archived.

Нет расписания. Однократное выполнение. Ручной запуск

REPORT (Отчет)

Report

Cards with shadow diff

Отчет по карточкам, для которых были найдены различия с их shadow в процессе выполнения проверки задачей «[FAST ASSIGNMENT RECOMPUTE] Search shadow diff cards. Multi-node». По завершению задачи формируется отчет «Cards with shadow diff» с полями: name - имя карточки; oid - oid карточки; Resources - список ресурсов, которые были добавлены в триггер + расхождения из параметров триггера. Для предотвращения накопления большого объема данных реализован механизм ротации отчетов.

Необязательный отчет. Обязательное присутствие, если используется «[FAST ASSIGNMENT RECOMPUTE] Search shadow diff cards. Multi-node»

Нет расписания. Однократное выполнение после завершения задачи «[FAST ASSIGNMENT RECOMPUTE] Search shadow diff cards. Multi-node»

REPORT (Отчет)

Report

Import card list for recompute

Отчет позволяет прочитать подготовленный CSV файл, в котором должны быть колонки name или employeeNumber (регистр не имеет значения). Будет составлен запрос для поиска карточки по name или employeeNumber строки из CSV файла. Если карточка найдена, то ей будет добавлен триггер «recomputeList».

Необязательный отчет. Обязательное присутствие, если используется «Recompute list cards. Multi-node»

Нет расписания. Однократное выполнение перед запуском задачи «Recompute list cards. Multi-node»

RECOMPUTE TASK

Recompute tasks

Recompute list cards. Multi-node

Задача выполняет поиск пользователей с триггером recomputeList и выполняет для них recompute. Если рекомпьют завершился без ошибок, то есть статус SUCCESS, то триггер будет удален. В задаче генерируется отчет «Failed recompute list cards», в котором будут найдены все карточки, у которых операции от задачи «Recompute list cards. Multi-node» завершилась с ошибкой.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

REPORT (Отчет)

Report

Failed recompute list cards

Отчет по карточкам, для которых были ошибки при рекомпьюте через задачу «Recompute list cards. Multi-node»

Необязательный отчет. Обязательное присутствие, если используется «Recompute list cards. Multi-node»

Нет расписания. Однократное выполнение после завершения задачи «Recompute list cards. Multi-node»

MIGRATION TASK

Migration tasks

Migration role (v2). Prepare role list

Задача для подготовки списка ролей на миграцию. В параметре «ci_source» данной задачи содержится КЭ системы, роли которой нужно отключить. В параметре «ci_target» содержится КЭ системы, роли которой нужно добавить. Идентификатор(identifier) ролей одинаковый, отличается только КЭ. В итоге получится такой маппинг: имя_старой_роли(оид_старой_роли);имя_новой_роли(оид_новой_роли). Результат с таким маппингом записывается в generic object с именем, указанным в параметре «migration_role_input».

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

Нет расписания. Однократное выполнение. Ручной запуск

GENERIC OBJECT (Общий объект)

Generic object

migration-context

Generic object. Объект, содержащий роли в формате старая_роль(oid);новая_роль(oid) как для обычной роли, так и для первичной роли. Блок «roleInput» заполняется задачей «Migration role (v2). Prepare role list». Блок «accessRoleInput» заполняется вручную в формате исходная_первичная_роль(oid);целевая_первичная_роль(oid).

Необязательный generic object. Обязательное присутствие, если используется миграция ролей.

Настраивается автоматически задачей «Migration role (v2). Prepare role list» и вручную.

MIGRATION TASK

Migration tasks

Migration role (v2). Prepare card list task. Oid

Задача для подготовки списка карточек(oid), в которых нужно произвести миграцию ролей. Задача из generic object-а (имя которого задано в параметре «migration_role_input») достает список ролей. Далее ищет карточки, в которых данные роли есть в назначениях и формирует общий набор oid-ов этих карточек. Далее этот набор добавляется в этот же generic object в параметр расширения «cards».

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

Нет расписания. Однократное выполнение. Ручной запуск

TEMPLATE TASK (Шаблонная задача)

Template task

Migration role (v2). Cards iterative

Задача является шаблоном (template task). Она не запускается как обычная задача. Ее запускает задача-координатор „Migration role (v2). Coordinator“. На вход задаче-координатору передается список оидов карточек, в которых нужно произвести миграцию ролей.

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

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

MIGRATION TASK

Migration tasks

Migration role (v2). Coordinator

Задача является координатором - запускает задачу-шаблон „Migration role (v2). Cards iterative“ для миграции ролей. В первой activity происходит запуск задачи в асинхронном режиме. Во второй activity ожидается завершение работы задачи (30 минут). Если задача отработала за указанное время, то запускается отчет „Cards with migrated roles“.

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

Нет расписания. Однократное выполнение. Ручной запуск

MIGRATION TASK

Migration tasks

Migrate dkb and smd roles

Задача выполняет миграцию ролей 2 DKB role и 10 SMD role на 12 DKB2 role и 11 SMD2 role соответственно. Замена причин блокировок карточек «disableReasonRF» в блоке «activation» с DKB на DKB2 и с SMD на SMD2. Также производится миграция у ТУЗ с соответствующими ролями.

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

Нет расписания. Однократное выполнение. Ручной запуск

REPORT (Отчет)

Report

Cards with migrated roles

Отчет по карточкам, для которых произошла миграция исходной роли на целевую. В отчете прописаны следующие заголовки: Имя карточки; ФИО; OID задачи; Статус обработки; Время; Результат.

Необязательный отчет. Обязательное присутствие, если используется миграция ролей.

Нет расписания. Однократное выполнение после завершения задачи «Migration role (v2). Coordinator»

AD

AD tasks

20-30 AD Import group. One group

Задача выполняет выгрузку одной заданной группы AD

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

check-resource-availability

Задача выполняет проверку ресурсов и перевод в режим обслуживания. Осуществляется проход по всем ресурсам (исключение - ресурсы, указанные в blackList в задаче) и выполняет тест-коннект. В задаче прописывается количество попыток для выполнения теста ресурса (maxAttemptThreshold) и таймаут между выполнением теста ресурса в миллисекундах (delayTestResource). Если АС не доступна и ресурс НЕ в режиме Обслуживание, то задача переводит его в режим Обслуживание. Если ресурс доступен и в режиме Обслуживание, то задача переводит его в рабочий режим.

Необязательная задача.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Disable roles task

Задача выполняет перевод ролей в архивное состояние (AdministrtativeStatus -> Disabled, атрибут archive -> true) по приложенному списку

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Disable cachingOnly in resources

Задача выполняет выключение атрибута read/cachingOnly в ресурсах. Параметры задачи: skipMaintenance - флаг, который определяет пропускать (true) ресурсы, для которых включен режим тех. обслуживания (maintenance); excludeResourceOid - список oid ресурсов, которые будут пропущены; excludeResourceType - список типов коннекторов в ресурсе, которые будут пропущены.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Enable cachingOnly in resources

Задача выполняет включение атрибута read/cachingOnly в ресурсах. Параметры задачи: skipMaintenance - флаг, который определяет пропускать (true) ресурсы, для которых включен режим тех. обслуживания (maintenance); excludeResourceOid - список oid ресурсов, которые будут пропущены; excludeResourceType - список типов коннекторов в ресурсе, которые будут пропущены; administrativeStatusOutboundSource - SOURCE часть для OUTBOUND, который будет добавлен в objectType/activation/administrativeStatus; administrativeStatusOutboundExpression - EXPRESSION часть для OUTBOUND, который будет добавлен в objectType/activation/administrativeStatus.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

EXPORT REPORTS

Задача выполняет экспорт файлов отчетов типа ReportDataType (вкладка Reports/created reports) в базу данных. Параметр chunkSize отвечает за размер записи в базе данных. Файл разбивается на части размером chunkSize и загружается в базу.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

IMPORT REPORTS

Задача выполняет просмотр объектов типа ReportDataType. Если для выбранного объекта не удалось подгрузить файл отчета с диска, то файл отчета будет импортирован из базы данных.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Fix duplicate NGAM shadows

Задача выполняет починку пользователей с двумя привязанными проекциями для одного ресурса. Остается проекция, логин которой отличается от nickname, либо проекция создана раньше второй. Лишняя проекция отвязывается.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

RAW synchronize shadows

Задача выполняет подготовку параметров и запускает задачу для синхронизации shadow, который были импортированы из CSV. После выполнения задачи для пользователей, с которыми выполняется связывание, будет добавлена первичная роль, если она заполнена в ресурсе (extension/primaryRoleOid). Задача не будет добавлять пользователю новую проекцию ресурса, если у пользователя уже есть другая проекция от этого ресурса.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Fix duplicates shadows

Задача выполняет удаление дублей проекций. Если у карточки присутствует несколько проекций в одном ресурсе, то после запуска задачи остается только одна проекция.

Необязательная задача.

Запуск по расписанию раз в минуту. interval = 60. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Account shadow refresh

Задача выполняет отложенные операции для shadow (например, накопленные изменения, когда ресурс был в состоянии тех. работ).

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

task-add-archetype-technicalCard

Задача выполняет добавление архетипа „Technical cards“ техническим карточкам, если такого архетипа еще нет.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Assembly debug information

Задача выполняет сборку zip архива с объектами, которые могут быть необходимы при разборе дефекта. В архиве будут добавлены сами объекты в xml формате, все функциональные библиотеки, информация о сборке idm (build.txt) и system configuration.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

BACKUP OBJECTS

Задача выполняет создание резервных копий объектов в IDM. Задача создает GenericObjectType с наименованием «backup_[#тип объекта][#idm.version][#текущая дата]» и сохраняет в нем данные объектов. В одном GenericObjectType может быть сохранено максимум 1000 объектов, если общее количество объектов для резервного копирования будет превышать 1000, то backup будет состоять из нескольких GenericObjectType, у которых будет добавлен постфикс «part[#номер части]». Параметры (в extension): types (multivalue) - тип объектов, для которых выполнять резервное копирование, например «FunctionLibraryType»; includeOid (multivalue) - oid объекта, для которого выполнять резервное копирование, если в types задано несколько типов, то нужно указать к какому типу объектов будет относиться данный oid в формате [#тип объекта]@[#oid], например «SystemConfigurationType@00000000-0000-0000-0000-000000000001»; excludeOid (multivalue) - oid объекта, который будет исключен из резервного копирования.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

RESTORE OBJECTS

Задача выполняет восстановления объектов из резервной копии. Для восстановления объектов, необходимо выбрать в objectRef (Ссылка на объект) GenericObject с нужными объектами и нажать «Save and run». Если необходимо восстановить объекты, которые сохранены в нескольких частях, то можно выбрать любую часть и при условии, что параметр restoreAllParts=true будут восстановлены объекты из всех частей. Если restoreAllParts=false, то будут восстановлены только объекты из выбранной части.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Delete empty nodeIdentifier

Задача выполняет удаления пустых nodeIdentifier из задач. Параметры задачи: excludeTaskOid - список oid задач, которые будут пропущены.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Force clean JDBC locks runner

Задача является координатором - запускает задачу-шаблон «Force clean JDBC locks template». Задача выполняет принудительное очищение блокировок из БД IDM. Задача очищает из таблицы int_lock записи о блокировках.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

TEMPLATE TASK (Шаблонная задача)

Template task

Force clean JDBC locks template

Задача является шаблоном (template task). Она не запускается как обычная задача. Ее запускает задача-координатор «Force clean JDBC locks runner». Задача выполняет принудительное очищение блокировок из БД IDM.

Необязательная задача. Обязательное присутствие, если используется «Force clean JDBC locks runner»

Нет расписания. Однократное выполнение. Запускать вручную нельзя.

SYSTEM TASK

SYSTEM tasks

Reindexing USERS

Задача выполняет повторного расчета индексов пользователей в БД. Позволяет исправить расхождения значений в m_user.fullObject и полях для индексов (это могут быть как стандартные поля, например m_user.employeeNumber, так и поля расширения, m_user.ext).

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Set ThreadStopAction

Задача выполняет добавление параметра ThreadStopAction в задачи. Добавление атрибута reschedule происходит по заданному в задаче фильтру

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Migrate synchronization block SCIM

Задача выполняет массовую замену у всех SCIM ресурсов блока синхронизации для учетных записей. Параметры задачи: scimCorrelation - описание блока синхронизации, на который выполняется миграция.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Update mapping incompatibleRoles

Задача выполняет изменение маппинга в objectType/attribute/incompatibleRoles/inbound. Параметры задачи: skipMaintenance - флаг, который определяет пропускать (true) ресурсы, для которых включен режим тех. обслуживания (maintenance); excludeResourceOid - список oid ресурсов, которые будут пропущены; excludeResourceType - список типов коннекторов в ресурсе, которые будут пропущены.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Update roles condition

Задача выполняет изменение condition в атрибуте для получения ролей из ресурсов SCIM, SOAP. Параметры задачи: skipMaintenance - флаг, который определяет пропускать (true) ресурсы, для которых включен режим тех. обслуживания (maintenance); excludeResourceOid - список oid ресурсов, которые будут пропущены.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Criticality Criteria Task Runner

Задача создает на основе шаблона таску Criticality Criteria Setter

Необязательная задача. Созданная задача делает отчет только по тем ролям, для которых меняются атрибуты, меняет у соответствующих ролей атрибуты критичности, согласно указанным значениям в таске.Если какой либо из атрибутов критичности не задан в «Criticality Criteria Task Runner», то он не будет проставляться в ролях

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Criticality Criteria Setter Template

Задача проставляет признаки критичности для ролей с архетипом Resource Roles и делает отчет только по тем ролям, для которых меняются атрибуты

Необязательная задача. Если какой либо из атрибутов критичности не задан в таске, то он не будет проставляться в ролях

Нет расписания. Однократное выполнение. Ручной запуск

SCIM

SCIM tasks

SCIM Replace deprecated configuration attributes (task-replace-deprecated-config-scim-resources.xml)

Задача для замены устаревших атрибутов конфигурации SCIM на актуальные

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Add displayNameOrig role inbound

Задача выполняет добавление inbound маппинга на заполнение атрибута displayNameOrig (оригинальное наименование роли) в объектах с архетипом Resource Role .

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Migrating To Multiple Topics For Kafka

Задача предназначена для миграции объектов Kafka Action и Kafka Pending Action на модель с несколькими источниками. Подробнее смотрите в разделе Миграция объектов требований Kafka на модель с несколькими источниками.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

META Role import

Задача предназначена для импорта каталога ролей META.

Необязательная задача. В задачу добавлена activity из задачи Check role with meta, перед activity импорта ролей. Если в результате работы этой activity проекция была отвязана от роли - на роль назначается триггер needToCheckRole.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Meta lite role verification

Задача предназначена для сверки ролей МЕТА для конкретной лайт-интеграции. Для определения интеграции в задаче в фильтре следует указать каталог ролей (по значению атрибута ci, например parentOrgRef/@ matches (extension/ci equal "CI999999999")), либо oid ресурса интеграции (пример фильтра - "parentOrgRef/@ matches (extension/resourceOid equal "10000000-0000-0000-0000-100000000500")").

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Add strength weak for role name

Задача предназначена для реализации корректной работы механизма сверки ролей МЕТА с каталогом. Задача проставляет значение inbound маппинга для параметра <strength>weak</strength> в конфигурации ресурсов, использующих коннекторы SCIM или SOAP. Это делается для того, чтобы имена ролей МЕТА не перезатирались при реконсиляции.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Dynamic Distributions

Задача предназначена для того, чтобы в процессе работы фокальной задачи изменять количество узлов, worker и потоков, на которых работает фокальная задача. Подробнее о настройке задачи смотрите ниже.

Необязательная задача.

По умолчанию запуск каждые 20 секунд. interval = 20. Ручной запуск

KAFKA

Kafka tasks

Kafka Rate Limit Setter

Задача выполняет установку параметров Rate Limiter для коннектора Kafka. Подробнее смотрите в Руководстве пользователя IDMC, раздел Руководство оператора коннектора Kafka.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

KAFKA

Kafka tasks

Set Kafka Logging

Задача выполняет настройку логирования действий коннектора Kafka. Подробнее смотрите в документе Руководство пользователя IDMC, раздед Руководство оператора коннектора Kafka.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SCIM/SOAP

SCIM Tasks

Disable Scim/Soap Activation Inbound Mapping

Задача корректирует поведение маппинга параметра extension/archive в указанных ресурсах SCIM и SOAP, и корректирует существующие роли, FosNode и ресурсы. Первой activity задача изменяет в указанных ресурсах маппинг, изменяющий activation ролей при изменении параметра extension/archive. После отработки задачи в указанных ресурсах проставляется атрибут lifecycleState = archived. Ресурсы с lifecycleState = archived игнорируют значение параметра archive при импорте или реконсиляции ролей и FosNode. Вторая activity восстанавливает активации ролей и FosNode, если они имеют назначения на пользователя, либо переводит их в статус «Неактивный», если назначений на пользователя нет. Во время работы задачи создаются следующие отчеты:
Disable Activation Inbound Mapping Report - в отчете перечислены ресурсы, у которых был изменен activation. Отчет создается после завершения работы первой activity.
Enable Archived Roles - в отчете перечислены роли и FosNode, обработанные задачей. Отчет создается после завершения работы второй activity.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

META

META Tasks

Unlink meta shadow for resource roles

Задача выполняет отвязку проекций МЕТА от ролей АС в рамках заданного oid интеграции или каталога ролей (атрибут CI в объекте orgType). В результате работы таски при отвязке проекции МЕТА от ролей АС зачищаются ниже перечисленные атрибуты: date_last_change, version.id, Administrative_Status, auditor_role, administrator_role, tuz_role, insider_bitl, insider_issuer, insider_rcb, insider_208_fz, insider_controlling_org, criticality_bt, criticality_dpk, criticality_pdn. Результаты таски выводятся в HTML отчете, в котором выведены роли заданного каталога, по которым прошла отвязка проекций МЕТА.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SCIM/SOAP

SCIM/SOAP tasks

Reindexing roles with an incorrect consistency attribute

Задача для переиндексации в БД IDM ролей (таблица m_role), чтобы поле consistency было проставлено как массив, а не как строка.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

META

META tasks

META lite role verification

Задача для сверки МЕТА ролей для конкретной интеграции. В качестве фильтра для выполнения сверки задается oid интеграции или каталог ролей (атрибут CI в объекте orgType).

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

META

META tasks

META failed shadow delete

Задача удаляет проекции МЕТА с меткой Meta. Failed shadow.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

META

META tasks

Unlink meta shadow for resource roles

Задача предназначена для удаления связи (unlink) между объектами типа RoleType и их проекциями (shadow) на ресурс «Meta». После отвязки выполняется очистка атрибутов верификации в самой роли. Удаляются проекции МЕТА только у ролей, которые принадлежат организации, ci которой указан в задаче в фильтре в строке parentOrgRef/@ matches (extension/ci equal "CI999999999").

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

META

META tasks

Check link with meta

Задача предназначена для проверки корректной связи ролей и их проекций (shadows) на ресурс «Meta». Если связь между ролью и её проекцией Meta некорректна, то связь удаляется.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

KAFKA

Kafka tasks

Report on Postponed Kafka Objects

Задача генерирует HTML-отчет с ресурсами, имеющими отложенные объекты. Записи отсортированы по количеству отложенных объектов (по убыванию). Конфигурируемый параметр - <limit> в блоке <extension>, определяет количество объектов в отчете.

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Encrypt resource config

Задача для шифрования атрибутов, хранящих пароли, в конфигурациях ресурсов

Необязательная задача.

Нет расписания. Однократное выполнение. Ручной запуск

SYSTEM TASK

SYSTEM tasks

Restart task scanner

Задача сканирует другие задачи на наличие триггера restartTask и производит их перезапуск (resume)

Необязательная задача.

Запуск раз в 300 секунд. Ручной запуск

SCIM

SCIM tasks

SCIM Update object synchronization

Задача предназначена для массового обновления ресурсов SCIM для корректировки условий связывания карточки и УЗ пользователя. Задача настраивает условия корелляции следующим образом:
Первый этап корелляции:
Для привязки к УЗ ищется карточка по фильтру (familyName And (nickName OR employeeNumber)) OR (employeeNumber AND (nickName OR extension/dn_account)).
Второй этап:
Если по первому фильтру карточка не была найдена - используется фильтр (nickName = username) OR (extension/dn_account = username).

Необязательная задача. Если при массовом обновлении необходимо исключить какие-либо ресурсы из обновления - в задачу в блок фильтра следует добавить oid этого ресурса. Например:
<q:text>
connectorRef/@/connectorType = "ru.sbt.idmint.connector.scim.ScimConnector"
and
. not inOid ("123asd123-zvxc-12356")
</q:text>
, где . not inOid ("123asd123-zvxc-12356") - строка с oid ресурса, который следует исключить из обновления. В перечислении inOid можно указать несколько значений через запятую, например inOid ("111", "222", "333").

Ручной запуск

SCIM

SCIM tasks

Update Scim Mapping User Roles

Задача обновляет outbound маппинг параметра roles в ресурсах SCIM, чтобы роли УЗ в АС строго соответствовали ролям учетной карточки в IDM (а именно IDM перезаписывает роли УЗ в АС). После окончания работы задача создает отчет Update Scim Roles mapping с результатами работы.

-

Ручной запуск

SOAP

SOAP tasks

Update Soap Mapping User Roles

Задача обновляет outbound маппинг параметра Roles в ресурсах SCIM, чтобы роли УЗ в АС строго соответствовали ролям учетной карточки в IDM (а именно IDM перезаписывает роли УЗ в АС). После окончания работы задача создает отчет Update Soap Roles mapping с результатами работы.

-

Ручной запуск

META

META tasks

Meta shadow migrate task

Задача выполняет миграцию созданных ранее shadow на новый формат атрибутов версии. При миграции происходит замена (перенос значения) из атрибута version.{attr} в новый атрибут main.version.{attr}.

-

Ручной запуск

-

Generic tasks

Rename person

Задача меняет имя у объекта архетипа PERSON на уникальное значение - UUID.

Задача изменяет name у объектов, oid которых указаны в фильтре inOid. Добавьте в этот фильтр oid всех пользователей, которым требуется изменить name у карточек архетипа PERSON, либо удалите фильтр inOid, чтобы изменить имя всем пользователям архетипа PERSON.

Ручной запуск

Настройка задачи Dynamic Distribution#

Для предварительной настройки данной таски необходимо:

  1. В IDM перейти в Server tasks/All tasks.

  2. Найти задачу Dynamic distributions.

  3. Зайти в задачу.

  4. Зайти в Edit Raw.

  5. Найти блок <code> . . . </code>, в котором есть настройка профилей (PROFILES).

  6. Настроить данный блок кода следующим образом:

    • Указать количество, больше которого устанавливается нужный профиль.

    • Указать в формате, как в примере ниже, количество узлов, worker и потоков в том же порядке.

  7. Сохранить задачу

Например:

@Field final def PROFILES = [
        // Количество объектов : Параметры профиля
        10   : new DistributionProfile(1, 1, 1),
        100  : new DistributionProfile(2, 3, 2),
        10000: new DistributionProfile(20, 3, 3)
]

Fast Assignment с явным указанием списка ресурсов для реконсиляции#

Также доступна функциональность, с помощью которой можно выплнять операции реконсиляции в режиме fast assignment по конкретным ресурсам для пользователя.

Для использования данной функциональности:

  1. У карточки пользователя (Card), для которой проводится реконсиляция, должны быть проекции в ресурсах, по которым выполняется операция.

  2. Необходимо заполнить следующий блок кода требуемыми значениями:

      <s:executeScript xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3"
                       xmlns="http://prism.evolveum.com/xml/ns/public/query-3">
         <s:pipeline>
            <execute xmlns="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3">
               <script>
                  <code xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
                     import com.evolveum.midpoint.model.api.ModelExecuteOptions
                     import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType
                     import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType
                     
                     def resourceScim = midpoint.getObject(ResourceType.class, "123123-2352345325sdf-123")
                     def resourceSoap = midpoint.getObject(ResourceType.class, "32132145254-2352345325sdf-12asdzxcvqe3")
                     def resources = List.of(resourceScim, resourceSoap)
                     
                     def userOids = new ArrayList()
                     userOids.add("12387tzygvcbh-123klznc-zxcq1351")
                     userOids.add("97dsf2334-xc,bmn2931234-1235")
                     
                     for(String oid: userOids) {
                         def delta = midpoint.deltaFor(UserType.class).asObjectDelta(oid)
                         def options = ModelExecuteOptions.create().fastAssignment(resources)
                         midpoint.modifyObject(delta, options)
                     }
                  </code>
               </script>
               <forWholeInput>true</forWholeInput>
            </execute>
         </s:pipeline>
      </s:executeScript>
    

    , где:

    • Для каждого ресурса следует составить строку с определением переменной и указанием oid ресурса. Например, def resourceScim = midpoint.getObject(ResourceType.class, "123123-2352345325sdf-123");, где resourceScim - имя переменной, 123123-2352345325sdf-123 - oid ресурса, по которому нужно провести реконсиляцию.

    • В опции List.of определения переменной resources перечислить через запятую все переменные, в которых были указаны ресурсы. Например, в примере выше определено две переменных с ресурсами - resourceScim и resourceSoap. Поэтому опция заполняется как def resources = List.of(resourceScim, resourceSoap).

    • Для каждого пользователя, которому надо провести реконсиляцию, следует составить строку, добавляющую его oid в список, и вставить ее после определения переменной userOids. Например, userOids.add("12387tzygvcbh-123klznc-zxcq1351"), где 12387tzygvcbh-123klznc-zxcq1351 - oid пользователя (card).

  3. Составленный блок кода следует выполнить в системе IDM. Для этого можно воспользоваться следующими методами:

    1. Отправить блок кода через REST API. Для этого составьте корректный REST запрос в IDM с составленным блоком кода и отправьте его на эндпоинт <idm-host>/midpoint/ws/rest/rpc/executeScript. Например:

      POST http://localhost:8090/midpoint/ws/rest/rpc/executeScript
      Authorization: Basic {login} {password}
      Content-Type: application/xml
      
      <s:executeScript xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3"
                       xmlns="http://prism.evolveum.com/xml/ns/public/query-3">
         <s:pipeline>
            <execute xmlns="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3">
               <script>
                  <code xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3">
                     import com.evolveum.midpoint.model.api.ModelExecuteOptions
                     import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType
                     import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType
      
                     def resourceScim = midpoint.getObject(ResourceType.class, "123123-2352345325sdf-123")
                     def resourceSoap = midpoint.getObject(ResourceType.class, "32132145254-2352345325sdf-12asdzxcvqe3")
                     def resources = List.of(resourceScim, resourceSoap)
                 
                     def userOids = new ArrayList()
                     userOids.add("12387tzygvcbh-123klznc-zxcq1351")
                     userOids.add("97dsf2334-xc,bmn2931234-1235")
                 
                     for(String oid: userOids) {
                        def delta = midpoint.deltaFor(UserType.class).asObjectDelta(oid)
                        def options = ModelExecuteOptions.create().fastAssignment(resources)
                        midpoint.modifyObject(delta, options)
                     }
                  </code>
               </script>
               <forWholeInput>true</forWholeInput>
            </execute>
         </s:pipeline>
      </s:executeScript>
      
    2. Выполнить составленный блок кода (скрипт) в legacy UI IDM. Для этого:

      1. Перейдите в legacy UI IDM.

      2. Перейдите в раздел Configuration -> Bulk actions.

      3. Вставьте блок кода в окно и нажмите Start.

Задача для массового назначения или отъема ролей#

Задачи группы Roles Bulk Action предназначены для выполнения массовых операций назначения или отъема списка ролей у списка пользователей. Все задачи расположены в директории post-init/forManualUpload/roles-bulk-actions и требуют загрузки на стенд вручную.

Группа состоит из трех задач:

  • Roles Bulk Action. Creator - генератор для создания задач на основе шаблона Roles Bulk Action. TEMPLATE и конфигурационного объекта задач для массового отзыва или назначения ролей.

  • Roles Bulk Action. TEMPLATE - шаблон, на основе которой Roles Bulk Action. Creator создает задачи для массовых операций.

  • bulk-roles-action - объект конфигурации задачи, содержащий списки ролей и пользователей, а также другие параметры операции.

Алгоритм работы с задачами следующий:

  1. Сконфигурировать объект конфигурации. Можно внести изменения в существующий, либо импортировать новый.

  2. Изменить задачу Roles Bulk Action. Creator, указав в конфигурационном параметре configurationName имя объекта конфигурации, который следует использовать для создания задач.

  3. Запустить задачу Roles Bulk Action. Creator.

  4. Задача Roles Bulk Action. Creator сгенерирует и запустит одну или более задач, созданных по шаблону Roles Bulk Action. TEMPLATE для выполнения операций.

  5. Задачи шаблона Roles Bulk Action. TEMPLATE по завершению работы сгенерируют отчеты по работе.

Настройка задачи#

Объект конфигурации задачи содержит следующие параметры, которые требуется заполнить:

  • executionName - имя запуска. Добавляется в имя задачи и отчета.

  • delimiter - разделитель между идентификаторами ролей в roles и cards. По умолчанию равен ;;.

  • executionGroup - имя группы исполнения. Транслируется в executionConstraints/group.

  • createAssignTask - булевый параметр. Если задан true, то будет создана задача на назначение ролей.

  • createUnassignTask - булевый параметр. Если задан true, то будет создана задача на отзыв ролей.

  • workersPerNode - количество воркеров на один узел. Транслируется distribution/workers/workersPerNode/count создаваемых задач.

  • workerThreads - количество потоков на один воркер. Транслируется distribution/workers/workerThreads создаваемых задач.

  • maxCardsInTaskCount - максимальное количество карточек, которое должна будет обработать задача. Если количество карточек превышает maxCardsInTaskCount, то будет создано несколько задач.

  • maxRolesInTaskCount - максимальное количество ролей, которое должна будет обработать задача. Если количество ролей превышает maxRolesInTaskCount, то будет создано несколько задач.

  • bucketSize - максимальный размер бакета. Количество бакетов определяется отношением cardsCount/bucketSize.

  • deltaMaxItems - максимальный размер дельты. Определяет максимально количество ролей, которое можно обработать одной дельтой. Если количество ролей превышает deltaMaxItems, то будет создано несколько дельт.

  • roles - список ролей в формате roleName(roleOid) или roleOid, разделенные delimiter.

  • cards - список карточек в формате cardName(cardOid) или cardOid, разделенные delimiter.

Обратите внимание.

Задачи выполняют массовые операции, поэтому их запуск рекомендовано планировать на периоды минимальной загрузки стенда.

Рекомендованы следующие параметры конфигурации для назначения:

  • maxCardsInTaskCount = 10000.

  • maxRolesInTaskCount = 100.

  • bucketSize = 1000.

  • deltaMaxItems = 100.

  • workersPerNode = 2.

  • workerThreads = 4.

Рекомендованы следующие параметры конфигурации для отъема ролей:

  • maxCardsInTaskCount = 10000.

  • maxRolesInTaskCount = 200.

  • bucketSize = 1000.

  • deltaMaxItems = 100.

  • workersPerNode = 1.

  • workerThreads = 2.

Разбиение задач#

Если при настройке задачи количество задач и/или ролей превысило значения параметров maxCardsInTaskCount и maxRolesInTaskCount, то при генерации задач по шаблону будет создано несколько задач, связанных в цепочку.

При этом к названиям задач в цепочке будут добавляться один или два индекса, начиная с 1. Первый индекс добавляется, если выполнялось разбиение по одному критерию (например, превышение msxCardsInTaskCount), второй - по обоим критериям. Если указывается два индекса, то первым будет индекс разбиения по карточкам.

Например, если задача была разбита на два блока по количеству карточек и три по количеству ролей - будет создано 6 задач с индексами Part 1 1, Part 1 2… до Part 2 3.

Все задачи в цепочке, кроме последней по номеру, состоят из двух activity. Первая проводит операцию с ролями, вторая запускает следующую задачу.

Обратите внимание.

В случае если в цепочке задач у пользователей возникает ошибка при назначении и задача завершается со статусом Частичная ошибка - следующая задача не запускается, и ее необходимо запустить вручную.

Шаблон задачи импорта аккаунтов из ресурса#

Данный шаблон предназначен для создания задач импорта УЗ из конкретных ресурсов.

Конфигурирование шаблона импорта под конкретный ресурс#

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

<task xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
      xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
      oid="52434b98-f7ac-42d9-828e-689005503aa6"> <!-- Следует изменить OID задачи, если планируется загрузить несколько разных задач, основанных на данном шаблоне -->
    
    <extension xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
        <resourceOid xsi:type="xsd:string">10000000-0000-0000-0000-100000000500</resourceOid> <!-- OID ресурса с которым работаем -->
        <usernameAttr xsi:type="xsd:string">userName</usernameAttr> <!-- Название атрибута в схеме ресурса, содержащий username -->
        <employeeNumberAttr xsi:type="xsd:string">EnterpriseUser.employeeNumber</employeeNumberAttr> <!-- Название атрибута в схеме ресурса, содержащий табельный номер -->
        <familyNameAttr xsi:type="xsd:string">name.familyName</familyNameAttr> <!-- Название атрибута в схеме ресурса, содержащий фамилию -->
        <givenNameAttr xsi:type="xsd:string">name.givenName</givenNameAttr> <!-- Название атрибута в схеме ресурса, содержащий имя -->
        <additionalNameAttr xsi:type="xsd:string">name.middleName</additionalNameAttr> <!-- Название атрибута в схеме ресурса, содержащий отчество -->
        <rolesAttr xsi:type="xsd:string">roles</rolesAttr> <!-- Название атрибута в схеме ресурса, содержащий список ролей -->
        <accountName xsi:type="xsd:string">accountName-1</accountName> <!-- Имя УЗ которое исключаем из процедуры линковки -->
        <accountName xsi:type="xsd:string">accountName-2</accountName> <!-- Имя УЗ которое исключаем из процедуры линковки -->
    </extension>
   
</task>

Структура задачи#

Задача имеет структуру с четырьмя последовательными активностями:

Активность 1: prepare          - Валидация параметров задачи
Активность 2: main             - Основная логика импорта
Активность 3: unlock-shadows   - Очистка меток "do not touch"
Активность 4: report           - Генерация и экспорт отчета

Активность 1: prepare#

Назначение

Проверка наличия всех требуемых параметров расширения, описанных в пункте Конфигурирование шаблона импорта под конкретный ресурс.

Обработка ошибок

  • Любая ошибка валидации приводит к немедленной остановке задачи со статусом предупреждения.

  • Сообщение об ошибке содержит имя отсутствующего параметра.

Активность 2: main#

Назначение

Основная логика импорта и привязки учетных записей из ресурса к карточкам пользователей в PV IDM.

Поток обработки

Активность обрабатывает объекты ShadowType (представляющие учетные записи на ресурсе), которые соответствуют определенным критериям.

2.1 Условие обработки объекта

Обрабатываются только проекции с синхронизационными ситуациями UNLINKED или UNMATCHED. Уже LINKED или MATCHED проекции пропускаются.

2.2 Основная логика обработки

Для каждой подходящей проекции выполняются следующие шаги:

  1. Проверка исключения

    1. Получение списка исключенных имен учетных записей из параметров расширения задачи.

    2. Если имя текущей проекции присутствует в списке исключений:

      • Записывается предупреждающее сообщение в лог

      • Устанавливается синхронизационная ситуация UNMATCHED

      • Дальнейшая обработка для этой проекции пропускается

  2. Извлечение следующих данных из проекции:

    • ФИО (Полное имя)

    • Имя пользователя

    • Табельный номер

  3. Поиск карточек пользователей (объектов UserType с архетипом карточки) с использованием взвешенной стратегии поиска:

    Запрос поиска

    Вес

    Описание

    ФИО + username + employeeNumber

    1.0

    Точное совпадение по всем трем полям

    username + employeeNumber

    0.9

    Совпадение по имени пользователя и табельному номеру

    ФИО + username

    0.8

    Совпадение по полному имени и имени пользователя

    ФИО + employeeNumber

    0.7

    Совпадение по полному имени и табельному номеру

    Поиск использует OID архетипа карточки

  4. Обработка результатов поиска

    Сценарий

    Действие

    Карточки не найдены

    Запись предупреждения, установка ситуации UNMATCHED, пропуск отчета

    Найдено несколько карточек

    Запись предупреждения, установка ситуации UNMATCHED

    Карточка найдена

    Продолжение обработки

  5. Валидация контракта

    1. Получение контракта, связанного с карточкой

    2. Если контракт не найден:

      • Записывается предупреждение в лог

      • Устанавливается ситуация проекции UNMATCHED

      • Дальнейшая обработка пропускается

    3. Проверка статуса контракта

    4. Допустимые статусы: work, maternity_leave, candidate, fired, blocked_by_IRP, blocked_by_SMD

  6. Логика привязки проекции к карточке

    Основная логика зависит от комбинации:

    • Статуса активации проекции (активна/неактивна)

    • Статуса активации карточки (включена/отключена)

    • Статуса контракта

    Обрабатываются следующие сценарии:

    Статус тени

    Статус карточки

    Статус контракта

    Действие

    Активна

    Активна

    work

    Привязать проекцию, добавить основную роль и роли ресурса

    Активна

    Активна

    maternity_leave

    Привязать проекцию, отключить проекцию, очистить роли

    Активна

    Активна

    candidate

    Привязать проекцию, отключить проекцию, очистить роли

    Активна

    Неактивна

    fired

    Привязать проекцию, отключить проекцию, очистить роли

    Активна

    Неактивна

    blocked_by_IRP

    Привязать проекцию, отключить проекцию, очистить роли

    Активна

    Неактивна

    blocked_by_SMD

    Привязать проекцию, отключить проекцию, очистить роли

    Неактивна

    Активна

    work

    Привязать проекцию, добавить роли ресурса

    Неактивна

    Активна

    maternity_leave

    Привязать проекцию, отключить проекцию, очистить роли

    Неактивна

    Активна

    candidate

    Привязать проекцию, отключить проекцию, очистить роли

    Неактивна

    Неактивна

    fired

    Привязать проекцию, отключить проекцию, очистить роли

    Неактивна

    Неактивна

    blocked_by_IRP

    Привязать проекцию, отключить проекцию, очистить роли

    Неактивна

    Неактивна

    blocked_by_SMD

    Привязать проекцию, отключить проекцию, очистить роли

  7. Обработка множественных учетных записей

    1. Если у карточки уже присутствует активная/неактивная УЗ, созданная не этой задачей, то другие найденные УЗ сотрудника блокируются и не связываются с УКП, даже если будет найдена УЗ выше приоритетом

    2. Если у карточки нет УЗ, то задача привязывает УЗ согласно приоритету, остальные УЗ блокируются.

    3. Если у карточки есть активная/неактивная УЗ, импортированная этой задачей, то при импорте в случае нахождения УЗ с высшим приоритетом будет перепривязка, предыдущая УЗ при этом будет заблокирована.

  8. Для контрактов со статусом work и активных карточек:

    1. Получение OID основной роли из расширения ресурса

    2. Добавление основной роли в карточку как назначения

    3. Для всех сценариев извлечение идентификаторов ролей из атрибута rolesAttr проекции

    4. Для каждого идентификатора роли найти соответствующую роль в PV IDM (по идентификатору и OID ресурса)

    5. Добавление найденных ролей в качестве назначений в карточку

  9. Проекция модифицируется со следующими изменениями:

    • Административный статус установлен в DISABLED

    • Атрибут ролей очищен (установлен в пустой список)

    • Синхронизационная ситуация установлена в LINKED

    • Добавлена метка «не трогать» (для предотвращения одновременных модификаций)

  10. Карточка модифицируется с:

    • Добавленной ссылкой привязки, указывающей на тень

    • Назначением основной роли (если применимо)

    • Назначениями ролей ресурса (если применимо)

  11. Событие аудита записывается со следующими свойствами:

    • Метка времени

    • Идентификатор запроса

    • Канал: customImportAccount

    • Цель: Объект тени

    • Этап события: Выполнение

    • Тип события: Синхронизация

    • OID и имя ресурса

    • Имя карточки

    • OID и имя тени

    • Статус операции (Success/Warning/Error/Undefined)

    • Флаг пропуска отчета

    • Подробное сообщение с информацией о дельтах

Активность 3: unlock-shadows#

Назначение

Удаление метки «do not touch» со всех теней, которые все еще имеют ее после завершения основной обработки.

Обоснование Во время основной обработки тени помечаются «do not touch» для предотвращения одновременных модификаций. Эта вспомогательная активность гарантирует, что все такие метки будут удалены после завершения задачи.

Активность 4: report#

Генерация и экспорт отчета на основе результатов выполнения задачи. Отчет будет содержать информацию аудита, собранную во время выполнения основной активности.

Шаблон задачи реконсиляции аккаунтов из ресурса#

Данный шаблон предназначен для создания задач реконсиляции изменений из конкретных ресурсов с данными в IDM.

Конфигурирование шаблона реконсиляции под конкретный ресурс#

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

<task xmlns="http://midpoint.evolveum.com/xml/ns/public/common/common-3"
      xmlns:s="http://midpoint.evolveum.com/xml/ns/public/model/scripting-3"
      xmlns:q="http://prism.evolveum.com/xml/ns/public/query-3"
      oid="b8d8f3f8-f1a4-43c6-9ce3-2079fde42a34">
    
   <extension xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
      <reconcileMode xsi:type="xsd:string">modify</reconcileMode> <!-- Возможные режимы работы таски: read, modify. Если read - выводим в отчет информацию по изменениям, modify - выполняем реконсиляцию -->
      <resourceOid xsi:type="xsd:string">10000000-0000-0000-0000-100000000500</resourceOid> <!-- OID ресурса с которым работаем -->
      <usernameAttr xsi:type="xsd:string">userName</usernameAttr> <!-- Название атрибута в схеме ресурса, содержащий username -->
      <employeeNumberAttr xsi:type="xsd:string">EnterpriseUser.employeeNumber</employeeNumberAttr> <!-- Название атрибута в схеме ресурса, содержащий табельный номер -->
      <familyNameAttr xsi:type="xsd:string">name.familyName</familyNameAttr> <!-- Название атрибута в схеме ресурса, содержащий фамилию -->
      <givenNameAttr xsi:type="xsd:string">name.givenName</givenNameAttr> <!-- Название атрибута в схеме ресурса, содержащий имя -->
      <additionalNameAttr xsi:type="xsd:string">name.middleName</additionalNameAttr> <!-- Название атрибута в схеме ресурса, содержащий отчество -->
      <rolesAttr xsi:type="xsd:string">roles</rolesAttr> <!-- Название атрибута в схеме ресурса, содержащий список ролей -->
      <thresholdOfChanges xsi:type="xsd:int">5</thresholdOfChanges> <!-- Пороговое значение количества изменений, которые будут применяться при реконсиляции. Если изменений больше, то просто вывод в отчет -->
      <accountName xsi:type="xsd:string">282272</accountName> <!-- Имя УЗ которое исключаем из процедуры линковки -->
      <accountName xsi:type="xsd:string">accountName-2</accountName> <!-- Имя УЗ которое исключаем из процедуры линковки -->
      <ignoreNotFoundCards xsi:type="xsd:boolean">true</ignoreNotFoundCards>
   </extension>
   
</task>

Структура задачи#

Задача имеет структуру с тремя последовательными активностями:

Активность 1: prepare   - Валидация параметров задачи
Активность 2: main      - Основная логика реконсиляции
Активность 3: report    - Генерация и экспорт отчета

Активность 1: prepare#

Назначение

Проверка наличия всех требуемых параметров расширения, описанных в пункте Конфигурирование шаблона реконсиляции под конкретный ресурс.

Обработка ошибок

  • Любая ошибка валидации приводит к немедленной остановке задачи со статусом предупреждения.

  • Сообщение об ошибке содержит имя отсутствующего параметра.

Активность 2: main#

Назначение

Основная логика реконсиляции учетных записей из ресурса с карточками пользователей в PV IDM.

Поток обработки

Активность обрабатывает объекты ShadowType (представляющие учетные записи на ресурсе), которые соответствуют определенным критериям.

2.1 Источник данных

Запрос всех проекций для указанного ресурса с типом account:

  • Фильтрация по resourceRef (OID ресурса из параметров)

  • Фильтрация по kind = account

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

Основная логика обработки

Для каждой подходящей проекции выполняются следующие шаги:

  1. Проверка исключения

    1. Получение списка исключенных имен учетных записей из параметров расширения задачи.

    2. Если имя текущей проекции присутствует в списке исключений:

      • Записывается предупреждающее сообщение в лог

      • Устанавливается статус операции WARNING

      • Дальнейшая обработка для этой проекции пропускается

  2. Извлечение следующих данных из проекции:

    • ФИО (Полное имя)

    • Имя пользователя

    • Табельный номер

  3. Поиск карточек пользователей (объектов UserType с архетипом карточки) с использованием взвешенной стратегии поиска:

    Запрос поиска

    Описание

    ФИО + username

    Совпадение по полному имени и имени пользователя

    ФИО + employeeNumber

    Совпадение по полному имени и табельному номеру

    username + employeeNumber

    Совпадение по имени пользователя и табельному номеру

    Поиск использует OID архетипа карточки

  4. Обработка результатов поиска

    Сценарий

    Действие

    Карточки не найдены

    Запись предупреждения, установка флага skipReport в зависимости от ignoreNotFoundCards

    Найдено несколько карточек

    Запись предупреждения, остановка обработки

    Карточка найдена

    Продолжение обработки

  5. Валидация контракта

    1. Получение контракта, связанного с карточкой

    2. Если контракт не найден:

      • Записывается предупреждение в лог

      • Устанавливается ситуация проекции UNMATCHED

      • Дальнейшая обработка пропускается

    3. Проверка статуса контракта

    4. Допустимые статусы: work, maternity_leave, candidate, fired, blocked_by_IRP, blocked_by_SMD

  6. Проверка, связана ли карточка с другой активной проекцией того же ресурса:

    • Если карточка уже связана с другой проекцией ресурса:

      • Записывается предупреждение

      • Обработка останавливается (множественные учетные записи не допускаются)

  7. Логика реконсиляции

    Основная логика зависит от комбинации:

    • Статуса активации проекции (активна/неактивна)

    • Статуса активации карточки (включена/отключена)

    • Наличия ссылки на ресурс в карточке (hasResourceRef)

    • Наличия ссылки на текущую проекцию в карточке (hasLinkRef)

    • Статуса контракта

    Сценарии обработки:

    Статус тени

    Статус карточки

    Условие

    Действие

    Активна

    Активна

    contractStatus = maternity_leave

    Связать УЗ с УКП, инициировать блокировку УЗ и очистку ролей

    Активна

    Активна

    contractStatus = candidate

    Связать УЗ с УКП, инициировать блокировку УЗ и очистку ролей

    Активна

    Активна

    hasLinkRef + hasResourceRef

    Ничего не делать, реконсиляция через previewChanges

    Активна

    Активна

    !hasLinkRef

    Связать УЗ с УКП, инициировать блокировку УЗ и очистку ролей

    Активна

    Активна

    hasLinkRef + !hasResourceRef

    Инициировать блокировку УЗ и очистку ролей

    Активна

    Неактивна

    contractStatus = fired/blocked_by_IRP/blocked_by_SMD

    Связать УЗ с УКП, инициировать блокировку УЗ и очистку ролей

    Неактивна

    Активна

    hasLinkRef + hasResourceRef

    Ничего не делать, реконсиляция через previewChanges

    Неактивна

    Активна

    hasLinkRef + !hasResourceRef

    Ничего не делать, реконсиляция через previewChanges

    Неактивна

    Активна

    !hasLinkRef + !hasResourceRef

    Связать УЗ с УКП, инициировать блокировку УЗ и очистку ролей

    Неактивна

    Неактивна

    contractStatus = fired/blocked_by_IRP/blocked_by_SMD

    Импортировать УЗ в карточку, инициировать очистку ролей

  8. Если режим modify и есть изменения в карточке:

    • Применяется модификация карточки с опцией raw()

  9. Выполняется предварительный расчет изменений:

    • Создается контекст предварительных изменений с опцией reconcile()

    • Анализируются проекции для указанного ресурса

    • Извлекаются суммарные дельты для атрибутов проекции

    • Подсчитывается количество изменений

  10. Применение изменений

    1. В режиме read:

      • Только анализ изменений

      • Информация попадает в отчет

      • Никакие изменения не применяются

    2. В режиме modify:

      • Проверяется пороговое значение изменений

      • Если количество изменений меньше порога:

        • Выполняется быстрая реконсиляция назначений

        • Применяются изменения к проекции с опциями частичной обработки

      • Если количество изменений превышает порог:

        • Выводится предупреждение о превышении лимита

        • Изменения не применяются

  11. Событие аудита записывается со следующими свойствами:

    • Метка времени

    • Идентификатор запроса

    • Канал: customReconciliationAccount

    • Цель: Объект проекции

    • Этап события: Выполнение

    • Тип события: Синхронизация

    • OID и имя ресурса

    • OID и имя проекции

    • Статус операции (Success/Warning/Error/Undefined)

    • Флаг пропуска отчета

    • Подробное сообщение с информацией о дельтах

Активность 3: report#

Генерация и экспорт отчета на основе результатов выполнения задачи. Отчет будет содержать информацию аудита, собранную во время выполнения основной активности.