Когда Windows PowerShell только появился, многие стали спрашивать, можно ли управлять Active Directory (AD) с использованием PowerShell. В те времена ответ Microsoft был не таким, какой хотелось бы услышать большинству администраторов. В PowerShell имелся встроенный 'акселератор типов' Active Directory Service Interfaces (ADSI) для доступа к объектам AD, но пользователю приходилось в основном самостоятельно выяснять, как применить PowerShell для решения задач администрирования AD. Значительные изменения произошли с выпуском Windows Server 2008 R2, в котором появился модуль PowerShell для Active Directory. В модуль AD входит набор команд для управления AD, а также AD Provider, с помощью которого можно перемещаться по AD, как по диску с символьным обозначением. В этой статье я покажу, как установить модуль AD, и подробно опишу его функционирование. Когда Windows PowerShell только появился, многие стали спрашивать, можно ли управлять Active Directory (AD) с использованием PowerShell.
В те времена ответ Microsoft был не таким, какой хотелось бы услышать большинству администраторов. В PowerShell имелся встроенный «акселератор типов» Active Directory Service Interfaces (ADSI) для доступа к объектам AD, но пользователю приходилось в основном самостоятельно выяснять, как применить PowerShell для решения задач администрирования AD. Спустя некоторое время компания Quest Software предоставила бесплатный набор команд для административных задач AD, в том числе создания, изменения и удаления объектов AD, и поиска объектов в AD.
В течение длительного периода состояние PowerShell и управления AD было таким. Значительные изменения произошли с выпуском Windows Server 2008 R2, в котором появился модуль PowerShell для Active Directory.
В модуль AD входит набор команд для управления AD, а также AD Provider, с помощью которого можно перемещаться по AD, как по диску с символьным обозначением. В этой статье я покажу, как установить модуль AD, и подробно опишу его функционирование. Установка Active Directory Module В отличие от предыдущих инструментов, в которых для связи с AD применялся протокол LDAP, модуль AD использует протоколы Active Directory Web Services (ADWS) для обмена данными с контроллером домена (DC) AD. Эти протоколы подробно описаны в блоге MSDN «Active Directory Web Services Overview», но достаточно отметить, что команды PowerShell в модуле AD и Active Directory Administrative Center (ADAC) используют ADWS для связи и получения информации из AD. При установке контроллеров домена Windows Server 2012 или Server 2008 R2 в домене AD протокол ADWS устанавливается и запускается по умолчанию на каждом из них. Если ваш домен состоит целиком из контроллеров домена Windows Server 2008 или Windows Server 2003, необходимо установить ADWS отдельно.
Здесь мы опишем только первый метод в контексте использования LDAP-каталога в качестве хранилища информации об учётных записях пользователей, получаемой из Active Directory. PDC) Active Directory, хотя связка Ubuntu Server/Samba, рассмотренная здесь (с добавлением OpenLDAP) вполне может играть и такую роль. Итак, наша цель — быстро и экономично обзавестись AD DC. В этом нам поможет интерактивный инструмент samba-tool, который предназначен.
Microsoft бесплатно предоставляет пакет Active Directory Management Gateway Service для этой цели. Если установить пакет по крайней мере на одном контроллере домена AD Server 2008 или Server 2003, то можно использовать модуль AD для PowerShell наряду с ADAC. Собственно модуль AD устанавливается по умолчанию на любом DC с операционной системой Server 2012 или Server 2008 R2. На компьютерах Windows 8 и Windows 7 (или любом компьютере, кроме DC, работающем с Server 2012 или Server 2008 R2), необходимо установить средства удаленного администрирования сервера Remote Server Administration Tools из центра загрузки Microsoft. Независимо от того, установлены Remote Server Administration Tools на компьютере заранее или отдельно, следующий шаг — открыть раздел установки и удаления программ Add/Remove Programs в панели управления и выбрать пункт включения или отключения компонентов Windows — Turn Windows features on or off — в меню слева. Прокрутите диалоговое окно компонентов Windows Feature вниз до раздела Remote Server Administration Tools.
Найдите флажок Active Directory Module for Windows PowerShell в папке Remote Server Administration Tools Role Administration Tools AD DS and AD LDS Tools, как показано на экране 1. Установите флажок и нажмите кнопку OK, чтобы установить модуль. Установка модуля AD для PowerShell После этого вы должны увидеть ярлык Active Directory Module for Windows PowerShell в разделе Administrative Tools меню Start.
Щелкните этот ярлык, чтобы запустить PowerShell с загруженным модулем AD. Если вы уже работаете в PowerShell и хотите просто загрузить модуль, чтобы он стал доступным для использования, можно ввести следующую команду и получить доступ к командам AD и AD Provider: Import-Module ActiveDirectory Теперь посмотрим, как перемещаться по AD с помощью AD Provider. Использование Active Directory Provider В PowerShell реализована концепция дисков PowerShell, которые я буду называть просто дисками PS.
Упрощенно можно назвать диск PS представлением ресурса, такого как пригодная для навигации файловая система, состоящая из папок и конечных элементов. Не каждый ресурс можно представить таким образом, но многие (в том числе AD и реестр) хорошо вписываются в эту модель. Модуль AD содержит провайдера для диска PS AD. Соответственно, можно перемещаться и даже изменять AD, как будто это файловая система. Как же перемещаться по AD, используя AD Provider?
Предполагается, что PowerShell открыт и модуль AD загружен. В этом случае первый шаг — запустить команду Set-Location, которая имеет несколько псевдонимов, в том числе sl и cd: Set-Location AD: Эта команда изменяет текущее рабочее положение диска PS AD. В результате приглашение PowerShell покажет AD: вместо C:. Затем, чтобы увидеть элементы в диске PS AD, можно применить команду Get-ChildItem с псевдонимом dir: Get-ChildItem На экране 2 показан пример результата на моем компьютере. Список разделов домена, доступных в PS-диске AD Как мы видим, команда возвращает список всех доступных разделов домена. Самый интересный, на мой взгляд, — раздел домена с именем cpandl, который содержит имена пользователей и компьютеров.
Чтобы изменить этот домен, достаточно ввести команду: Set-Location «dc=cpandl,dc=com» Обратите внимание, что используется команда Set-Location с различающимся именем (DN) моего домена AD. Это требуется для корректной навигации.
После перехода в каталог домена (на что указывает приглашение AD: dc=cpandl,dc=com в PowerShell), можно использовать команду Get-ChildItem, чтобы увидеть структуру AD верхнего уровня (экран 3). Просмотр верхнего уровня иерархии AD Если нужно взглянуть на пользователей в организационной единице (OU) SDM, то для перехода в эту OU достаточно ввести: Set-Location «OU=SDM» Командная строка PowerShell будет иметь вид AD: ou=SDM,dc=cpandl,dc=com. На данном этапе можно использовать команду Get-ChildItem, чтобы увидеть все объекты пользователя в этом OU. Если нужно изменить свойство Description на объекте пользователя, представляющем мою учетную запись пользователя Darren Mar-Elia. Для этого есть команда! Команда Set-ItemProperty позволяет изменить свойство в объекте AD.
Если нужно изменить описание учетной записи пользователя на Chief Techie, следует выполнить команду: Set-ItemProperty -Path '. CN=Darren Mar-Elia' ` -Name «Description» -Value «Chief Techie» Как мы видим, здесь используется параметр –Path для указания моей учетной записи пользователя в текущем каталоге.
Я также использую параметр -Name, дабы указать, что нужно изменить свойство Description, и параметр –Value, для указания описания Chief Techie. Обратите внимание, что если нужно найти все объекты с определенным значением свойства, можно задействовать Get-ItemProperty. Если требуется просто получить ссылку на объект AD, используйте Get-Item. Как видите, работать с AD таким образом довольно просто. Механизм вряд ли подходит для массовых изменений, однако он удобен для работы с AD как с файловой системой.
При этом, как я выяснил, большинство администраторов использует команды вместо диска PS AD для управления AD. Посмотрим, как действуют некоторые из этих команд. Применение команд Active Directory Модуль для AD, поставляемый с Windows 7, содержит 76 команд для управления AD. Их можно использовать почти для любых целей, в том числе поиска объектов AD, создания и удаления объектов AD и манипуляций с информацией о настройках AD (например, режим леса и детальная политика паролей). Обычно команды группируются по глаголам, таким как Add-, Remove-, Get- и Set.
Обратите внимание, что не каждая команда Get- имеет соответствующую команду Set- и наоборот, поэтому иногда приходится потратить усилия, чтобы найти нужную команду для задачи. Например, можно установить уровень функциональности леса AD с использованием Set-ADForestMode, но чтобы выяснить текущий уровень функциональности леса, необходимо задействовать команду Get-ADForest и посмотреть свойство ForestMode на возвращенном объекте. Рассмотрим несколько типовых задач, которые можно выполнить с помощью команд AD. В частности, далее будет показано, как добавить учетные записи пользователя, управлять членством в группе, сбросить пароли учетных записей пользователя и выполнять поиск объектов AD. Добавление учетных записей пользователя Команда New-ADUser обеспечивает простой способ добавлять учетные записи пользователя в AD.
Если нужно добавить новую учетную запись пользователя с именем Bill Smith в организационную единицу SDM, то в самом простом случае можно создать учетную запись нового пользователя с помощью команды: New-ADUser -Name «Bill Smith» -SamAccountName «bsmith» ` -GivenName «Bill» -Surname «Smith» ` -DisplayName «Bill Smith» -Path «OU=SDM,DC=cpandl,DC=com» В этой команде вводится основная информация об учетной записи пользователя. В частности, параметр -SamAccountName служит для предоставления имени учетной записи SAM, необходимой для создания объекта пользователя.
Также применяется параметр –Path, чтобы сообщить команде место, куда следует поместить объект — в данном случае в организационную единицу SDM в домене cpandl.com. Кроме того, указано имя пользователя (параметр -GivenName), фамилия (параметр -Surname) и отображаемое имя (параметр -DisplayName).
Выполнение этой команды приведет к созданию учетной записи пользователя, но есть две проблемы. Во-первых, учетная запись будет отключена.
Во-вторых, с учетной записью не будет связан пароль, что требуется в большинстве доменов. Чтобы избежать необходимости активировать учетную запись и назначать пароль отдельно, можно изменить команду New-ADUser. New-ADUser автоматически активирует учетную запись, если указать параметр -Enabled $true в команде. Для активирования требуется пароль, поэтому необходимо также указать его в команде. Чтобы предоставить пароль, можно использовать параметр –AccountPassword.
Однако нельзя ввести пароль простым текстом в командной строке. Этот параметр требует, чтобы пароль был введен в защищенной строке (то есть имел тип данных SecureString). Существует два способа преобразовать пароль в защищенную строку, и в обоих случаях используется переменная. В первом методе применяется команда ConvertTo-SecureString, которая преобразует строки простого текста в защищенные строки. Например, если нужно преобразовать пароль P@ssw0rd12 в защищенную строку и назначить его переменной $pwd, следует выполнить команду: $pwd = ConvertTo-SecureString -string «P@ssw0rd12» ` -AsPlainText –force Это не самый безопасный метод назначения пароля, так как кто-то может заглянуть вам через плечо при вводе команды. Более надежный способ, если команда New-ADUser запросит пароль и будет скрывать вводимые символы. Это можно сделать с помощью команды Read-Hostcmdlet с параметром –AsSecureString: $pwd = Read-Host -AsSecureString После выполнения этой команды вы увидите на экране знакомый символ «*' при вводе пароля.
Завершив ввод, нажмите клавишу Enter. После того, как пароль сохранен в переменной $pwd, можно передать его в команду New-ADUser: New-ADUser -Name»Bill Smith«-SamAccountName»bsmith«` -GivenName»Bill«-Surname»Smith«` -DisplayName»Bill Smith«` -Path»OU=SDM,DC=cpandl,DC=com«` -Enabled $true -AccountPassword $pwd Как мы видим, команда содержит параметры -Enabled и –AccountPassword, которые активируют учетную запись и безопасно назначают ей пароль.
Создание пользовательских учетных записей по одной — аккуратный способ, но иногда требуется создать несколько учетных записей одновременно. PowerShell прекрасно подходит для этой цели. Например, если нужно создать три учетных записи пользователя, то можно подготовить файл с разделением запятыми (CSV), который содержит информацию об учетной записи, а затем использовать команду Import-CSV для передачи этой информации в New-ADUser.
На экране 4 показан файл CSV с именем userlist.csv. Применение CSV-файла для создания нескольких пользовательских учетных записей одновременно Обратите внимание, что в этом файле заголовки столбцов соответствуют именам параметров, предоставленных в предыдущей команде New-ADUser. Это сделано специально. Когда данные CSV передаются в New-ADUser, команда выберет эти имена параметров из конвейера PowerShell и их не придется указывать в самой команде.
Вот команда, применявшаяся для создания трех учетных записей пользователя: Import-CSV -Path C: data userlist.csv| New-ADUser -Enabled $true -AccountPassword $pwd Как можно заметить, выходные строки команды Import-CSV поступают в команду New-ADUser. Конвейер распознает, что заголовки столбца в CSV-файле представляют собой имена параметров, а остальные строки содержат значения, поэтому нужно лишь предоставить параметры -Enabled и –AccountPassword.
Это превосходная возможность конвейера. Благодаря ей удается гораздо эффективнее использовать PowerShell для задач автоматизации такого типа. Управление членством в группах Добавление учетных записей пользователей и компьютеров — типичная задача управления AD. С помощью модуля AD выполнить ее сравнительно несложно. Используя команду Add-ADGroupMember, можно добавить в группу одну или несколько учетных записей. Например, если нужно добавить трех новых пользователей в группу Marketing Users. Самый простой способ — использовать команду: Add-ADGroupMember -Identity»Marketing Users«` -Members jadams,tthumb,mtwain В этой команде параметр -Identity служит для того, чтобы предоставить имя группы.
Также применяется параметр -Members для предоставления имен учетных записей SAM пользователей. Если имеется несколько имен учетных записей SAM, то их следует указать в файле с разделителями в виде запятых. Можно объединить операции создания трех учетных записей и их добавления в группу Marketing Users в одной команде, чтобы решить задачу одним действием. Однако команда Add-ADGroupMember не поддерживает передачу имен членов группы в конвейер. Поэтому необходимо использовать команду Add-ADPrincipalGroupMembership, если требуется задействовать конвейер. Эта команда может принимать объекты пользователя, компьютера или группы как входные из конвейера и добавлять эти объекты в указанную группу. Соединить операцию создания пользователей с операцией добавления новых пользователей в группу Marketing Users в одной команде можно следующим образом: Import-CSV -Path C: data userlist.csv| New-ADUser -Enabled $true -AccountPassword $pass ` -PassThru| Add-ADPrincipalGroupMembership ` -MemberOf»Marketing Users« Обратите внимание, что к части New-ADUser команды добавлен параметр –PassThru.
Этот параметр указывает New-ADUser, что нужно передать созданные объекты пользователя в конвейер. Если данный параметр не указан, то выполнение команды Add-ADPrincipalGroupMembership завершится неудачей.
Также примечательно, что используется только параметр -MemberOf для указания имени группы в разделе Add-ADPrincipalGroupMembership команды. Конвейер обеспечивает остальное, добавляя каждого из трех пользователей в группу Marketing Users.
Итак, с помощью одной команды PowerShell было создано три новых пользователя, они были размещены в OU, получили пароли и были добавлены в группу Marketing Users. Теперь рассмотрим некоторые другие типичные задачи обслуживания AD, которые можно автоматизировать с использованием PowerShell и модуля AD.
Сброс паролей учетных записей пользователя Иногда пользователям требуется сбросить пароль учетной записи. Эту задачу легко автоматизировать с помощью команды Set-ADAccountPassword, изменив или сбросив пароль учетной записи. Чтобы изменить пароль, необходимо знать старый пароль и ввести новый.
Чтобы сбросить пароль, достаточно предоставить новый пароль. Однако необходимо разрешение Reset Password на объект пользователя в AD, чтобы выполнить сброс пароля.
Как и параметр -AccountPassword команды New-ADUser, команда Set-ADAccountPassword использует тип данных SecureString для паролей, поэтому необходимо задействовать один из методов преобразования простых текстовых паролей в защищенные строки. Например, если нужно сбросить пароль для учетной записи пользователя Tom Thumb, то после сохранения нового пароля как защищенной строки в переменной $pass можно выполнить команду: Set-ADAccountPassword -Identity»tthumb«` -NewPassword $pass –Reset В этой команде я использую параметр –Identity, чтобы назначить имя учетной записи SAM для учетной записи пользователя Tom Thumb. Я также ввожу параметр -NewPassword с переменной $pass, чтобы предоставить новый пароль. Наконец, задается параметр –Reset, дабы указать, что выполняется сброс, а не изменение пароля.
Еще одна дополнительная задача: переключить флаг учетной записи пользователя Tom Thumb, чтобы заставить его изменить пароль при следующей регистрации. Это обычный прием, когда нужно сбросить пароль пользователя. Данную задачу можно выполнить с помощью команды Set-ADUser, присвоив параметру -ChangePasswordAtLogon значение $true: Set-ADUser -Identity tthumb -ChangePasswordAtLogon $true Возникает вопрос, почему не был использован конвейер для передачи вывода команды Set-ADAccountPassword в команду Set-ADUser, чтобы выполнить обе операции в одной команде PowerShell. Я попробовал этот подход, он не работает. Вероятно, в команде Set-ADAccountPassword есть какое-то ограничение, не позволяющее успешно выполнить единую команду. В любом случае, достаточно просто переключить флаг с использованием команды Set-ADUser, как показано выше.
Поиск объектов Active Directory Другая типичная задача AD — поиск объектов AD, соответствующих определенным критериям. Например, можно найти все компьютеры с определенной версией операционной системы Windows в домене AD. Команда Get-ADObject — самая удобная для поиска LDAP. Например, чтобы найти компьютеры Server 2008 R2 в домене cpandl.com, была применена команда: Get-ADObject -LDAPFilter ` »(&(operatingSystem=Windows Server 2008 R2 Enterprise)` (objectClass=computer))«-SearchBase»dc=cpandl,dc=com«` -SearchScope Subtree Эта команда использует три параметра для выполнения задачи: -LDAPFilter, -SearchBase и -SearchScope. Параметр -LDAPFilter принимает в качестве входного стандартный запрос LDAP. В этом примере запрашиваются все объекты компьютера, у которых атрибут OperatingSystem имеет значение Windows Server 2008 R2 Enterprise.
Параметр -SearchBase указывает команде, где начать поиск в иерархии AD. В данном случае выполняется поиск из корневого каталога домена AD, но не составляет труда ограничить поиск определенной OU. Параметр –SearchScope указывает команде, следует ли обходить все контейнеры под базой поиска, обнаруживая указанные объекты. В этом случае используется параметр Subtree, чтобы команда проверяла все нижележащие контейнеры. При запуске команды отображаются объекты, соответствующие критерию.
Или же можно направить результаты в другую команду для обработки найденных объектов. Обратите внимание, что для масштабных поисков полезно задействовать параметр –ResultPageSize, чтобы управлять разбиением результатов поиска на страницы. Обычно я присваиваю этому параметру значение 1000, и команда Get-ADObject возвращает 1000 объектов за один раз.
В противном случае можно не получить ожидаемый результат, так как число возвращаемых объектов превышает максимально предусмотренное политикой, установленной для одного запроса поиска. Другая команда для поиска, предоставленная компанией Microsoft, — Search-ADAccount.
Эта команда особенно полезна для поиска с различными заранее заданными условиями, например отключенных учетных записей, учетных записей с просроченными паролями и блокированных учетных записей. Так, следующая команда отыскивает все учетные записи пользователя с просроченными паролями в OU SDM: Search-ADAccount -PasswordExpired -UsersOnly ` -SearchBase»OU=sdm,dc=cpandl,dc=com«` -SearchScope OneLevel Search-ADAccount -PasswordExpired -UsersOnly ` -SearchBase»OU=sdm,dc=cpandl,dc=com' ` -SearchScope OneLevel В этой команде используется параметр –PasswordExpired, указывающий, что нужны учетные записи с просроченными паролями. Параметр -UsersOnly указывает, что нужно искать только объекты пользователя (то есть исключить объекты «компьютер»).
Как в предыдущем примере, используются параметры -SearchBase и –SearchScope, чтобы указать область поиска. Но в данном случае я использую параметр OneLevel для поиска только в ближайшем OU (то есть исключая любые дочерние организационные единицы). Это лишь поверхностный рассказ о модуле AD, но надеюсь, вы получили представление о заложенных в нем возможностях. Как отмечалось выше, в модуле более 70 команд. Среди тем, которые не были затронуты в статье, — удаление объектов с использованием команды Remove-, восстановление удаленных объектов с помощью команды Restore-ADObject и удаление свойств UAC на объектах пользователя посредством команды Set-ADAccountControl. Существуют команды почти для любых административных задач AD. Поделитесь материалом с коллегами и друзьями.
С одной стороны настройка LDAP-аутентификации в Caché не очень сложная — в документации этот процесс описан шестью пунктами. С другой стороны если LDAP-сервер на базе Microsoft Active Directory, то есть несколько не очевидных моментов, которые надо настроить на стороне LDAP-сервера. Так же для тех, кто не часто занимается подобными настройками, есть шанс запутаться в настройках безопасности Caché.
В этой статье пошагово опишем процесс настройки LDAP-аутентификации, а также методы диагностики проблем в случае, если что-то не получается. Настройка LDAP-сервера 1.
Создаем пользователя в ActiveDirectory, с помощью которого будет подключаться Caché и искать информацию в базе LDAP. Этот пользователь должен находиться строго в корне домена 2. Для пользователей, которые будут подключатся к Caché, создадим отдельное подразделение. Назовем его «IdapCacheUsers» 3.
Регистрируем там пользователей 4. Протестируем доступность LDAP-базы с помощью программы ldapAdmin.
Скачать ee можно. Настраиваем подключение к LDAP-серверу: 6. Посмотрели, что всё работает: 7. Так как пользователи, которые будут подключаться к Caché, находятся в подразделении «ldapCacheUsers», ограничим поиск только по этому подразделению Настройка на стороне Caché 8. LDAP-сервер готов, теперь переходим к настройкам на стороне Caché.
Заходим в портал управления -> Администрирование системы ->Безопасность ->Безопасность системы ->Опции LDAP. Поля «Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default namespace)»,«Атрибут пользователь для получения области по умолчанию (User attribute to retrieve default routine)» и«Атрибут пользователь для получения ролей (User attribute to retrieve roles)» очищаем, так как этих атрибутов пока нет в LDAP-базе. Правда, в этом месте русский перевод не совсем удачный правильней было бы перевести так: «Атрибут пользователя для получения области по умолчанию», «Атрибут пользователя для получения программы по умолчанию» и «Атрибут пользователя для получения ролей». Разрешаем LDAP-аутентификацию в разделе Администрирование системы ->Безопасность ->Безопасность системы ->Аутентификация/Настройки CSP-Сессий 10. Разрешаем LDAP-аутентификацию в сервисах. Сервис%Service_CSP отвечает за подключение веб-приложений, сервис%Service_Console отвечает за подключение через терминал. Настраиваем LDAP-аутентификацию в веб-приложениях 12.
Пока, чтобы проверить, что подключение работает, настроим так, чтобы новым пользователям в Caché были полные права. Для этого пользователю _PUBLIC надо добавить роль%All. В дальнейшем мы этот момент доработаем 13. Пробуем открыть настроенное веб-приложение, оно должно открыться. Терминал также открывается 15. При подключении LDAP-пользователи будут появляться в пользователях Caché 16.
Правда, при такой конфигурации все новые пользователи получают полный доступ к системе. Чтобы устранить этот пробел, надо в LDAP-базе добавить атрибут, где будем хранить наименование роли, которая будет присваиваться пользователю при подключении к Caché. Предварительно надо сделать резервную копию контроллера домена, чтобы при неудачной настройке не поломать всю сеть. Для модификации схемы ActiveDirectory, на сервере, где находится ActiveDirectory, устанавливаем оснастку Схема ActiveDirectory (по умолчанию она не установлена).
Создаем атрибут с именем intersystems-Roles, OID 1.2.840.113556.1.8000.2448.2.3, строка с учетом регистра, многозначный атрибут. Далее добавляем этот атрибут в класс user 20. Далее сделаем, чтобы при просмотре списка пользователей в подразделении отображалась колонка «Роль в InterSystems Cache», для этого нажимаем Пуск->Выполнить вводим adsiedit.msc.
Подключаемся к контексту именования Configuration 21. Переходим к контейнеру CN=409, CN=DisplaySpecifiers, CN=Configuration и выбираем тот тип контейнера, при просмотре которого будут выводится дополнительные атрибуты пользователя. Выберем отображение на уровне подразделения (OU), для чего нам понадобится контейнер organisationalUnit-Display. В свойствах находим атрибут extraColumns и вводим там значение «intersystems-Roles, Роль в IntersystemsCache,1,200,0». Принцип заполнения такой: Название атрибута, название колонки в которой будет отображаться атрибут, будет ли отобраться по умолчанию, ширина колонки в пикселах, зарезервированное значение.
Еще замечание CN=409 обозначает код языка: в ветке CN=409 для английской версии, CN=419 для русской версии консоли. Теперь можно заполнить название роли, которое будет присваиваться пользователю при подключении к Caché. Если Active Directory на базе Windows Server 2003, то штатных средств для редактирования этого поля нет. Можно воспользоваться программой ldapAdmin (см. Пункт 4) для редактирования значения в этом атрибуте.
Если Windows более свежей версии, то атрибут можно редактировать в режиме «Дополнительные функции» — у пользователя появится дополнительная вкладка для редактирования атрибутов. После этого в портале управления Caché в опциях LDAP указываем имя этого атрибута. Создаем роль ldapRole с необходимыми привилегиями 25. Удаляем роль%ALL из пользователя _PUBLIC 26. Всё готово, пробуем подключиться к системе. Если не получается включаем и настраиваем аудит 28. Настройки аудита 29.
Просмотр базы данных аудита. Заключение На практике часто бывает, что для работы в приложении не требуется настройка разных ролей для разных пользователей.
Если достаточно, что при входе, например, в веб-приложение, всем пользователям присваивается определенный набор ролей, то пункты с 16 по 23 можно не выполнять. Достаточно в настройках веб-приложения на вкладке «Роли приложений» добавить эти роли и убрать все виды аутентификации, кроме LDAP. В этом случае в веб-приложение может попасть только пользователь, который зарегистрирован на LDAP-сервере, и когда пользователь в него заходит, Caché автоматически присваивает ему роли, которые требуются для работы в данном приложении.
Метки: • • • • Добавить метки Пометьте публикацию своими метками Метки лучше разделять запятой. Например: программирование, алгоритмы.
11 незаменимых средств управления Active Directory Автор Лора Хантер (Laura E. Hunter) Те, кому приходилось иметь дело с такими вещами, как таблица Excel, перечисляющая 200 новых сотрудников, начинающих работать со следующей недели, или учетные записи пользователей, настроенные неверно, потому что кто-то в службе поддержки щелкнул то, чего щелкать не следовало, а также те, кому интересен более простой способ управления Active Directory®, помимо открытия папок «Пользователи» и «Компьютеры» каждый раз, могут воспользоваться одним из бесплатных средств администрирования. Некоторые из них встроены прямо в операционную систему Windows®, некоторые поставляются в пакете Resource Kit или в наборе средств поддержки Windows, а некоторые являются бесплатной продукцией сторонних производителей. Что это за удобные средства и где их можно достать? Давайте выясним. Начнем со встроенных средств командной строки в Windows Server® 2003, позволяющих создавать, удалять, модифицировать и искать объекты в Active Directory.
CSVDE Средство CSVDE позволяет импортировать новые объекты в Active Directory, используя исходный CSV-файл; оно также дает возможность экспортировать существующие объекты в файл CSV. CSVDE нельзя использовать для изменения существующих объектов; при использовании этого средства в режиме импорта можно лишь создавать новые объекты.
Экспорт списка существующих объектов с помощью CSVDE довольно прост. Ниже показано, как экспортировать объекты Active Directory в файл под названием ad.csv: csvde –f ad.csv Параметр –f указывает, что за ним следует имя выходного файла. Но следует понимать, что, в зависимости от среды, этот базовый синтаксис может привести к выводу огромного и неудобного файла. Чтобы ограничить средство экспортом лишь объектов внутри определенного структурного подразделения (OU), команду можно изменить следующим образом: csvde –f UsersOU.csv –d ou=Users,dc=contoso,dc=com Предположим далее, что мне необходимо экспортировать лишь объекты пользователя в мой файл CSV. В таком случае можно добавить параметр –r, позволяющий указать фильтр протокола LDAP для данного поиска, который ограничит число экспортируемых атрибутов (заметьте, что все нижеследующее является одной строкой): csvde –f UsersOnly.csv –d ou=Users,dc=contoso,dc=com –r '(&(objectcategory=person)(objectclass=user))' –l DN,objectClass,description Параметр –i позволяет импортировать объекты в Active Directory из исходного файла CSV. Однако создание объектов пользователя с помощью CSVDE имеет один важный недостаток: с помощью этого средства нельзя устанавливать пароли пользователей, поэтому я бы не стала использовать CSVDE для создания объектов пользователей.
LDIFDE Active Directory предоставляет второе встроенное средство для пакетных операций пользователей, именуемое LDIFDE и обладающее более широкими и гибкими возможностями, чем CSVDE. Помимо создания новых объектов, LDIFDE позволяет модифицировать и удалять существующие объекты и даже расширять схему Active Directory. Платой за гибкость LDIFDE является то, что необходимый входной файл (файл LDIF) с расширением.ldf использует более сложный формат, чем простой файл CSV. (Немного поработав, можно также настраивать пароли пользователей, но об этом чуть позже.) Начнем с простого примера — экспорта пользователей в структурном подразделении в файл LDF (отметьте, что все нижеследующее является одной строкой ): ldifde -f users.ldf -s DC1.contoso.com -d 'ou=UsersOU,dc=contoso,dc=com' –r '(&(objectcategory=person)(objectclass=user))' Как и в случае большинства средств командной строки, полное описание параметров LDIFDE можно получить, запустив команду LDIFDE /?. В таблице ниже показаны те, что я использовала здесь. (Заметьте, что параметры для команд CSVDE и LDIFDE одинаковы.) -d Указывает путь LDAP, к которому LDIFDE следует подключиться для выполнения операции. -f Указывает имя файла, который следует использовать, в данном случае, для вывода результатов экспорта.
-r Указывает фильтр LDAP для использования при экспорте. -s Указывает контроллер домена (DC) к которому следует подключиться для выполнения операции; если не вводить этот параметр, LDIFDE подключится к локальному DC (или DC, проверившему подлинность, если средство используется с рабочей станции).
По-настоящему возможности LDIFDE раскрываются при создании объектов и управлении ими. Однако перед этим необходимо создать входной файл.
Файл LDF ModifyUsers Изменения импортируются путем запуска того же синтаксиса команды LDIFDE, что и раньше, с указанием нового файла LDF после параметры -f. Формат LDF для удаления объектов еще проще; для удаления пользователей, с которыми вы работали, создайте файл, именуемый DeleteUsers.ldf, и введите следующее: dn: CN=afuller OU=UsersOU, DC=contoso, DC=com changetype: delete dn: CN=rking, OU=UsersOU, DC=contoso, DC=com changetype: delete Отметьте, что, в отличие от CSVDE, LDIFDE может настраивать пароли пользователей. Однако перед настройкой атрибута unicodePWD для учетной записи пользователя необходимо настроить шифрование SSL/TLS на контроллерах домена. Вдобавок, LDIFDE может создавать и модифицировать любые объекты Active Directory, а не только учетные записи пользователей.
Работа dsget Dsquery возвращает список объектов Active Directory, отвечающих указанным критериям. Следующие параметры можно указать вне зависимости от используемого подменю: dsquery -s -o Dsquery может использовать следующие подменю, каждое со своим синтаксисом, для ObjectType: «компьютер», «контакт», «подсеть», «группа», «структурное подразделение», «веб-узел», «сервер» (следует отметить, что подменю сервера извлекает данные о контроллерах домена, а не о серверах в вашей среде), «пользователь», «квота» и «раздел». А если один из данных типов запросов не является тем, чем нужно, можно использовать подменю *, позволяющее ввести запрос LDAP свободной формы. StartNode указывает местонахождение дерева Active Directory, в котором начнется поиск. Можно использовать конкретное DN, такое как ou=IT,dc=contoso,dc=com, или один из следующих описателей краткого пути: domainroot, начинающийся с корня определенного домена, или forestroot, начинающийся с корня корневого домена леса, используя сервер глобального каталога для выполнения поиска.
Наконец, параметр области поиска указывает, как средство dsquery должно производить поиск в дереве Active Directory. Опросы поддерева (вариант по умолчанию) обращаются к указанному StartNode и всем его дочерним объектам, одноуровневые опросы обращаются только к непосредственным дочерним объектам StartNode, и базовые опросы обращаются только к объекту StartNode. Для лучшего понимания областей поиска представьте структурное подразделение (OU), содержащее как объекты пользователя, так и дочернее OU, которое также содержит дополнительные объекты. При использовании поддерева в качестве ообласти будет запрошено OU, все пользовательские объекты внутри него, дочернее OU и его содержимое. При одноуровневой области будет запрошены только пользователи, содержащие в OU, но не дочернее OU и его содержимое. При базовом запросе будет запрошено только само OU без запроса содержащихся в ней объектов. Наконец, можно использовать выходной формат, чтобы контролировать форматирование результатов dsquery.