Управляем объектами в Active Directory. Часть 4::Журнал СА 1.2009
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 1235
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 1257
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 3785
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 4008
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 3203
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Управляем объектами в Active Directory. Часть 4

Архив номеров / 2009 / Выпуск №1 (74) / Управляем объектами в Active Directory. Часть 4

Рубрика: Администрирование /  Администрирование

Иван Коробко ИВАН КОРОБКО

Управляем объектами в Active Directory
Часть 4

Группа безопасности – один из основных объектов Active Directory, определяющего правила доступа к ресурсам домена. Умение управлять этим объектом дает большие возможности в автоматизации управления Active Directory.

Группа безопасности, так же как и учетная запись пользователя, – очень важный объект, значение которого нельзя недооценивать, несмотря на его простоту по сравнению с последним. С помощью групп безопасности определяют уровень доступа к сетевым или локальным ресурсам; используя членство пользователей в группах, создают интеллектуальные сценарии регистрации пользователей в сети.

В этой статье, являющейся четвертой частью цикла статей о внутреннем устройстве Active Directory, рассмотрим анатомию группы Active Directory и принципы программного управления этим объектом.

Основные понятия

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

Группа безопасности (security group) – объект, в котором могут содержаться дочерние объекты: учетные записи групп и пользователей. Она используется для определения разрешений доступа к файлам и другим ресурсам. Любая группа безопасности характеризуется двумя параметрами: ее типом и областью действия (см. таблицу 1).

Таблица 1. Параметры группы

Параметр мастера Атрибут объекта в Active Directory Тип данных Описание
Group name cn, name String Название группы в домене
Group name (Pre-Windows 2000) sAMAccountname String Название группы, используемое для совместимости с доменом Windows NT
Group scope groupType Radio Button Суммарным значением параметра описывается область действия и тип создаваемой группы безопасности

Тип группы (group type) определяет, является ли группа – группой рассылки или же группой безопасности.

Существует два типа групп: Security (безопасности) и Distribution (распространения).

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

Создание группы

Существует минимум два способа создания группы безопасности: с помощью мастера и сценария. Рассмотрим сначала работу мастера, уделив особое внимание изменениям, которые происходят в это время в каталоге Active Directory. Основные параметры, задаваемые при создании группы администратором – ее имя и тип. Изменение остальных параметров возможно только после создания объекта с помощью соответствующего мастера.

Создание группы с помощью мастера

Запуск мастера создания группы осуществляется из MMC-консоли Active Directory Users and Computers выбором пункта «New > Group» из контекстного меню папки, в которой необходимо создать учетную запись. Таким образом, определяется местоположение объекта, которому в Active Directory соответствует значение атрибута объекта distinguishedName.

Работа мастера состоит из одного шага (см. рис. 1). Во время создания группы безопасности необходимо назначить имя и тип группы, определить область действия и имя группы для совместимости (Pre-Windows 2000) с доменом Windows NT (см. таблицу 1).

Рисунок 1. Создание группы с помощью мастера

Рисунок 1. Создание группы с помощью мастера

Рассмотрим параметры, задаваемые мастером во время создания учетной записи. Первым из них является название группы (атрибут Group). В каталоге Active Directory ему соответствует атрибут cn. Значение атрибута name – отображаемое имя, назначается автоматически, идентично значению cn. Однако впоследствии оно может быть изменено в свойствах группы безопасности.

Одновременно с этим значением назначается имя группы, используемое для совместимости с доменами Windows NT – значение параметра Group name (Pre-Windows 2000). В каталоге Active Directory ему соответствует атрибут sAMAccountName.

Значения атрибута cn и sAMAccount-Name можно изменить, только переименовав объект. Изменяя имя объекта с помощью мастера, администратор изменяет только его отображаемое имя.

С помощью двух оставшихся блоков определяют тип и область действия группы. По умолчанию мастер предлагает создать глобальную группу безопасности (groupType = -2147483646). Каждому из выбранных значений соответствует цифровой эквивалент (см. таблицу 2). В каталог Active Directory записывается суммарное значение в числовое поле groupType.

Таблица 2. Расшифровка значений параметра groupType

Тип группы Значение Тип группы Значение
Global Security Group -2147483648 Global Distribution Group 2
Local Security Group -2147483644 Local Distribution Group 4
BuiltIn Group -2147483643 Universal Distribution Group 8
Universal Security Group -2147483640

Создание группы с помощью сценария

Для создания учетной записи группы программным способом (VBScript), как и при работе мастера, необходимо жестко задать несколько параметров. В листинге 1 приведен сценарий, позволяющий создать учетную запись группы. Исходные данные для его создания приведены в таблице 3.

Листинг 1. Создание учетной записи группы

set RootDSE = GetObject("LDAP://RootDSE")

Domain = rootDSE.Get("defaultNamingContext")

Set objUsers = GetObject("LDAP://OU=WorkGroup," & Domain)

Set objNewUser = objUsers.Create("group", "cn=Test")

objNewUser.Put "sAMAccountName", "Test"

objNewUser.Put "groupType", "-2147483646"

objNewUser.SetInfo

Обратите внимание! Если в листинге не указать тип и область действия группы с помощью параметра groupType, то система автоматически создаст этот параметр, присвоив этому параметру значение -2147483646, что эквивалентно глобальной группе безопасности.

Таблица 3. Параметры сценария для создания учетной записи пользователя

Параметр Описание Способ назначения
сn = Test Отображаемое имя Явный
sAMAccountName = Test Имя в сети для совместимости с доменами Windows NT Явный
groupType = -2147483646 Область действия и тип группы Явный
distinguishedName = CN=Test,OU=WorkSpace,DC=Island,DC=ru Путь к создаваемой учетной записи группы Неявный

Рассмотрим работу листинга. В первых двух строках сценария осуществляется определение RDN-имени (relative distinguished name, относительное составное имя) текущего домена с помощью виртуального объекта RootDSE. Затем в контейнере WorkSpace, находящемся в корне схемы Active Directory, создается группа безопасности с помощью функции Create(), имеющей два параметра. Первый параметр – тип объекта (последний элемент массива objectType), второй – имя объекта в формате «cn = …».

Замечание. RDN является одним из обязательных атрибутов объекта, значение которого характеризует его положение в иерархической структуре домена. Максимальная длина RDN-имени составляет 255 символов, однако схема Active Directory накладывает свои ограничения на его составные части. Например длина атрибута cn ограничивается 64 символами. Подробно о RDN см. [1].

Удаление группы

Аналогично описанию процесса создания группы рассмотрим удаление группы с двух ракурсов: работы мастера и сценария, их взаимосвязи.

Удаление группы с помощью мастера

Для запуска мастера удаления учетной записи какого-либо объекта, в том числе и группы, необходимо установить курсор на удаляемый объект (в данном случае – группа). Таким образом, определяют один из важнейших параметров – путь к объекту (поле distinguishedName). Вызвав контекстное меню объекта с помощью правой кнопки мыши, удаляют объект, выбрав пункт меню delete (см. рис. 2).

Рисунок 2. Удаление учетной записи группы с помощью мастера

Рисунок 2. Удаление учетной записи группы с помощью мастера

Удаление объекта с помощью сценария

В сценарии удаления объекта необходимо указать тип удаляемого объекта и путь к этому объекту в каталоге Active Directory. Оба параметра в сумме составляют значение distinguishedName. Например, если требуется удалить группу Test, то необходимо определить значение параметра distinguishedName. Затем – имя объекта (значение cn) и папку, в которой он находится.

Листинг 2. Удаление учетной записи группы

set RootDSE = GetObject("LDAP://RootDSE")

Domain = rootDSE.Get("defaultNamingContext")

Set objUsers = GetObject("LDAP://OU=WorkGroup," & Domain)

objUsers.delete "group", "cn=Test"

Set objUsers = nothing

Членство в группах

В группах безопасности можно производить операции:

  •  получать список объектов;
  •  добавлять объекты;
  • удалять объекты.

Каждый из этих способов можно реализовать как программно, так и с помощью мастера ММС-консоли, открыв вкладку Members учетной записи в свойствах группы (см. рис. 3).

Рисунок 3. Вкладка Members свойств группы безопасности

Рисунок 3. Вкладка Members свойств группы безопасности

Получение списка членов группы

Членами группы безопасности могут быть группы или пользователи. Список членов группы хранится в массиве Member, который хранится в виде составного LDAP-пути (см. листинг 3а).

В графической оболочке отображается преобразованное каноническое имя, которому соответствует значение поля cn. Такое преобразование приведено в листинге 3б.

Листинг 3а. Получение списка членов группы (стандартный вариант)

path = …

Set objGroup = GetObject("LDAP:// " & path)

temp = ""

For Each obj In objGroup.member

temp = temp + obj + vbNewLine

Next

MsgBox temp

Листинг 3б. Получение списка членов группы (улучшенный вариант)

path = …

Set objGroup = GetObject("LDAP:// " & path)

For Each obj In objGroup.member

temp = temp + GetObject("LDAP:// " & ?

obj.cn) + vbNewLine

Next

MsgBox temp

Добавление и удаление объекта в группе

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

Алгоритм работы сценария в обоих случаях следующий. На первом этапе с помощью функции GetObject() получают доступ к группе. Затем, вызывая функцию, аргумент которой составное имя группы или учетной записи, осуществляют требуемое действие, причем вызывать setInfo() для записи данных в каталог Active Directory не нужно.

Для добавления учетной записи используется функция Add (см. листинг 4а), а для удаления – Remove (см. листинг 4б).

Листинг 4а. Добавление объектов в группу

path = …

objPath=…

Set objGroup = GetObject("LDAP:// " & path)

objGroup.Add("LDAP:// " & objPath)

 Листинг 4б. Удаление объектов из группы

path = …

objPath=…

Set objGroup = GetObject("LDAP:// " & path)

objGroup.Remove("LDAP:// " & objPath)

Заключение

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

Надеюсь, эта статья поможет автоматизировать некоторые процессы в вашей сети.

  1. Object Naming – http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/distrib/dsbb_act_kjpw.mspx?mfr=true.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru