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
Windows PowerShell Web Access no Windows Server 2012 R2 e Windows Server 2012 tem um modelo de segurança restritivo. Os utilizadores têm de ter acesso explícito antes de poderem iniciar sessão no gateway Windows PowerShell Web Access e utilizar a consola de Windows PowerShell baseada na Web.
Configurar regras de autorização e segurança do site
Depois de Windows PowerShell Web Access estar instalado e o gateway estar configurado, os utilizadores podem abrir a página de início de sessão num browser, mas não podem iniciar sessão até que o administrador do Windows PowerShell Web Access conceda aos utilizadores acesso explicitamente. O controlo de acesso "Windows PowerShell Web Access" é gerido com o conjunto de cmdlets Windows PowerShell descrito na tabela seguinte. Não existe uma GUI comparável para adicionar ou gerir regras de autorização. Veja Windows PowerShell Cmdlets do Web Access.
Os administradores podem definir {0-n}
regras de autenticação para Windows PowerShell Web Access. A segurança predefinida é restritiva e não permissiva; regras de autenticação zero 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 lhe permite adicionar e testar Windows PowerShell regras de autorização do Acesso Web a partir de um computador remoto ou a partir de uma sessão ativa Windows PowerShell Web Access. Tal como acontece com outros cmdlets Windows PowerShell que têm um parâmetro Credential, pode especificar um objeto PSCredential como o valor do parâmetro . Para criar um objeto PSCredential que contenha credenciais que pretende transmitir para um computador remoto, execute o cmdlet Get-Credential .
Windows PowerShell regras de autenticação do Web Access são regras de permissão. Cada regra é uma definição de uma ligação permitida entre utilizadores, computadores de destino e configurações de sessão de Windows PowerShell específicas (também referidas como pontos finais ou espaços de execução) em computadores de destino especificados. Para obter uma explicação sobre os runspaces , veja Utilização Inicial dos Runspaces do PowerShell
Importante
Um utilizador só precisa que uma regra seja verdadeira para obter acesso. Se um utilizador tiver acesso a um computador com acesso total ao idioma ou acesso apenas a Windows PowerShell cmdlets de gestão remota, a partir da consola baseada na Web, o utilizador pode iniciar sessão (ou saltar) noutros computadores ligados ao primeiro computador de destino. A forma mais segura de configurar Windows PowerShell Web Access é permitir que os utilizadores acedam apenas a configurações de sessão restritas que lhes permitam realizar tarefas específicas que normalmente precisam de realizar remotamente.
Os cmdlets referenciados no Windows PowerShell Cmdlets do Web Access permitem criar um conjunto de regras de acesso que são utilizadas para autorizar um utilizador no gateway de Acesso Web 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. Estão descritos mais detalhes sobre segurança na secção seguinte.
Se os utilizadores não conseguirem transmitir nenhuma das camadas de segurança anteriores, receberão uma mensagem genérica de "acesso negado" nas janelas do browser. Embora os detalhes de segurança sejam registados no servidor de gateway, não são apresentadas informações aos utilizadores finais sobre quantas camadas de segurança passaram ou em que camada ocorreu a falha de início de sessão ou autenticação.
Para obter mais informações sobre como configurar regras de autorização, veja Configurar regras de autorização neste tópico.
Segurança
O modelo de segurança Windows PowerShell Web Access tem quatro camadas entre um utilizador final da consola baseada na Web e um computador de destino. Windows PowerShell administradores do Web Access podem adicionar camadas de segurança através de configurações adicionais na consola do Gestor do IIS. Para obter mais informações sobre como proteger sites na consola do Gestor do IIS, veja Configurar a Segurança do Servidor Web (IIS7).
Para obter mais informações sobre as melhores práticas do IIS e impedir ataques denial-of-service, veja Best Practices for Preventing DoS/Denial of Service Attacks (Melhores Práticas para Prevenir Ataques DoS/Denial of Service). Um administrador também pode comprar e instalar software de autenticação de revenda adicional.
A tabela seguinte descreve as quatro camadas de segurança entre utilizadores finais e computadores de destino.
Pode encontrar informações detalhadas sobre cada camada nos seguintes cabeçalhos:
Funcionalidades de segurança do Servidor Web do IIS
Windows PowerShell utilizadores do Web Access têm sempre de fornecer um nome de utilizador e uma palavra-passe para autenticar as respetivas contas no gateway. No entanto, Windows PowerShell administradores do Web Access também podem ativar ou desativar a autenticação de certificado de cliente opcional, ver instalar e utilizar o acesso Web do Windows Powershell para ativar um certificado de teste e, mais tarde, como configurar um certificado genuíno).
A funcionalidade de certificado de cliente opcional requer que os utilizadores finais tenham um certificado de cliente válido, além dos respetivos nomes de utilizador e palavras-passe, e faz parte da configuração do Servidor Web (IIS). Quando a camada do certificado de cliente está ativada, a página de início de sessão do Windows PowerShell Web Access pede aos utilizadores para fornecerem certificados válidos antes de as credenciais de início de sessão serem avaliadas. A autenticação do certificado de cliente verifica automaticamente o certificado de 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 de cliente válido, o Windows PowerShell Web Access abre a página de início de sessão para que os utilizadores forneçam os respetivos nomes de utilizador e palavras-passe.
Este é um exemplo de definições de segurança adicionais que são oferecidas pelo Servidor Web do IIS. Para obter mais informações sobre outras funcionalidades de segurança do IIS, veja Configurar a Segurança do Servidor Web (IIS 7).
Windows PowerShell autenticação de gateway baseada em formulários do 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 credenciais diferentes para o computador de destino. Se o utilizador não fornecer credenciais alternativas, o nome de utilizador principal e a palavra-passe que são utilizados para ligar ao gateway também são utilizados para ligar ao computador de destino.
As credenciais necessárias são autenticadas no gateway Windows PowerShell Web Access. Estas credenciais têm de ser contas de utilizador válidas no servidor de gateway de Acesso Web Windows PowerShell local ou no Active Directory.
Windows PowerShell regras de autorização do Acesso Web
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 de destino pedido. Após a autorização bem-sucedida, as credenciais do utilizador são transmitidas para o computador de destino.
Estas regras só são avaliadas depois de um utilizador ter sido autenticado pelo gateway e antes de um utilizador poder ser autenticado num computador de destino.
Regras de autenticação e autorização de destino
A camada final de segurança do Windows PowerShell Web Access é a configuração de segurança do computador de destino. Os utilizadores têm de ter os direitos de acesso adequados configurados no computador de destino e também nas regras de autorização do Windows PowerShell Web Access para executar um Windows PowerShell consola baseada na Web que afete um computador de destino 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 de Windows PowerShell remota para um computador de destino a partir de Windows PowerShell ao executar os cmdlets Enter-PSSession ou New-PSSession.
Por predefinição, Windows PowerShell Web Access utiliza o nome de utilizador principal e a palavra-passe para autenticação no gateway e no computador de destino. A página de início de sessão baseada na Web, numa secção intitulada Definições de ligação opcionais, oferece aos utilizadores a opção de fornecer credenciais diferentes para o computador de destino, se forem necessárias. Se o utilizador não fornecer credenciais alternativas, o nome de utilizador principal e a palavra-passe que são utilizados para ligar ao gateway também são utilizados para ligar ao computador de destino.
As regras de autorização podem ser utilizadas para permitir que os utilizadores acedam a uma configuração de sessão específica. Pode criar runspaces restritos ou configurações de sessão para Windows PowerShell Web Access e permitir que utilizadores específicos se liguem apenas a configurações de sessão específicas quando iniciam sessão no Windows PowerShell Web Access. Pode utilizar listas de controlo de acesso (ACLs) para determinar que utilizadores têm acesso a pontos finais específicos e restringir ainda mais o acesso ao ponto final de um conjunto específico de utilizadores através de regras de autorização descritas nesta secção. Para obter mais informações sobre os runspaces restritos, veja Creating a constrained runspace (Criar um espaço de execução restrito).
Configurar regras de autorização
Os administradores provavelmente querem a mesma regra de autorização para Windows PowerShell utilizadores do Web Access que já está definido no respetivo ambiente para Windows PowerShell gestão remota. O primeiro procedimento nesta secção descreve como adicionar uma regra de autorização segura que concede acesso a um utilizador, ao iniciar sessão para gerir um computador e numa única configuração de sessão. O segundo procedimento descreve como remover uma regra de autorização que já não é necessária.
Se planear utilizar configurações de sessão personalizadas para permitir que utilizadores específicos trabalhem apenas em áreas de execução restritas no Windows PowerShell Web Access, crie as suas configurações de sessão personalizadas antes de adicionar regras de autorização que se referem às mesmas. Não pode utilizar os cmdlets Windows PowerShell Web Access para criar configurações de sessão personalizadas. Para obter mais informações sobre como criar configurações de sessão personalizadas, veja about_Session_Configuration_Files.
Windows PowerShell cmdlets do Web Access suportam um caráter universal, um asterisco ( * ). Os carateres universais nas cadeias de carateres universais não são suportados; utilize um único asterisco por propriedade (utilizadores, computadores ou configurações de sessão).
Nota
Para obter mais formas de utilizar regras de autorização para conceder acesso aos utilizadores e ajudar a proteger o ambiente Windows PowerShell Web Access, veja outros exemplos de cenários de regras de autorização neste tópico.
Para adicionar uma regra de autorização restritiva
Efetue um dos seguintes procedimentos para abrir uma sessão do Windows PowerShell com direitos de utilizador elevados.
No ambiente de trabalho do Windows, clique com botão direito do rato em Windows PowerShell na barra de tarefas e clique em Executar como Administrador.
No ecrã Iniciar do Windows, clique com o botão direito do rato Windows PowerShell e, em seguida, clique em Executar como Administrador.
Passo opcional Para restringir o acesso do utilizador através de configurações de sessão:
Verifique se as configurações de sessão que pretende utilizar já existem nas regras .
Se ainda não tiverem sido criadas, utilize instruções para criar configurações de sessão no about_Session_Configuration_Files.
Esta regra de autorização permite a um utilizador específico aceder a um computador na rede ao qual normalmente tem acesso, com acesso a uma configuração de sessão específica que está confinada às necessidades típicas de scripting e cmdlet do utilizador. Escreva o seguinte e, em seguida, prima Enter.
Add-PswaAuthorizationRule -UserName <domain\user | computer\user> ` -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
- No exemplo seguinte, é concedido a um utilizador com o nome JSmith no domínio Contoso acesso para gerir a Contoso_214 do computador e utilizar uma configuração de sessão denominada NewAdminsOnly.
Add-PswaAuthorizationRule -UserName 'Contoso\JSmith' ` -ComputerName Contoso_214 -ConfigurationName NewAdminsOnly
Verifique se a regra foi criada ao executar 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
Se uma sessão de Windows PowerShell ainda não estiver aberta, veja o passo 1 de para adicionar uma regra de autorização restritiva nesta secção.
Escreva o seguinte e, em seguida, prima Enter, onde o ID da regra representa o número de ID exclusivo da regra que pretende remover.
Remove-PswaAuthorizationRule -ID <rule ID>
Em alternativa, se não souber o número do ID, mas souber o nome amigável da regra que pretende remover, pode obter o nome da regra e encaminhá-lo para o
Remove-PswaAuthorizationRule
cmdlet para remover a regra, conforme mostrado no exemplo seguinte:Get-PswaAuthorizationRule ` -RuleName <rule-name> | Remove-PswaAuthorizationRule
Nota
Não lhe é pedido que confirme se pretende eliminar a regra de autorização especificada; a regra é eliminada quando prime Enter. Certifique-se de que pretende 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 de Windows PowerShell utiliza uma configuração de sessão; se não for especificada uma para uma sessão, Windows PowerShell utiliza a configuração de sessão de Windows PowerShell incorporada predefinida, denominada Microsoft.PowerShell. A configuração de sessão predefinida inclui todos os cmdlets disponíveis num computador. Os administradores podem restringir o acesso a todos os computadores ao definir uma configuração de sessão com um espaço de execução restrito (um intervalo limitado de cmdlets e tarefas que os utilizadores finais poderiam executar). Um utilizador a quem seja concedido acesso a um computador com acesso completo ao idioma ou apenas aos cmdlets de gestão remota Windows PowerShell pode ligar-se a outros computadores ligados ao primeiro computador. Definir um espaço de execução restrito pode impedir que os utilizadores acedam a outros computadores a partir do respetivo espaço de execução permitido Windows PowerShell e melhora a segurança do seu ambiente Windows PowerShell Web Access. A configuração da sessão pode ser distribuída (utilizando Política de Grupo) em todos os computadores que os administradores pretendem 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. Seguem-se alguns exemplos deste cenário.
Um administrador cria um ponto final, denominado PswaEndpoint, com um espaço de execução restrito. Em seguida, o administrador cria uma regra,
*,*,PswaEndpoint
e distribui o ponto final para outros computadores. A regra permite que todos os utilizadores acedam a todos os computadores com o ponto final PswaEndpoint. Se esta for a única regra de autorização definida no conjunto de regras, os computadores sem esse ponto final não estarão acessíveis.O administrador criou um ponto final com um espaço de execução restrito denominado PswaEndpoint e quer restringir o acesso a utilizadores específicos. O administrador cria um grupo de utilizadores denominado Level1Support e define a seguinte regra: Level1Support,*,PswaEndpoint. A regra concede a todos os utilizadores no grupo Level1Support acesso a todos os computadores com a configuração PswaEndpoint . Da mesma forma, o acesso pode ser restringido a um conjunto específico de computadores.
Alguns administradores fornecem a determinados utilizadores mais acesso do que outros. Por exemplo, um administrador cria dois grupos de utilizadores, Admins e BasicSupport. O administrador também cria um ponto final com um espaço de execução restrito denominado PswaEndpoint e define as duas regras seguintes: Admins,*,* e BasicSupport,*,PswaEndpoint. A primeira regra fornece a todos os utilizadores no grupo Administração acesso a todos os computadores e a segunda regra fornece a todos os utilizadores do grupo BasicSupport acesso apenas aos computadores com PswaEndpoint.
Um administrador configurou um ambiente de teste privado e quer permitir que todos os utilizadores de rede autorizados acedam a todos os computadores na rede aos quais normalmente têm acesso, com acesso a todas as configurações de sessão às quais normalmente têm acesso. Uma vez que se trata de 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 utiliza o caráter * universal para representar todos os utilizadores, todos os computadores e todas as configurações. - Esta regra é o equivalente ao seguinte:Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *
.Nota
Esta regra não é recomendada num ambiente seguro e ignora a camada de segurança da regra de autorização fornecida pelo Windows PowerShell Web Access.
Um administrador tem de permitir que os utilizadores se liguem a computadores de destino num ambiente que inclua grupos de trabalho e domínios, em que os computadores de grupo de trabalho são ocasionalmente utilizados para ligar a computadores de destino em domínios e os computadores em domínios são ocasionalmente utilizados para ligar a computadores de destino em grupos de trabalho. O administrador tem um servidor de gateway, PswaServer, num grupo de trabalho; e srv1.contoso.com de computador de destino está num domínio. O utilizador Chris é um utilizador local autorizado no servidor de gateway do grupo de trabalho e no computador de destino. O nome de utilizador no servidor do grupo de trabalho é chrisLocal; e o nome de utilizador no computador de destino é contoso\chris. Para autorizar o acesso ao srv1.contoso.com para Chris, o administrador adiciona a seguinte regra.
Add-PswaAuthorizationRule -userName PswaServer\chrisLocal `
-computerName srv1.contoso.com -configurationName Microsoft.PowerShell
O exemplo de regra anterior autentica o Chris no servidor de gateway e, em seguida, autoriza o acesso ao srv1. Na página de início de sessão, Chris tem de fornecer um segundo conjunto de credenciais na área Definições de ligação opcionais (contoso\chris). O servidor de gateway utiliza o conjunto adicional de credenciais para o autenticar no computador de destino , srv1.contoso.com.
No cenário anterior, o Windows PowerShell Web Access estabelece uma ligação com êxito ao computador de destino apenas depois de o seguinte ter sido efetuado com êxito e permitido por, pelo menos, uma regra de autorização.
Autenticação no servidor de gateway do grupo de trabalho ao adicionar um nome de utilizador no formato server_name\user_name à regra de autorização
Autenticação no computador de destino com credenciais alternativas fornecidas na página de início de sessão, na área Definições de ligação opcionais
Nota
Se os computadores de gateway e de destino estiverem em diferentes grupos de trabalho ou domínios, tem de 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. Não é possível configurar esta relação com os cmdlets da regra de autorização do Acesso Web Windows PowerShell. As regras de autorização não definem uma relação de confiança entre computadores; só podem autorizar os utilizadores a ligar a computadores de destino específicos e configurações de sessão. Para obter mais informações sobre como configurar uma relação de confiança entre domínios diferentes, veja Creating Domain and Forest Trusts (Criar Confianças de Domínios e Florestas). Para obter mais informações sobre como adicionar computadores de grupo de trabalho a uma lista de anfitriões fidedignos, consulte Gestão Remota com Gestor de Servidor.
Utilizar um único conjunto de regras de autorização para vários sites
As regras de autorização são armazenadas num ficheiro XML. Por predefinição, 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 ficheiro powwa.config , que se encontra em $env:windir\Web\PowershellWebAccess\data
. O administrador tem a flexibilidade de alterar a referência ao caminho predefinido no powwa.config de acordo com as preferências ou requisitos. Permitir que o administrador altere a localização do ficheiro permite que vários Windows PowerShell gateways do Web Access utilizem as mesmas regras de autorização, se tal configuração for desejada.
Gestão de sessões
Por predefinição, o Windows PowerShell Web Access limita um utilizador a três sessões de uma só vez. Pode editar o ficheiro web.config da aplicação Web no Gestor do IIS para suportar um número diferente de sessões por utilizador. O caminho para o ficheiro deweb.config é $env:windir\Web\PowerShellWebAccess\wwwroot\Web.config
.
Por predefinição, o Servidor Web do IIS está configurado para reiniciar o conjunto aplicacional se forem editadas definições. Por exemplo, o conjunto aplicacional é reiniciado se forem efetuadas alterações ao ficheiro web.config . >Uma vez que Windows PowerShell Web Access utiliza estados de sessão dentro da memória, >os utilizadores com sessão iniciada no Windows PowerShell web Access perdem as sessões quando o conjunto aplicacional é reiniciado.
Definir parâmetros predefinidos na página de início de sessão
Se o gateway do Windows PowerShell Web Access estiver em execução no Windows Server 2012 R2, pode configurar valores predefinidos para as definições apresentadas na página de início de sessão do Acesso Web Windows PowerShell. Pode configurar valores no ficheiro web.config descrito no parágrafo anterior. Os valores predefinidos para as definições da página de início de sessão encontram-se na secção appSettings do ficheiro web.config; segue-se um exemplo da secção appSettings . Os valores válidos para muitas destas definições são os mesmos dos parâmetros correspondentes do cmdlet New-PSSession no Windows PowerShell.
Por exemplo, a defaultApplicationName
chave, conforme mostrado no seguinte bloco de código, é 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>
Tempos limite e desligamentos não planeados
Windows PowerShell tempo limite das sessões do Web Access. No Windows PowerShell Web Access em execução no Windows Server 2012, é apresentada uma mensagem de tempo limite aos utilizadores com sessão iniciada após 15 minutos de inatividade da sessão. Se o utilizador não responder no prazo de cinco minutos após a apresentação da mensagem de tempo limite, a sessão é terminada e o utilizador termina a sessão. Pode alterar os períodos de tempo limite das sessões nas definições do site no Gestor do IIS.
No Windows PowerShell Web Access em execução no Windows Server 2012 R2, as sessões excedem o limite de tempo, por predefinição, após 20 minutos de inatividade. Se os utilizadores estiverem desligados das sessões na consola baseada na Web devido a erros de rede ou outros encerramentos não planeados ou falhas, e não por terem fechado as sessões, as sessões Windows PowerShell Web Access continuam a ser executadas, ligadas a computadores de destino, até que o período de tempo limite no lado do cliente caduque. A sessão é desligada após os 20 minutos predefinidos ou após o período de tempo limite especificado pelo administrador do gateway, o que for mais curto.
Se o servidor de gateway estiver a executar Windows Server 2012 R2, o Windows PowerShell Web Access permite que os utilizadores voltem a ligar-se às sessões guardadas mais tarde, mas quando os erros de rede, encerramentos não planeados ou outras falhas desligam as sessões, os utilizadores não podem ver ou voltar a ligar-se a sessões guardadas até que o período de tempo limite especificado pelo administrador do gateway tenha caducado.