Журнал Системный Администратор, Февраль 2008

Журнал Системный Администратор

Февраль 2008

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Синхронизация ACL и структуры организации. Часть 3

 

Вадим Андросов

В статье приводится окончательная реализация надстройки, позволяющей поддерживать в согласованном виде списки контроля доступа и структуру организации. Описаны механизмы ее установки и отключения. Подробно рассмотрены основные приемы создания постоянных обработчиков событий на основе сценариев в Windows 2003 Server.

Создание постоянного обработчика событий

Теперь необходимо обеспечить функционирование прикрепленных групп, так как штатных средств автоматического добавления пользователей в группы нет. Как уже говорилось, для обработки событий не будут использоваться временные подписчики. Рассмотрим основные шаги регистрации постоянного обработчика событий, который не требует постоянного функционирования сценария и продолжает работать после перезагрузки системы. Этот вариант функционирует на основе COM-объектов. Операционная система уже содержит необходимые классы для такой популярной операции, как запуск кода сценария в ответ на событие. Пользовательские классы здесь мы будем использовать только для удобства установки надстройки. Воспользуемся паттерном «Делегирование» [3], добавив в стандартные классы вызовы методов нашего. То есть все сценарии, выполняемые в ответ на то или иное событие, будут состоять из одинаковых шагов:

n  Создание объекта класса, инкапсулирующего реакцию на событие.

n  Инициализация объекта полным именем источника события.

n  Вызов необходимого метода.

 

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

n  Организационная единица. При переносе объектов этого типа требуется подключить ее прикрепленную группу типа Tree к такой группе родительской организационной единицы. Поскольку предполагается, что прикрепленные группы находятся в своих организационных единицах, при удалении подразделения группы будут автоматически удалены ОС. Также в случае переноса организационной единицы группа отсоединяется от своего старого контейнера.

n  Группы. Требуется обрабатывать событие удаления группы. В случаях, если это прикрепленная к организационной единице группа, она должна быть корректно отключена (должен быть удален указатель на эту группу). При этом для случая группы типа Tree на место удаленной группы ставится указатель на такую группу родительского подразделения.

n  Пользователи. Операции над этими объектами нужно отслеживать для поддержки функциональности групп типа Single. При добавлении пользователя в организационную единицу он должен быть автоматически зарегистрирован в прикрепленной группе. Аналогично при удалении его требуется удалить из группы. Простое удаление работало бы корректно и без специальной обработки (при удалении пользователя он и так пропадает из всех содержащих его групп), однако здесь важно обрабатывать событие удаления, возникающее при перемещении объекта пользователя между отделами (перемещение – это на самом деле последовательные операции удаления и добавления).

 

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке