Продолжаем знакомиться с Powershell Web Access (PSWA).
В предыдущей статье мы рассказывали, как удаленно установить PowerShell Web Acess на новом веб-сервере из клиента Windows 8 с запущенными RSAT. В этой статье мы займемся конфигурированием шлюза и настройкой правил авторизации. Оригинал статьи на petri.co.il можно найти здесь. Заинтересованных приглашаем под кат.
PSWA и конфигурация шлюза
Команды, необходимые для конфигурирования шлюза, можно запустить непосредственно на сервере, но я предпочитаю все сделать удаленно. Запустим удаленную PowerShell сессию на сервере (я работаю на машине под Windows 8).
PS C:> enter-pssession CHI-WEB01
(В нашем случае вместо CHI-WEB01 мы указываем имя нашего сервера – Прим. переводчика).
Сейчас я осуществим настройку шлюза с использованием тестового сертификата (self-signed test certificate). Потом сделаем так, чтобы сайт использовал валидный сертификат.
[chi-web01]: PS C:> Install-PswaWebApplication –usetestcertificate
Указанная выше команда предполагает, что я не менял имя сайта по умолчанию (“Default Web Site”), равно как и имя приложения (“pswa”).На рисунке 1 приведен результат.
Конфигурируем правила авторизации с PSWA
По умолчанию никто не обладает доступом к PowerShell Web Access. Правила авторизации должны быть заданы с помощью командлета Add-PswaAuthorizationRule. Он также должен быть запущен на веб-сервере, и я воспользуюсь текущей сессией. Уточняем имя пользователя или его группу, которым вы хотели бы предоставить доступ. Также необходимо уточнить имена компьютеров, к которым возможен удаленный доступ (можно использовать имя группы, которая содержит учетные записи компьютеров) и назназначить имя конфигурации.
Конфигурация представляет собой имя удаленной конечной точки (remoting endpoint). Шлюз PSWA установить удаленное соединение с ней. Используем Get-PSSessionConfiguration для нумерования этих сессий.
PS C:> invoke-command {get-pssessionconfiguration} -ComputerName chi-dc03
На рисунке 2 показаны доступные конечные точки для сервера CHI-DC03.
Конфигурация сессии должна присутствовать на всех компьютерах, входящих в правило. Я собираюсь создать тестовое правило авторизации, используя конфигурацию Microsoft.PowerShell. По сути это конечная точка, к которой вы получаете удаленный доступ. Также Вы можете задать имя правила, что я и сейчас и сделаю.
[chi-web01]: PS C:> Add-PswaAuthorizationRule -rulename "Test Rule 1" -computername chi-dc03 -username globomanticsjeff -configuration microsoft.powershell
В качестве имени правила было выбрано «Test Rule 1», Вы, конечно, можете любое другое.
Обратите также внимание на формат имени пользователя, которому выдаются права. В данном случае мы используем globomanticsjeff.
Если Вы пробуете сделать это на новой системе, Вы, скорее всего, получите следующую ошибку:
Add-PswaAuthorizationRule : This command must be run by a user account with permissions to perform Active Directory queries.
Если вы запускаете эту команду в интерактивной сессии на сервере (а не удаленной), то все должно нормально работать. Проблема заключается во второй ретрансляции (hop). Командлету Add-PSwaAuthorizationRule необходимо установить связь с контроллером домена, для которого по правилам безопасности (security design) не разрешено находиться в состоянии PowerShell Remoting. Это ограничение второй ретрансляции (second-hop limitation) может быть преодолено с помощью активирования аутентификации CredSSP. Внимание: Этого не стоит делать “с налету”, так как имеются последствия для безопасности, требуется предварительное исследование.
Но в моем случае, так как я хочу использовать удаленный доступ, я выйду из удаленной сессии и активирую CredSSP на моей машине для сервера CHI-WEB01.
PS C:> Enable-WSManCredSSP -DelegateComputer chi-web01 -Role Client
Активировали, теперь переключаемся на возможности сервера.
PS C:> invoke-command {enable-wsmancredssp -Role Server -Force} -ComputerName chi-web01
Сделав это заново запускаем удаленное соединение, уточняющее CredSSP и мои параметры доступа.
PS C:> enter-pssession chi-web01 -Authentication Credssp -Credential globomanticsjeff
Когда я запускаю команду авторизации, она работает так, как показано на рисунке 3.
Я также могу проверить правило:
[chi-web01]: PS C:> Get-PswaAuthorizationRule
Id RuleName User Destination ConfigurationName
-- -------- ---- ----------- -----------------
0 Test Rule 1 globomanticsjeff globomanticschi... microsoft.powers...
Вы можете добавить сколько угодно правил авторизации. Можно получать доступ к машине с PowerShell v2, если на ней включен удаленный доступ. Например, добавим правило для контроллера домена с PowerShell v2.
[chi-web01]: PS C:> Add-PswaAuthorizationRule -rulename "Test Rule 2" -computername chi-dc02 -username globomanticsjeff -configuration microsoft.powershell –force
Для удаления правила используйте Remove-PwaAuthorizationRule. Уточните правило по id или объекту правила.
[chi-web01]: PS C:> Remove-PswaAuthorizationRule -id 1 -whatif
What if: Performing operation "Remove-PswaAuthorizationRule" on Target "Rule 'Test Rule 2' (ID: 1)".
[chi-web01]: PS C:> Get-PswaAuthorizationRule "test rule 2" | Remove-PswaAuthorizationRule –force –whatif
What if: Performing operation "Remove-PswaAuthorizationRule" on Target "Rule 'Test Rule 2' (ID: 1)".
То, что мы описали выше, можно сделать и через IIS менеджер. Но я предполагаю, что если вы решили настроить PowerShell Web Access, вам комфортнее работать именно в PowerShell. Командлеты для конфигурирования должны быть запущены на том веб-сервере, на котором находится приложение PSWA. В следующем статье будет рассмотрено тестирование и использование PowerShell Web Access.
Конец перевода.
Развертывание Windows PowerShell Web Access — статья на Technet
Автор: AMarkin