Поделиться через


Правила авторизации и средства безопасности Windows PowerShell Web Access

Обновлено: 24 июня 2013 г.

Область применения: Windows Server 2012 R2, Windows Server 2012

Windows PowerShell Web Access в Windows Server 2012 R2 и Windows Server 2012 имею ограничительную модель безопасности. Пользователям необходимо явно предоставить доступ, прежде чем они смогут входить в шлюз Windows PowerShell Web Access и использовать веб-консоль Windows PowerShell.

Настройка правил авторизации и безопасности сайта

После установки Windows PowerShell Web Access и настройки шлюза пользователи могут открывать страницу входа в браузере, но они не могут выполнить вход, пока администратор Windows PowerShell Web Access не предоставит им доступ в явном виде. Управление доступом в Windows PowerShell Web Access осуществляется с помощью набора командлетов Windows PowerShell, описанных в следующей таблице. Нет соответствующего графического пользовательского интерфейса для добавления правил авторизации или управления ими. См. раздел Командлеты Windows PowerShell Web Access.

Администратор может определить {0-n} правил проверки подлинности для Windows PowerShell Web Access или не определять их. Безопасность по умолчанию является ограничивающей, а не разрешающей. Отсутствие правил проверки подлинности означает, что ни один пользователь не имеет доступа к чему-либо.

Командлеты Add-PswaAuthorizationRule и Test-PswaAuthorizationRule в Windows Server 2012 R2 включают параметр Credential, который позволяет вам добавлять правила авторизации Windows PowerShell Web Access и тестировать их с удаленного компьютера или в активном сеансе Windows PowerShell Web Access. Как и при работе с другими командлетами Windows PowerShell, которые имеют параметр Credential, вы можете указать объект PSCredential в качестве значения этого параметра. Чтобы создать объект PSCredential, содержащий учетные данные, которые требуется передать на удаленный компьютер, выполните командлет Get-Credential.

Windows PowerShell правила проверки подлинности веб-доступа — это разрешенные правила. Каждое правило является определением разрешенных подключений между пользователями, целевыми компьютерами и конкретными конфигурациями сеансов Windows PowerShell (которые также называют конечными точками или пространствами выполнения) на указанных конечных компьютерах. Понятие пространств выполнения рассматривается в статье, посвященной началу использования пространств выполнения PowerShell

Важно!

Для получения доступа пользователю требуется, чтобы удовлетворялось хотя бы одно правило. Если пользователю предоставлен доступ с веб-консоли к одному компьютеру либо с полными языковыми правами, либо доступ только к командлетам удаленного управления Windows PowerShell, пользователь может войти (или перескочить) на другие компьютеры, подключенные к первому целевому компьютеру. Самым безопасным способом настройки Windows PowerShell Web Access является предоставление пользователям доступа только к ограниченным конфигурациям сеансов, в которых им разрешается выполнять только конкретные задачи, требующие удаленного выполнения.

Командлеты, упоминаемые в разделе Командлеты Windows PowerShell Web Access, позволяют создать набор правил доступа, которые используются для авторизации пользователя, подключающегося к шлюзу Windows PowerShell Web Access. Правила отличаются от списков управления доступом на целевом компьютере и обеспечивают дополнительный уровень безопасности при доступе через Интернет. Дополнительные сведения о безопасности приводятся в следующем разделе.

Если пользователи не могут пройти какой-либо из предшествующих уровней безопасности, они получают универсальное сообщение "отказ в доступе" в окнах своих браузеров. Хотя подробные сведения о безопасности записываются в журнал на сервере шлюза, конечным пользователям не предоставляется информация о том, сколько уровней безопасности они прошли или на каком уровне был получен отказ на вход или авторизацию.

Дополнительные сведения о настройке правил авторизации см. в разделе Настройка правил авторизации в этой статье.

Безопасность

В модели безопасности Windows PowerShell Web Access имеется четыре уровня между пользователем веб-консоли и целевым компьютером. Администраторы Windows PowerShell Web Access могут добавлять уровни безопасности с помощью дополнительной настройки в диспетчере служб IIS. Дополнительные сведения о настройке безопасности веб-сайтов в консоли диспетчера служб IIS см. в статье Настройка безопасности веб-сервера (IIS 7).

Дополнительные рекомендации для IIS и сведения о предотвращении атак типа "отказ в доступе" см. в статье Рекомендации по предотвращению атак типа "отказ в доступе". Администратор также может купить дополнительное розничное программное обеспечение для проверки подлинности.

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

Level Уровень
1 Функции безопасности веб-сервера iis
2 проверка подлинности шлюза windows powershell web access на основе форм
3 правила авторизации windows powershell web access
4 проверка подлинности на целевом компьютере и правила авторизации

Подробные сведения о каждом уровне можно найти в следующих статьях:

Средства безопасности веб-сервера IIS

Пользователи Windows PowerShell Web Access всегда должны указывать имя пользователя и пароль для проверки подлинности своих учетных записей на шлюзе. Однако администраторы веб-доступа Windows PowerShell также могут включать или отключать необязательную проверку подлинности на основе сертификата клиента. См. статью Установка и использование веб-доступа Windows PowerShell для включения тестового сертификата, а также сведения о настройке подлинного сертификата).

Дополнительный компонент сертификата клиента, который является частью конфигурации веб-сервера (IIS), требует, чтобы конечные пользователи имели действительный сертификат клиента в дополнение к имени пользователя и паролю. Когда уровень сертификата клиента включен, на странице входа Windows PowerShell Web Access выводится приглашение пользователям предоставить действительные сертификаты перед проверкой их учетных данных для входа. При проверке подлинности сертификата клиента автоматически проверяется наличие сертификата клиента. Если действительный сертификат не обнаружен, Windows PowerShell Web Access информирует пользователя о необходимости предоставить сертификат. Если действительный сертификат клиента обнаружен, Windows PowerShell Web Access открывает страницу входа для ввода имени пользователя и пароля.

Это один из примеров дополнительных параметров безопасности, которые предоставляет веб-сервер IIS. Дополнительные сведения о других функциях безопасности IIS см. в статье Настройка безопасности веб-сервера (IIS 7).

Проверка подлинности шлюза Windows PowerShell Web Access на основании форм

Страница входа Windows PowerShell Web Access требует указать набор учетных данных (имя пользователя и пароль) и предлагает возможность указать другие учетные данные для целевого компьютера. Если пользователь не предоставил дополнительные учетные данные, основные имя пользователя и пароль, использованные для подключения к шлюзу, также используются для подключения к целевому компьютеру.

Подлинность требуемых учетных данных проверяется на шлюзе Windows PowerShell Web Access. Эти учетные данные должны представлять действительные учетные записи пользователей на локальном сервере шлюза Windows PowerShell Web Access или в Active Directory.

Правила авторизации Windows PowerShell Web Access

После проверки подлинности пользователя на шлюзе Windows PowerShell Web Access проверяет правила авторизации, чтобы удостовериться, что у пользователя имеется доступ к целевому компьютеру. После успешной авторизации учетные данные пользователя передаются на целевой компьютер.

Эти правила проверяются только после проверки подлинности пользователя на шлюзе и перед проверкой подлинности пользователя на целевом компьютере.

Проверка подлинности на целевом компьютере и правила авторизации

Конечным уровнем безопасности Windows PowerShell Web Access является собственная конфигурация безопасности целевого компьютера. Пользователи должны иметь достаточные права доступа, настроенные на целевом компьютере, а также в правилах авторизации Windows PowerShell Web Access, чтобы выполнять веб-консоль Windows PowerShell, которая взаимодействует с целевым компьютером через Windows PowerShell Web Access.

Этот уровень обеспечивает такие же механизмы безопасности, как и при проверке попыток подключения, когда пользователь пытается создать удаленный сеанс Windows PowerShell с целевым компьютером из Windows PowerShell, выполняя командлет Enter-PSSession или New-PSSession.

По умолчанию Windows PowerShell Web Access использует основное имя пользователя и пароль для проверки подлинности и на шлюзе, и на целевом компьютере. На веб-странице входа в разделе Дополнительные параметры подключения пользователям предлагается возможность указать другие учетные данные для конечного компьютера, если они требуются. Если пользователь не предоставил дополнительные учетные данные, основные имя пользователя и пароль, использованные для подключения к шлюзу, также используются для подключения к целевому компьютеру.

Правила авторизации можно использовать, чтобы разрешить доступ пользователей к конкретным конфигурациям сеанса. Вы можете создать ограниченные пространства выполнения или конфигурации сеансов для Windows PowerShell Web Access и разрешить определенным пользователям подключаться только к определенным конфигурациям сеанса при входе в Windows PowerShell Web Access. Можно использовать списки управления доступом, чтобы определить, какие пользователи имеют доступ к конкретным конечным точкам, и далее ограничить доступ к конечной точке с помощью правил авторизации, описанных в данном разделе. Дополнительные сведения об ограничении доступа к пространствам выполнения см. в статье, посвященной созданию ограниченных пространств выполнения.

Настройка правил авторизации

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

Если вы планируете использовать настраиваемые конфигурации сеансов, чтобы разрешить определенным пользователям работать только в ограниченных пространствах выполнения в Windows PowerShell Web Access, создайте эти конфигурации, прежде чем добавить правила авторизации, которые на них ссылаются. Командлеты Windows PowerShell Web Access нельзя использовать для создания настраиваемых конфигураций сеансов. Дополнительные сведения о создании настраиваемых конфигураций сеансов см. в разделе about_Session_Configuration_Files.

Windows PowerShell командлеты веб-доступа поддерживают один подстановочный знак — звездочку ( * ). Подстановочные знаки в строковых значениях не поддерживаются; используйте одну звездочку для свойства (пользователи, компьютеры или конфигурации сеанса).

Примечание

Дополнительные способы использования правил авторизации для предоставления доступа пользователям и защиты среды веб-доступа Windows PowerShell см. в других примерах сценариев правил авторизации в этой статье.

Добавление ограничивающего правила авторизации

  1. Выполните одно из следующих действий, чтобы открыть сеанс Windows PowerShell с повышенными правами.

    • На рабочем столе Windows щелкните правой кнопкой мыши Windows PowerShell на панели задач и выберите команду Запустить от имени администратора.

    • На начальном экране Windows щелкните правой кнопкой мыши Windows PowerShell, а затем выберите Запуск от имени администратора.

  2. Необязательный шаг для ограничения пользовательского доступа путем использования конфигураций сеансов:

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

    В противном случае выполните инструкции по созданию конфигураций сеансов, приведенные в статье about_Session_Configuration_Files.

  3. Это правило авторизации разрешает конкретному пользователю доступ к одному сетевому компьютеру, к которому обычно требуется доступ, с доступом к конкретной конфигурации сеанса, область которого соответствует потребностям пользовательских сценариев и командлетов. Введите следующую команду и нажмите клавишу ВВОД:

    Add-PswaAuthorizationRule -UserName <domain\user | computer\user> `
       -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
    
    • В следующем примере пользователю с именем JSmith в домене Contoso предоставляется доступ для управления компьютером Contoso_214 и использования конфигурации сеанса с именем NewAdminsOnly.
    Add-PswaAuthorizationRule -UserName 'Contoso\JSmith' `
       -ComputerName Contoso_214 -ConfigurationName NewAdminsOnly
    
  4. Убедитесь, что правило создано путем выполнения командлета Get-PswaAuthorizationRule или Test-PswaAuthorizationRule -UserName <domain\user | computer\user> -ComputerName** <computer_name>. Например, Test-PswaAuthorizationRule -UserName Contoso\\JSmith -ComputerName Contoso_214.

Удаление правила авторизации

  1. Если сеанс Windows PowerShell еще не открыт, см. шаг 1 статьи о добавлении ограничивающего правила авторизации в этом разделе.

  2. Введите следующую команду и нажмите клавишу ВВОД, где ИД правила представляет уникальный идентификатор правила, которое требуется удалить.

    Remove-PswaAuthorizationRule -ID <rule ID>
    

    Если вы не знаете идентификатор, но знаете понятное имя удаляемого правила, вы можете получить имя правила и передать его в командлет Remove-PswaAuthorizationRule для удаления этого правила, как показано в следующем примере.

    Get-PswaAuthorizationRule `
       -RuleName <rule-name> | Remove-PswaAuthorizationRule
    

Примечание

При попытке удалить указанное правило авторизации запрос на подтверждение удаления не выводится. Правило удаляется при нажатии клавиши ВВОД. Убедитесь, что действительно необходимо удалить правило авторизации, перед выполнением командлета Remove-PswaAuthorizationRule.

Другие примеры сценария правил авторизации

Каждый сеанс Windows PowerShell использует конфигурацию сеанса. Если конфигурация не указана, Windows PowerShell по умолчанию использует встроенную конфигурацию сеанса Windows PowerShell с именем Microsoft.PowerShell. Конфигурация сеанса по умолчанию включает все командлеты, доступные на компьютере. Администраторы могут ограничить доступ ко всем компьютерам, определив конфигурацию сеанса с ограниченным пространством выполнения (ограниченный набор командлетов и задач, которые могут выполнять конечные пользователи). Пользователь, которому к одному компьютеру предоставлен либо полный языковый доступ, либо доступ только на удаленное управление командлетами Windows PowerShell, может подключаться к другим компьютерам, подключенным к первому компьютеру. Определение ограниченного пространства выполнения может предотвратить доступ пользователей к другим компьютерам из разрешенного пространства выполнения Windows PowerShell. Это повышает безопасность среды Windows PowerShell Web Access. Конфигурацию сеанса можно распространить (с помощью групповой политики) на все компьютеры, которые администраторы хотят сделать доступными через Windows PowerShell Web Access. Дополнительные сведения о конфигурациях сеансов см. в разделе about_Session_Configurations. Ниже приводятся примеры такого сценария.

  • Администратор создает конечную точку с именем PswaEndpoint с ограниченным пространством выполнения. Затем администратор создает правило, *,*,PswaEndpoint, и распространяет конечную точку на все компьютеры. Правило разрешает всем пользователям доступ ко всем компьютерам с конечной точкой PswaEndpoint. Если это правило авторизации является единственным в наборе правил, компьютеры без этой конечной точки будут недоступными.

  • Администратор создает конечную точку PswaEndpoint с ограниченным пространством выполнения и хочет ограничить доступ конкретными пользователями. Администратор создает группу пользователей с именем Level1Support и определяет следующее правило: Level1Support,*,PswaEndpoint. Правило предоставляет всем пользователям из группы Level1Support доступ ко всем компьютерам с конфигурацией PswaEndpoint. Аналогичным образом доступ может быть ограничен конкретным набором компьютеров.

  • Некоторые администраторы предоставляют одним пользователям больше прав доступа, чем другим. Например, администратор создает две группы пользователей, Admins и BasicSupport. Администратор также создает конечную точку с ограниченным пространством выполнения с именем PswaEndpoint, а затем определяет два правила: Admins,*,* и BasicSupport,*,PswaEndpoint. Первое правило предоставляет всем пользователям в группе Admins доступ ко всем компьютерам, а второе правило предоставляет всем пользователям в группе BasicSupport доступ только к компьютерам с PswaEndpoint.

  • Администратор настроил частную тестовую среду и хочет разрешить всем авторизованным сетевым пользователям доступ ко всем компьютерам в сети, к которым они обычно имеют доступ, с доступом ко всем конфигурациям сеансов, к которым они обычно имеют доступ. Поскольку это частная тестовая среда, администратор создает правило авторизации, которое не является безопасным. Администратор выполняет командлет Add-PswaAuthorizationRule * * *, в котором подстановочный знак * используется, чтобы представлять всех пользователей, все компьютеры и все конфигурации. Это правило эквивалентно следующему: Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *.

    Примечание

    Это правило не рекомендуется к использованию в безопасной среде. В нем обходится уровень безопасности, предоставляемый Windows PowerShell Web Access.

  • Администратор должен разрешить пользователям подключаться к конечным компьютерам в среде, включающей и рабочие группы, и домены, где компьютеры рабочей группы иногда используются для подключения к конечным компьютерам в доменах, а компьютеры в доменах иногда используются для подключения к конечным компьютерам в рабочих группах. У администратора есть сервер шлюза PswaServer в рабочей группе, а конечный компьютер srv1.contoso.com находится в домене. Пользователь Олег зарегистрирован как авторизованный локальный пользователь на сервере шлюза в рабочей группе и на конечном компьютере. Его имя пользователя на сервере рабочей группы — olegLocal, а на конечном компьютере — contoso\oleg. Чтобы разрешить Олегу доступ к srv1.contoso.com, администратор добавляет следующее правило.

Add-PswaAuthorizationRule -userName PswaServer\chrisLocal `
   -computerName srv1.contoso.com -configurationName Microsoft.PowerShell

В предыдущем примере правила выполняется проверка подлинности учетной записи Олега на сервере шлюза, а затем авторизация его доступа к srv1. На странице входа Олег должен предоставить второй набор учетных данных в разделе Дополнительные параметры подключения (contoso\oleg). Сервер шлюза использует дополнительный набор учетных данных для проверки подлинности учетной записи Олега на конечном компьютере srv1.contoso.com.

В предыдущем сценарии Windows PowerShell Web Access устанавливает подключение к конечному компьютеру, только если указанные ниже действия успешно выполнены и разрешены по крайней мере одним правилом авторизации.

  1. Проверка подлинности на сервере шлюза рабочей группы путем добавления имени пользователя в формате server_name\user_name в правило авторизации

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

    Примечание

    Если шлюз и конечные компьютеры находятся в разных рабочих группах или доменах, то должно быть установлено отношение доверия между двумя компьютерами рабочей группы, между двумя доменами или между рабочей группой и доменом. Это отношение нельзя настроить при помощи командлетов правил авторизации Windows PowerShell Web Access. Правила авторизации не определяют отношение доверия между компьютерами. Они только разрешают пользователям подключаться к определенным конечным компьютерам и конфигурациям сеансов. Дополнительные сведения о настройке отношения доверия между разными доменами см. в статье о создании отношений доверия между доменами и лесами. Дополнительные сведения о добавлении компьютеров рабочей группы в список доверенных узлов см. в статье Удаленное управление с помощью диспетчер сервера.

Использование одного набора правил авторизации для нескольких сайтов

Правила авторизации сохраняются в XML-файле. По умолчанию путь к XML-файлу имеет вид $env:windir\Web\PowershellWebAccess\data\AuthorizationRules.xml.

Путь к XML-файлу правил авторизации сохраняется в файле powwa.config в папке $env:windir\Web\PowershellWebAccess\data. Администратор может легко изменить ссылку на путь по умолчанию в файле powwa.config соответственно своим параметрам и требованиям. Возможность изменения расположения файла администратором позволяет нескольким шлюзам Windows PowerShell Web Access использовать одни и те же правила авторизации, если требуется такая конфигурация.

Управление сеансом

По умолчанию Windows PowerShell Web Access позволяет пользователю открывать не больше трех сеансов одновременно. Вы можете изменить файл web.config веб-приложения в диспетчере IIS, чтобы поддерживать разное количество сеансов для каждого пользователя. Путь к файлу web.config имеет вид $env:windir\Web\PowerShellWebAccess\wwwroot\Web.config.

По умолчанию веб-сервер IIS настраивается на перезапуск пула приложений, если был изменен любой параметр. Например, пул приложений перезапускается, если были внесены изменения в файл web.config. >Так как Windows PowerShell веб-доступ использует состояния сеанса в памяти, пользователи, >вошедшего в сеансы Windows PowerShell Web Access, теряют свои сеансы при перезапуске пула приложений.

Установка параметров по умолчанию на странице входа

Если шлюз Windows PowerShell Web Access работает под управлением Windows Server 2012 R2, вы можете настроить значения по умолчанию для параметров, которые отображаются на странице входа в Windows PowerShell Web Access. Вы можете настроить значения в файле web.config, описанном в предыдущем абзаце. Значения по умолчанию для параметров на странице входа находятся в разделе appSettings файла web.config, ниже приведен пример раздела appSettings. Допустимые значения для многих из этих параметров такие же, как для соответствующих параметров командлета New-PSSession в Windows PowerShell.

Например, ключ defaultApplicationName, как показано в следующем блоке кода, является значением привилегированной переменной $PSSessionApplicationName.

  <appSettings>
      <add key="maxSessionsAllowedPerUser" value="3"/>
      <add key="defaultPortNumber" value="5985"/>
      <add key="defaultSSLPortNumber" value="5986"/>
      <add key="defaultApplicationName" value="WSMAN"/>
      <add key="defaultUseSslSelection" value="0"/>
      <add key="defaultAuthenticationType" value="0"/>
      <add key="defaultAllowRedirection" value="0"/>
      <add key="defaultConfigurationName" value="Microsoft.PowerShell"/>
  </appSettings>

Время ожидания и незапланированные отключения

Windows PowerShell сеансов веб-доступа истекло время ожидания. В Windows PowerShell веб-доступ, работающий на Windows Server 2012, после 15 минут бездействия сеанса отображается сообщение времени ожидания. Если пользователь не отвечает в течение пяти минут после отображения сообщения об истечении времени ожидания, сеанс завершается и пользователь выходит из него. Время ожидания для сеансов можно изменить в параметрах веб-сайта в диспетчере IIS.

В Windows PowerShell Web Access, работающему под управлением Windows Server 2012 R2, время ожидания сеансов по умолчанию истекает через 20 минут бездействия. Если пользователи отключаются от сеансов в веб-консоли в результате сетевых ошибок или других незапланированных завершений работы или сбоев, а не потому, что они сами закрыли свои сеансы, сеансы Windows PowerShell Web Access продолжают выполнение, оставаясь подключенными к целевым компьютерам, пока не истечет время ожидания на стороне клиента. Сеанс отключается после истечения либо 20 минут, установленных по умолчанию, либо времени ожидания, заданного администратором шлюза, в зависимости от того, какой период короче.

Если сервер шлюза работает под управлением Windows Server 2012 R2, Windows PowerShell Web Access предоставляет пользователям возможность повторного подключения к сохраненным сеансам позднее, но, когда сеанс был отключен из-за сетевых ошибок, незапланированного завершения работы или другого сбоя, пользователи не смогут увидеть сохраненные сеансы и повторно к ним подключиться, пока не истечет время ожидания, заданное администратором шлюза.

См. также:

Установка и использование веб-доступа Windows PowerShell

about_Session_Configurations

Командлеты Windows PowerShell Web Access