В любой организации, где есть домен, встает вопрос его администрирования.

Самые распространенные задачи:

  • Занесение новых пользователей и выдача прав
  • Отслеживание/блокировка уволенных сотрудников
  • Изменение прав при перемещении сотрудников между отделами

Классические варианты решения:

  • Кадровая служба делает рассылку по блокировке сотрудников при их увольнении
  • ИТ отдел сам проводит ревизию учетных записей
  • Ничего не отслеживать

Для автоматизации процесса администрирования домена нами была написана программа AD_MNGMNT.

В основу легли постулаты:

  • Стандартные средства: любые действия с доменом должны быть «нативными» и выполняться стандартными средствами
  • гибкость: программа не должна быть «жестко» привязана к существующим на предприятии информационным системам и легко адаптироваться к новым
  • журналирование: должна быть история всех действий
  • наличие web-интерфеса

Первоначальная решаемая задача: синхронизация кадровой подсистемы с доменом (сопоставление учетных записей с сотрудниками).

Программа написана на C# с использованием FrameWork XAF.

В домене создается Organization Unit (OU), внутри которого повторяется структура штатного расписания с помощью подчиненных OU, каждый OU это подразделение в который перемещаются пользователи/сотрудники согласно штатной расстановки.

Например, структура подразделений следующая: 01 — головное подразделение с подчиненными 000 и 099, в котором 513, далее 942, 943, 944, 968 и т.д.

На рисунке представлена структура OU

При создании нового отдела в кадровой подсистеме программа генерирует в домене OU и группы автоматически.

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

Например: есть отделы 099, 513, 942. Пользователи отдела 942 входят в группу доступа «Доступ. Подразделение 942», она, в свою очередь, входит в группу «Доступ. Подразделение 513» и т.д.

Далее права по папкам/программам и т.д. определяем группами доступа и тем самым получаем автоматическое распределение прав пользователей при приеме на работу или перемещении по службе сотрудников.

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

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

Домен синхронизируется не с кадровой системой, а c данными из БД программы. Тем самым мы не зависим от смежных систем.

Сотрудники, структура штатного расписания и все соответствия объектов хранятся в БД программы.

Пример штатной единицы:

Пример карточки сотрудника:

Пример журнала:

Пример скриптов:

Кроме домена через данную программу очень хорошо синхронизируются различные системы у которых есть свой API или доступ к БД.

Например, настроена и работает синхронизация между системами:

  • Кадровая подсистема
  • СКУД
  • Система обучения сотрудников
  • СЭД
  • Питание в столовых (расчет по пропускам)
  • Система распознавания лиц
  • Система определения алкоголя по выдоху (алкорамки)

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

В итоге мы получаем:

  • Автоматическое формирование OU, групп доступа и групп рассылки
  • Автоматическое разнесение пользователей по группам внутри домена
  • Автоматическая блокировка пользователей при увольнении
  • Синхронизация справочников различных систем не напрямую, а через отдельную БД где и хранятся пересечения идентификаторов объектов различных систем

WEB-интерфейс по функциональности ничем не отличается от стандартного.

Пример WEB-интерфейса