Autenticação para Conexões Remotas

O Gerenciamento Remoto do Windows mantém a segurança para comunicação entre computadores, dando suporte a vários métodos padrão de autenticação e criptografia de mensagens.

Acesso de grupo padrão

Durante a instalação, o WinRM cria o grupo local WinRMRemoteWMIUsers__. Em seguida, o WinRM restringe o acesso remoto a qualquer usuário que não seja membro do grupo de administração local ou do grupo de WinRMRemoteWMIUsers__ . Você pode adicionar um usuário local, um usuário de domínio ou um grupo de domínio para WinRMRemoteWMIUsers__ digitando net localgroup WinRMRemoteWMIUsers__ /add <domain>\<username> no prompt de comando. Opcionalmente, você pode usar o Política de Grupo para adicionar um usuário ao grupo.

Configurações de autenticação padrão

As credenciais padrão, o nome de usuário e a senha são as credenciais da conta de usuário conectada que executa o script.

Para alterar para outra conta em um computador remoto

  1. Especifique as credenciais em um objeto ConnectionOptions ou IWSManConnectionOptions e forneça isso para a chamada CreateSession .
  2. Defina o WSManFlagCredUserNamePassword no parâmetro flags na chamada CreateSession .

A lista a seguir contém uma lista do que ocorre quando um script ou aplicativo é executado sob as credenciais padrão:

  • Kerberos é o método padrão de autenticação quando o cliente está em um domínio e a cadeia de caracteres de destino remoto não é um dos seguintes: localhost, 127.0.0.1 ou [::1].
  • Negotiate é o método padrão quando o cliente não está em um domínio, mas a cadeia de caracteres de destino remoto é uma das seguintes: localhost, 127.0.0.1 ou [::1].

Se você fornecer credenciais explícitas com um objeto ConnectionOptions , Negotiate será o método padrão. A autenticação negotiate determina se o método de autenticação em andamento é Kerberos ou NTLM, dependendo se os computadores estão em um domínio ou grupo de trabalho. Se estiver se conectando a um computador de destino remoto usando uma conta local, a conta deverá ser prefixada com o nome do computador. Por exemplo, myComputer\myUsername.

Se você especificar a autenticação Negotiate, Digest ou Basic e não fornecer um objeto ConnectionOptions , receberá um erro indicando que credenciais explícitas são necessárias. Se HTTPS não for o transporte, o computador remoto de destino deverá ser configurado na lista de computadores host confiáveis.

Para obter mais informações sobre os tipos de autenticação habilitados nas configurações padrão, consulte Instalação e configuração do Gerenciamento Remoto do Windows.

Autenticação Básica

Para estabelecer explicitamente a autenticação Básica na chamada para WSMan.CreateSession, defina os sinalizadores WSManFlagUseBasic e WSManFlagCredUserNamePassword no parâmetro flags . A autenticação básica está desabilitada nas configurações padrão para o cliente WinRM e o servidor WinRM.

Autenticação Digest

Para estabelecer explicitamente a autenticação digest na chamada para WSMan.CreateSession, defina o sinalizador WSManFlagUseDigest no parâmetro flags . Não há suporte para Digest. Ele não pode ser configurado para o componente do servidor WinRM.

Negociar Autenticação

Para estabelecer explicitamente a autenticação Negotiate , também conhecida como Autenticação Integrada do Windows, na chamada para WSMan.CreateSession, defina o sinalizador WSManFlagUseNegotiate no parâmetro flags .

O UAC (Controle de Conta de Usuário) afeta o acesso ao serviço WinRM. Quando a autenticação Negotiate é usada em um grupo de trabalho, somente a conta de Administrador interna pode acessar o serviço. Para permitir que todas as contas no grupo Administradores acessem o serviço, defina o seguinte valor do Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Políticas\Sistema\LocalAccountTokenFilterPolicy = 1

Autenticação Kerberos

Para estabelecer explicitamente a autenticação Kerberos na chamada para WSMan.CreateSession, defina o sinalizador WSManFlagUseKerberos no parâmetro flags . Os computadores cliente e servidor devem ser ingressados em um domínio. Se você usar Kerberos como o método de autenticação, não poderá usar um endereço IP na chamada para WSMan.CreateSession ou IWSMan::CreateSession.

Autenticação baseada em certificado do cliente

Para estabelecer a autenticação baseada em certificado do cliente na chamada para WSMan.CreateSession, defina o sinalizador WSManFlagUseClientCertificate no parâmetro flags .

Primeiro, você deve habilitar a autenticação de certificado no cliente e no serviço usando a ferramenta de linha de comando winrm. Para obter mais informações, consulte Habilitando opções de autenticação. Você também deve criar uma entrada na tabela CertMapping no computador do servidor WinRM. Isso estabelece um mapeamento entre um ou mais certificados e uma conta local. Depois que o certificado for usado para autenticação e autorização, a conta local correspondente será usada para operações executadas pelo serviço WinRM.

O mapeamento pode ser criado para um URI de recurso específico. Para saber mais, incluindo como criar uma entrada de tabela CertMapping, digite winrm help certmapping no prompt de comando.

Observação

O certificado de tamanho máximo utilizável pelo WinRM neste contexto é de 16 KB.

 

Habilitar ou desabilitar opções de autenticação

A opção de autenticação padrão na instalação do sistema é Kerberos. Para obter mais informações, consulte Instalação e configuração do Gerenciamento Remoto do Windows.

Se o script ou aplicativo exigir um método de autenticação específico que não esteja habilitado, você deverá alterar a configuração para habilitar esse tipo de autenticação. Essa alteração pode ser feita usando a ferramenta de linha de comando winrm ou por meio de Política de Grupo para o Objeto Política de Grupo de Gerenciamento Remoto do Windows. Você também pode optar por desabilitar determinados métodos de autenticação.

Para habilitar ou desabilitar a autenticação com a ferramenta Winrm

  1. Para definir a configuração do cliente WinRM, use o comando Winrm Set e especifique o cliente. Por exemplo, o comando a seguir desabilita a autenticação de resumo para o cliente.

    winrm set winrm/config/client/auth @{Digest="false"}

  2. Para definir a configuração do servidor WinRM, use o comando Winrm Set e especifique o serviço. Por exemplo, o comando a seguir habilita a autenticação Kerberos para o serviço.

    winrm set winrm/config/service/auth @{Kerberos="true"}

Sobre o Gerenciamento Remoto do Windows

WSMan.CreateSession

Usando o Gerenciamento Remoto do Windows