Partilhar via


Regras de Autorização e Funcionalidades de Segurança do Windows PowerShell Web Access

Atualizado: 24 de junho de 2013

Aplica-se a: Windows Server 2012 R2, Windows Server 2012

O Windows PowerShell Web Access no Windows Server 2012 R2 e Windows Server 2012 tem um modelo de segurança restritivo. Os utilizadores devem ter acesso explicitamente concedido antes de poderem iniciar sessão no gateway Windows PowerShell Web Access e usar a consola web do Windows PowerShell.

Configuração das regras de autorização e segurança do local

Depois de o Windows PowerShell Web Access estar instalado e o gateway configurado, os utilizadores podem abrir a página de início de sessão num navegador, mas não podem iniciar sessão até que o administrador do Windows PowerShell Web Access conceda explicitamente aos utilizadores. O controlo de acesso 'Windows PowerShell Web Access' é gerido utilizando o conjunto de cmdlets do Windows PowerShell descritos na tabela seguinte. Não existe uma interface gráfica comparável para adicionar ou gerir regras de autorização. Ver Cmdlets de Acesso Web do Windows PowerShell.

Os administradores podem definir {0-n} regras de autenticação para o Windows PowerShell Web Access. A garantia padrão é restritiva em vez de permissiva; Zero regras de autenticação significa que nenhum utilizador tem acesso a nada.

Add-PswaAuthorizationRule e Test-PswaAuthorizationRule no Windows Server 2012 R2 incluem um parâmetro de credencial que permite adicionar e testar regras de autorização do Windows PowerShell Web Access a partir de um computador remoto, ou dentro de uma sessão ativa do Windows PowerShell Web Access. Tal como em outros cmdlets PowerShell do Windows que têm um parâmetro Credential, pode especificar um objeto PSCredential como valor do parâmetro. Para criar um objeto PSCredential que contenha as credenciais que pretende passar para um computador remoto, execute o cmdlet Get-Credential .

As regras de autenticação do Windows PowerShell Web Access são regras de permissão . Cada regra é uma definição de uma ligação permitida entre utilizadores, computadores-alvo e determinadas configurações de sessão PowerShell do Windows (também designadas como endpoints ou runspaces) em computadores alvo específicos. Para uma explicação sobre espaços de execução , veja Utilização Inicial de Espaços de Execução PowerShell

Importante

Um utilizador precisa apenas de uma regra para ser verdadeira para obter acesso. Se um utilizador tiver acesso a um computador com acesso completo à linguagem ou apenas aos cmdlets de gestão remota do Windows PowerShell, a partir da consola web, o utilizador pode iniciar sessão (ou mudar) para outros computadores que estejam ligados ao primeiro computador alvo. A forma mais segura de configurar o Windows PowerShell Web Access é permitir que os utilizadores acedam apenas a configurações de sessões restritas que lhes permitam realizar tarefas específicas que normalmente precisam de realizar remotamente.

Os cmdlets referenciados nos Cmdlets de Acesso Web do Windows PowerShell permitem criar um conjunto de regras de acesso que são usadas para autorizar um utilizador no gateway de Acesso Web do Windows PowerShell. As regras são diferentes das listas de controlo de acesso (ACLs) no computador de destino e fornecem uma camada adicional de segurança para o acesso à web. Mais detalhes sobre segurança são descritos na secção seguinte.

Se os utilizadores não conseguirem ultrapassar nenhuma das camadas de segurança anteriores, recebem uma mensagem genérica de 'acesso negado' nas janelas do navegador. Embora os detalhes de segurança sejam registados no servidor gateway, os utilizadores finais não recebem informações sobre quantas camadas de segurança passaram, nem em que camada ocorreu a falha de login ou autenticação.

Para mais informações sobre a configuração de regras de autorização, consulte configurar regras de autorização neste tópico.

Segurança

O modelo de segurança do Windows PowerShell Web Access tem quatro camadas entre o utilizador final da consola web e o computador alvo. Os administradores do Windows PowerShell Web Access podem adicionar camadas de segurança através de configurações adicionais na consola do IIS Manager. Para mais informações sobre a segurança de websites na consola do IIS Manager, consulte Configurar a Segurança do Servidor Web (IIS7).

Para mais informações sobre as melhores práticas do IIS e prevenção de ataques de negação de serviço, consulte Melhores Práticas para Prevenir Ataques DoS/Negação de Serviço. Um administrador pode também comprar e instalar software adicional de autenticação de retalho.

A tabela seguinte descreve as quatro camadas de segurança entre os utilizadores finais e os computadores alvo.

Nível Camada
1 Funcionalidades de segurança do servidor web do IIS
2 Autenticação de gateway baseada em formulários de acesso web do Windows PowerShell
3 Regras de Autorização de Acesso Web do Windows PowerShell
4 Regras de autenticação e autorização de alvos

Informações detalhadas sobre cada camada podem ser encontradas nos seguintes títulos:

Funcionalidades de segurança do Servidor Web IIS

Os utilizadores do Windows PowerShell Web Access devem sempre fornecer um nome de utilizador e uma palavra-passe para autenticar as suas contas no gateway. No entanto, os administradores do Windows PowerShell Web Access também podem ativar ou desativar a autenticação opcional de certificados do cliente, ver instalar e usar o acesso web do Windows PowerShell para ativar um certificado de teste e, mais tarde, como configurar um certificado genuíno).

A funcionalidade opcional de certificado de cliente exige que os utilizadores finais tenham um certificado de cliente válido, além dos seus nomes de utilizador e palavras-passe, e faz parte da configuração do Web Server (IIS). Quando a camada de certificado do cliente está ativada, a página de login do Windows PowerShell Web Access pede aos utilizadores que forneçam certificados válidos antes de as suas credenciais de início de sessão serem avaliadas. A autenticação do certificado do cliente verifica automaticamente o certificado do cliente. Se não for encontrado um certificado válido, o Windows PowerShell Web Access informa os utilizadores, para que possam fornecer o certificado. Se for encontrado um certificado cliente válido, o Windows PowerShell Web Access abre a página de início de sessão para que os utilizadores possam fornecer os seus nomes de utilizador e palavras-passe.

Este é um exemplo das definições adicionais de segurança oferecidas pelo IIS Web Server. Para mais informações sobre outras funcionalidades de segurança do IIS, consulte Configurar a Segurança do Servidor Web (IIS 7).

Autenticação de gateway baseada em formulários do Windows PowerShell Web Access

A página de início de sessão do Windows PowerShell Web Access requer um conjunto de credenciais (nome de utilizador e palavra-passe) e oferece aos utilizadores a opção de fornecer diferentes credenciais para o computador alvo. Se o utilizador não fornecer credenciais alternativas, o nome de utilizador principal e a palavra-passe usados para se ligar ao gateway também são usados para se ligar ao computador alvo.

As credenciais necessárias são autenticadas no gateway Windows PowerShell Web Access. Estas credenciais devem ser contas de utilizador válidas no servidor gateway local Windows PowerShell Web Access, ou no Active Directory.

Regras de autorização do Windows PowerShell Web Access

Depois de um utilizador ser autenticado no gateway, o Windows PowerShell Web Access verifica as regras de autorização para verificar se o utilizador tem acesso ao computador alvo solicitado. Após a autorização bem-sucedida, as credenciais do utilizador são transmitidas ao computador alvo.

Estas regras são avaliadas apenas depois de um utilizador ter sido autenticado pelo gateway, e antes de um utilizador poder ser autenticado num computador alvo.

Regras de autenticação e autorização de alvos

A camada final de segurança do Windows PowerShell Web Access é a própria configuração de segurança do computador alvo. Os utilizadores devem ter os direitos de acesso apropriados configurados no computador de destino, e também nas regras de autorização de acesso ao Web do Windows PowerShell, para executar uma consola web do Windows PowerShell que afete o computador alvo através do Windows PowerShell Web Access.

Esta camada oferece os mesmos mecanismos de segurança que avaliariam as tentativas de ligação se os utilizadores tentassem criar uma sessão remota do Windows PowerShell para um computador alvo a partir do Windows PowerShell, executando os cmdlets Enter-PSSession ou New-PSSession .

Por defeito, o Windows PowerShell Web Access utiliza o nome de utilizador principal e a palavra-passe para autenticação tanto no gateway como no computador de destino. A página de login baseada na web, numa secção intitulada Definições opcionais de ligação, oferece aos utilizadores a opção de fornecer diferentes credenciais para o computador alvo, se necessário. Se o utilizador não fornecer credenciais alternativas, o nome de utilizador principal e a palavra-passe usados para se ligar ao gateway também são usados para se ligar ao computador alvo.

As regras de autorização podem ser usadas para permitir que os utilizadores acedam a uma determinada configuração de sessão. Pode criar espaços de execução restritos ou configurações de sessão para o Windows PowerShell Web Access, e permitir que utilizadores específicos se liguem apenas a determinadas configurações de sessão quando iniciam sessão no Windows PowerShell Web Access. Pode usar listas de controlo de acesso (ACLs) para determinar quais os utilizadores que têm acesso a endpoints específicos, e restringir ainda mais o acesso ao endpoint para um conjunto específico de utilizadores, utilizando regras de autorização descritas nesta secção. Para mais informações sobre espaços de execução restritos, consulte Criação de um espaço de execução restrito.

Configuração das regras de autorização

Os administradores provavelmente querem a mesma regra de autorização para utilizadores do Windows PowerShell Web Access que já está definida no seu ambiente para a gestão remota do Windows PowerShell. O primeiro procedimento desta secção descreve como adicionar uma regra de autorização segura que conceda acesso a um utilizador, ao iniciar sessão para gerir um computador, e dentro de uma única configuração de sessão. O segundo procedimento descreve como remover uma regra de autorização que já não é necessária.

Se planeia usar configurações de sessão personalizadas para permitir que utilizadores específicos trabalhem apenas em espaços de execução restritos no Windows PowerShell Web Access, crie as suas configurações de sessão personalizadas antes de adicionar regras de autorização que se referem a elas. Não pode usar os comandos de acesso Web do Windows PowerShell para criar configurações personalizadas de sessão. Para mais informações sobre como criar configurações personalizadas de sessão, consulte about_Session_Configuration_Files.

Os cmdlets do Windows PowerShell Web Access suportam um carácter curinga, um asterisco ( * ). Caracteres curinga dentro de cadeias não são suportados; Use um único asterisco por propriedade (utilizadores, computadores ou configurações de sessão).

Observação

Para mais formas de usar regras de autorização para conceder acesso aos utilizadores e ajudar a proteger o ambiente Windows PowerShell Web Access, consulte outros exemplos de cenários de regras de autorização neste tópico.

Para adicionar uma regra de autorização restritiva

  1. Siga um destes procedimentos para abrir uma sessão do Windows PowerShell com direitos de usuário elevados.

    • Na área de trabalho do Windows, clique com o botão direito do mouse em Windows PowerShell na barra de tarefas e clique em Executar como Administrador.

    • No ecrã Iniciar do Windows, clique com o botão direito em PowerShell do Windows e depois clique em Executar como Administrador.

  2. Passo opcional Para restringir o acesso do utilizador através da utilização de configurações de sessão:

    Verifica se as configurações de sessão que queres usar já existem nas tuas regras.

    Se ainda não foram criados, use instruções para criar configurações de sessão em about_Session_Configuration_Files.

  3. Esta regra de autorização permite a um utilizador específico o acesso a um computador na rede ao qual normalmente tem acesso, com acesso a uma configuração de sessão específica adaptada às necessidades típicas de scripts e cmdlets do utilizador. Digite o seguinte e pressione Enter.

    Add-PswaAuthorizationRule -UserName <domain\user | computer\user> `
       -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
    
    • No exemplo seguinte, um utilizador chamado JSmith no domínio Contoso recebe acesso para gerir a Contoso_214 do computador e usar uma configuração de sessão chamada NewAdminsOnly.
    Add-PswaAuthorizationRule -UserName 'Contoso\JSmith' `
       -ComputerName Contoso_214 -ConfigurationName NewAdminsOnly
    
  4. Verifique se a regra foi criada executando o cmdlet Get-PswaAuthorizationRule , ou Test-PswaAuthorizationRule -UserName <domain\user | computer\user> -ComputerName** <computer_name>. Por exemplo, Test-PswaAuthorizationRule -UserName Contoso\\JSmith -ComputerName Contoso_214.

Para remover uma regra de autorização

  1. Se uma sessão PowerShell do Windows ainda não estiver aberta, consulte o passo 1 de para adicionar uma regra de autorização restritiva nesta secção.

  2. Escreva o seguinte e depois pressione Enter, onde o ID da regra representa o número único de ID da regra que pretende remover.

    Remove-PswaAuthorizationRule -ID <rule ID>
    

    Alternativamente, se não souber o número de identificação, mas souber o nome amigável da regra que pretende remover, pode obter o nome da regra e canalizá-lo para o Remove-PswaAuthorizationRule cmdlet para remover a regra, como mostrado no exemplo seguinte:

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

Observação

Não lhe é pedido que confirme se pretende eliminar a regra de autorização especificada; a regra é eliminada quando carregas em Enter. Certifique-se de que quer remover a regra de autorização antes de executar o Remove-PswaAuthorizationRule cmdlet.

Outros exemplos de cenários de regras de autorização

Cada sessão do Windows PowerShell utiliza uma configuração de sessão; se não for especificado para uma sessão, o Windows PowerShell utiliza a configuração padrão de sessão integrada do Windows PowerShell, chamada Microsoft.PowerShell. A configuração padrão da sessão inclui todos os cmdlets disponíveis num computador. Os administradores podem restringir o acesso a todos os computadores definindo uma configuração de sessão com um espaço de execução restrito (uma gama limitada de cmdlets e tarefas que os seus utilizadores finais poderiam realizar). Um utilizador que recebe acesso a um computador com acesso completo à linguagem ou apenas aos comandos de gestão remota do Windows PowerShell pode ligar-se a outros computadores que estejam ligados ao primeiro computador. Definir um espaço de execução restrito pode impedir que os utilizadores acedam a outros computadores a partir do seu espaço de execução Windows PowerShell permitido, e melhora a segurança do seu ambiente Windows PowerShell Web Access. A configuração da sessão pode ser distribuída (usando a Estratégia de Grupo) para todos os computadores que os administradores queiram tornar acessíveis através do Windows PowerShell Web Access. Para obter mais informações sobre configurações de sessão, consulte about_Session_Configurations. A seguir estão alguns exemplos deste cenário.

  • Um administrador cria um endpoint, chamado PswaEndpoint, com um espaço de execução restrito. Depois, o administrador cria uma regra, *,*,PswaEndpoint, e distribui o endpoint para outros computadores. A regra permite que todos os utilizadores acedam a todos os computadores com o endpoint PswaEndpoint. Se esta for a única regra de autorização definida no conjunto de regras, computadores sem esse endpoint não seriam acessíveis.

  • O administrador criou um endpoint com um espaço de execução restrito chamado PswaEndpoint e quer restringir o acesso a utilizadores específicos. O administrador cria um grupo de utilizadores chamado Level1Support e define a seguinte regra: Level1Support,*,PswaEndpoint. A regra concede a qualquer utilizador do grupo Level1Support acesso a todos os computadores com a configuração PswaEndpoint . De forma semelhante, o acesso pode ser restringido a um conjunto específico de computadores.

  • Alguns administradores dão mais acesso a certos utilizadores do que a outros. Por exemplo, um administrador cria dois grupos de utilizadores, Admins e BasicSupport. O administrador também cria um endpoint com um espaço de execução restrito chamado PswaEndpoint, e define as seguintes duas regras: Admins,*,* e BasicSupport,*,PswaEndpoint. A primeira regra dá a todos os utilizadores do grupo de Administradores acesso a todos os computadores, e a segunda regra dá a todos os utilizadores do grupo BasicSupport acesso apenas aos computadores com PswaEndpoint.

  • Um administrador configurou um ambiente de teste privado e pretende permitir que todos os utilizadores autorizados da rede tenham acesso a todos os computadores da rede a que normalmente têm acesso, com acesso a todas as configurações de sessão a que normalmente têm acesso. Como este é um ambiente de teste privado, o administrador cria uma regra de autorização que não é segura. - O administrador executa o cmdlet Add-PswaAuthorizationRule * * *, que usa o carácter * curinga para representar todos os utilizadores, todos os computadores e todas as configurações. - Esta regra é equivalente à seguinte: Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *.

    Observação

    Esta regra não é recomendada num ambiente seguro e contorna a camada de regra de autorização de segurança fornecida pelo Windows PowerShell Web Access.

  • Um administrador deve permitir que os utilizadores se liguem a computadores-alvo num ambiente que inclua tanto grupos de trabalho como domínios, onde computadores de grupo de trabalho são ocasionalmente usados para se ligar a computadores-alvo em domínios, e computadores em domínios são ocasionalmente usados para se ligar a computadores-alvo em grupos de trabalho. O administrador tem um servidor gateway, PswaServer, num grupo de trabalho; e o computador alvo srv1.contoso.com está num domínio. O utilizador Chris é um utilizador local autorizado tanto no servidor gateway do grupo de trabalho como no computador alvo. O seu nome de utilizador no servidor do grupo de trabalho é chrisLocal; E o nome de utilizador dele no computador alvo é Contoso\chris. Para autorizar o acesso à srv1.contoso.com para o Chris, o administrador acrescenta a seguinte regra.

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

O exemplo da regra anterior autentica o Chris no servidor gateway e depois autoriza o seu acesso ao srv1. Na página de iniciação de sessão, o Chris deve fornecer um segundo conjunto de credenciais na área de Definições de ligação opcionais (contoso\chris). O servidor gateway utiliza o conjunto adicional de credenciais para o autenticar no computador alvo, srv1.contoso.com.

No cenário anterior, o Windows PowerShell Web Access estabelece uma ligação bem-sucedida ao computador alvo apenas depois de as seguintes terem sido bem-sucedidas e permitidas por pelo menos uma regra de autorização.

  1. Autenticação no servidor gateway do grupo de trabalho adicionando um nome de utilizador no formato server_name\user_name à regra de autorização

  2. Autenticação no computador de destino usando credenciais alternativas fornecidas na página de iniciação de sessão, na área de Definições de ligação opcionais

    Observação

    Se os computadores gateway e destino estiverem em grupos de trabalho ou domínios diferentes, deve ser estabelecida uma relação de confiança entre os dois computadores do grupo de trabalho, os dois domínios ou entre o grupo de trabalho e o domínio. Esta relação não pode ser configurada usando os cmdlets de regra de autorização do Windows PowerShell Web Access. As regras de autorização não definem uma relação de confiança entre computadores; Só podem autorizar os utilizadores a ligar-se a computadores alvo específicos e configurações de sessão. Para mais informações sobre como configurar uma relação de confiança entre diferentes domínios, consulte Criação de Trusts de Domínio e Floresta. Para mais informações sobre como adicionar computadores de grupo de trabalho a uma lista de hosts de confiança, consulte Gestão Remota com Server Manager.

Utilização de um único conjunto de regras de autorização para múltiplos sites

As regras de autorização são armazenadas num ficheiro XML. Por defeito, o nome do caminho do ficheiro XML é $env:windir\Web\PowershellWebAccess\data\AuthorizationRules.xml.

O caminho para o ficheiro XML das regras de autorização é armazenado no ficheiropowwa.config , que se encontra em $env:windir\Web\PowershellWebAccess\data. O administrador tem a flexibilidade de alterar a referência para o caminho padrão empowwa.config para se adequar às preferências ou requisitos. Permitir que o administrador altere a localização do ficheiro permite que múltiplos gateways de acesso Web PowerShell do Windows utilizem as mesmas regras de autorização, se tal configuração for desejada.

Gestão de sessões

Por defeito, o Windows PowerShell Web Access limita um utilizador a três sessões de cada vez. Pode editar o ficheiro web.config da aplicação web no IIS Manager para suportar um número diferente de sessões por utilizador. O caminho para o ficheiroweb.config é $env:windir\Web\PowerShellWebAccess\wwwroot\Web.config.

Por defeito, o IIS Web Server está configurado para reiniciar o pool de aplicações se alguma configuração for editada. Por exemplo, o pool de aplicações é reiniciado se forem feitas alterações ao ficheiroweb.config . >Como o Windows PowerShell Web Access utiliza estados de sessão em memória, >os utilizadores que iniciam sessão no Windows PowerShell Web Access perdem as suas sessões quando o pool de aplicações é reiniciado.

Definir parâmetros predefinidos na página de início de sessão

Se o seu gateway Windows PowerShell Web Access estiver a correr no Windows Server 2012 R2, pode configurar valores predefinidos para as definições que são exibidas na página de login do Windows PowerShell Web Access. Pode configurar valores no ficheiroweb.config descrito no parágrafo anterior. Os valores padrão para as definições da página de início de sessão encontram-se na secção appSettings do ficheiro web.config; o seguinte é um exemplo da secção appSettings . Os valores válidos para muitas destas definições são os mesmos que para os parâmetros correspondentes do cmdlet New-PSSession no Windows PowerShell.

Por exemplo, a defaultApplicationName chave, como mostrado no bloco de código seguinte, é o valor da variável de preferência $PSSessionApplicationName no computador de destino.

  <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>

Pausas e desconexões não planeadas

As sessões de acesso ao Windows PowerShell Web acabam o prazo. No Windows PowerShell Web Access a correr no Windows Server 2012, uma mensagem de timeout é apresentada aos utilizadores iniciados sessão após 15 minutos de inatividade da sessão. Se o utilizador não responder nos cinco minutos seguintes à apresentação da mensagem de time-out, a sessão termina e o utilizador fica desconectado. Pode alterar os períodos de time-out das sessões nas definições do site no IIS Manager.

No Windows PowerShell Web Access a correr no Windows Server 2012 R2, as sessões expiram, por defeito, após 20 minutos de inatividade. Se os utilizadores forem desligados das sessões na consola web devido a erros de rede ou outros desligamentos ou falhas não planeados, e não porque tenham encerrado as sessões por si próprios, as sessões de Acesso Web do Windows PowerShell continuam a correr, ligadas aos computadores-alvo, até que o período de time-out do lado do cliente expire. A sessão é desligada após os 20 minutos padrão ou após o período de tempo especificado pelo administrador do gateway, o que for mais curto.

Se o servidor gateway estiver a correr o Windows Server 2012 R2, o Windows PowerShell Web Access permite que os utilizadores se reconectem às sessões guardadas mais tarde, mas quando erros de rede, desligamentos não planeados ou outras falhas desligam as sessões, os utilizadores não conseguem ver ou voltar a ligar-se às sessões guardadas até que o período de tempo especificado pelo administrador do gateway tenha expirado.

Ver também

Instalar e Utilizar o Acesso Web ao Windows PowerShell

sobre_Configuracoes_de_Sessao

Cmdlets de Acesso Web do Windows PowerShell