Compartilhar via


Configuração da autenticação Kerberos para servidores de acesso para cliente com balanceamento de carga

Aplica-se a: Exchange Server 2013

Resumo: Descreve como usar a autenticação Kerberos com servidores de Acesso ao Cliente com balanceamento de carga no Exchange 2013.

Para que você use a autenticação Kerberos com servidores de Acesso ao Cliente com balanceamento de carga, você precisa concluir as etapas de configuração descritas neste artigo.

Criar a credencial de conta de serviço alternativa no Active Directory Domain Services

Todos os servidores de Acesso ao Cliente que compartilham os mesmos namespaces e URLs precisam usar as mesmas credenciais de conta de serviço alternativa. Em geral, é suficiente ter uma única conta para uma floresta para cada versão do Exchange. credencial de conta de serviço alternativa ou credencial ASA.

Importante

O Exchange 2010 e o Exchange 2013 não podem compartilhar a mesma credencial ASA. Você precisa criar uma nova credencial ASA para o Exchange 2013.

Importante

Embora os registros CNAME sejam compatíveis com namespaces compartilhados, a Microsoft recomenda usar registros A. Isso garante que o cliente emita corretamente uma solicitação de tíquete Kerberos com base no nome compartilhado e não no FQDN do servidor.

Ao configurar a credencial ASA, tenha estas diretrizes em mente:

  • Tipo de conta: recomendamos que você crie uma conta de computador em vez de uma conta de usuário. Uma conta de computador não permite logon interativo e pode ter políticas de segurança mais simples do que uma conta de usuário. Se você criar uma conta de computador, a senha não expirará, mas recomendamos que você atualize a senha periodicamente de qualquer maneira. Você pode usar a política de grupo local para especificar uma idade máxima para a conta de computador e scripts excluirem periodicamente contas de computador que não atendem às políticas atuais. Sua política de segurança local também determina quando você precisa alterar a senha. Embora seja recomendável usar uma conta de computador, você pode criar uma conta de usuário.

  • Nome da conta: não há requisitos para o nome da conta. Você pode usar qualquer nome que esteja em conformidade com seu esquema de nomenclatura.

  • Grupo de contas: a conta que você usa para a credencial ASA não precisa de privilégios especiais de segurança. Se você estiver usando uma conta de computador, a conta só precisará ser membro do grupo de segurança De computadores de domínio. Se você estiver usando uma conta de usuário, a conta só precisará ser membro do grupo de segurança Usuários de Domínio.

  • Senha da conta: a senha fornecida ao criar a conta será usada. Portanto, ao criar a conta, você deve usar uma senha complexa e garantir que a senha esteja em conformidade com os requisitos de senha da sua organização.

Para criar a credencial ASA como uma conta de computador

  1. Em um computador ingressado no domínio, execute Windows PowerShell ou o Shell de Gerenciamento do Exchange.

    Use o cmdlet Import-Module para importar o módulo do Active Directory.

    Import-Module ActiveDirectory
    
  2. Use o cmdlet New-ADComputer para criar uma nova conta de computador do Active Directory usando essa sintaxe de cmdlet:

    New-ADComputer [-Name] <string> [-AccountPassword <SecureString>] [-AllowReversiblePasswordEncryption <System.Nullable[boolean]>] [-Description <string>] [-Enabled <System.Nullable[bool]>]
    

    Exemplo:

    New-ADComputer -Name EXCH2013ASA -AccountPassword (Read-Host 'Enter password' -AsSecureString) -Description 'Alternate Service Account credentials for Exchange' -Enabled:$True -SamAccountName EXCH2013ASA
    

    Quando EXCH2013ASA é o nome da conta, a descrição Credenciais de Conta de Serviço Alternativa para Exchange é o que você deseja que seja e o valor do parâmetro SamAccountName , nesse caso EXCH2013ASA, precisa ser exclusivo em seu diretório.

  3. Use o cmdlet Set-ADComputer para habilitar o suporte de criptografia do AES 256 usado por Kerberos usando essa sintaxe de cmdlet:

    Set-ADComputer [-Name] <string> [-add @{<attributename>="<value>"]
    

    Exemplo:

    Set-ADComputer EXCH2013ASA -add @{"msDS-SupportedEncryptionTypes"="28"}
    

    Onde EXCH2013ASA é o nome da conta e o atributo a ser modificado é msDS-SupportedEncryptionTypes com um valor decimal de 28, o que permite as seguintes cifras: RC4-HMAC, AES128-CTS-HMAC-SHA1-96, AES256-CTS-HMAC-SHA1-96.

Para obter mais informações sobre esses cmdlets, consulte Import-Module e New-ADComputer.

Cenários entre florestas

Se você tiver uma implantação entre florestas ou florestas de recursos e tiver usuários fora da floresta do Active Directory que contém o Exchange, você precisará configurar relações de confiança florestal entre as florestas. Além disso, para cada floresta na implantação, você precisa configurar uma regra de roteamento que permita a confiança entre todos os sufixos de nome dentro da floresta e entre florestas. Para obter mais informações sobre como gerenciar fundos entre florestas, consulte Configurando organizações de parceiros.

Identificar os nomes da entidade de serviço a serem associados à credencial ASA

Depois de criar a credencial ASA, você precisará associar os SPNs (Nomes de Entidade de Serviço do Exchange) à credencial ASA. A lista de SPNs do Exchange pode variar de acordo com sua configuração, mas deve incluir pelo menos o seguinte:

http/: Use este SPN para Outlook Anywhere, MAPI em HTTP, Serviços Web do Exchange, Autodiscover e Catálogo de Endereços Offline.

Os valores SPN precisam corresponder ao nome do serviço no balanceador de carga de rede em vez de em servidores individuais. Para ajudar a planejar quais valores de SPN você deve usar, considere os seguintes cenários:

  • Site do Active Directory Único

  • Vários sites do Active Directory

Em cada um desses cenários, suponha que os FQDNs (nomes de domínio totalmente qualificados e balanceados por carga) tenham sido implantados para as URLs internas, URLs externas e o URI interno de descoberta automática usado pelos membros do servidor do Client Access. Para obter mais informações, consulte Noções básicas sobre proxy e redirecionamento.

Site do Active Directory Único

Se você tiver um único site do Active Directory, seu ambiente poderá se assemelhar ao da seguinte figura:

Matriz CAS com AD Único e auth Kerberos.

Com base nos FQDNs usados pelos clientes internos do Outlook na figura anterior, você precisa associar as seguintes SPNs à credencial ASA:

  • http/mail.corp.tailspintoys.com

  • http/autodiscover.corp.tailspintoys.com

Vários sites do Active Directory

Se você tiver vários sites do Active Directory, seu ambiente poderá se assemelhar ao da seguinte figura:

Matriz CAS com vários sites do AD e auth Kerberos.

Com base nos FQDNs usados pelos clientes do Outlook na figura anterior, você precisaria associar os seguintes SPNs à credencial ASA usada pelos servidores de Acesso ao Cliente no ADSite 1:

  • http/mail.corp.tailspintoys.com

  • http/autodiscover.corp.tailspintoys.com

Você também precisaria associar os seguintes SPNs à credencial ASA usada pelos servidores de Acesso ao Cliente no ADSite 2:

  • http/mailsdc.corp.tailspintoys.com

  • http/autodiscoversdc.corp.tailspintoys.com

Configurar e verificar a configuração da credencial ASA em cada servidor de Acesso ao Cliente

Depois de criar a conta, você precisa verificar se a conta foi replicada para todos os controladores de domínio do AD DS. Especificamente, a conta precisa estar presente em cada servidor de Acesso ao Cliente que usará a credencial ASA. Em seguida, você configura a conta como a credencial ASA em cada servidor de Acesso ao Cliente em sua implantação.

Você configura a credencial ASA usando o Shell de Gerenciamento do Exchange, conforme descrito em um destes procedimentos:

  • Implantar a credencial ASA no primeiro servidor de Acesso ao Cliente do Exchange 2013

  • Implantar a credencial ASA em servidores subsequentes do Exchange 2013 Client Access

O único método com suporte para implantar a credencial ASA é usar o script RollAlternateServiceAcountPassword.ps1. Para obter mais informações e permissões necessárias para executar o script, consulte Usando o script RollAlternateserviceAccountCredential.ps1 no Shell. Após a execução do script, é recomendável verificar se todos os servidores de destino foram atualizados corretamente.

Implantar a Credencial ASA no primeiro servidor de Acesso ao Cliente do Exchange 2013

  1. Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.

  2. Execute os seguintes comandos para implantar a credencial ASA no primeiro servidor de Acesso ao Cliente do Exchange 2013:

    Cd $env:ExchangeInstallPath\Scripts
    
    .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer cas-1.corp.tailspintoys.com -GenerateNewPasswordFor tailspin\EXCH2013ASA$
    
  3. Quando você for perguntado se deseja alterar a senha da conta de serviço alternativa, responda Sim.

A seguir está um exemplo da saída mostrada quando você executa o script RollAlternateServiceAccountPassword.ps1.

========== Starting at 01/12/2015 10:17:47 ==========
Creating a new session for implicit remoting of "Get-ExchangeServer" command...
Destination servers that will be updated:

Name                                                        PSComputerName
----                                                        --------------
cas-1                                                   cas-1.corp.tailspintoys.com

Credentials that will be pushed to every server in the specified scope (recent first):

UserName
Password
--------
--------
tailspin\EXCH2013ASA$
System.Security.SecureString

Prior to pushing new credentials, all existing credentials that are invalid or no longer work will be removed from  the destination servers.
Pushing credentials to server cas-1
Setting a new password on Alternate Serice Account in Active Directory

Password change
Do you want to change password for tailspin\EXCH2013ASA$ in Active Directory at this time?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
Preparing to update Active Directory with a new password for tailspin\EXCH2013ASA$ ...
Resetting a password in the Active Directory for tailspin\EXCH2013ASA$ ...
New password was successfully set to Active Directory.
Retrieving the current Alternate Service Account configuration from servers in scope
Alternate Service Account properties:

StructuralObjectClass QualifiedUserName Last Pwd Update       SPNs
--------------------- ----------------- ---------------       ----
computer              tailspin\EXCH2013ASA$   1/12/2015 10:19:53 AM

Per-server Alternate Service Account configuration as of the time of script completion:

   Array: {mail.corp.tailspintoys.com}

Identity  AlternateServiceAccountConfiguration
--------  ------------------------------------
cas-1 Latest: 1/12/2015 10:19:22 AM, tailspin\EXCH2013ASA$
    ...

========== Finished at 01/12/2015 10:20:00 ==========

    THE SCRIPT HAS SUCCEEDED

Implantar a credencial ASA em outro servidor de Acesso ao Cliente do Exchange 2013

  1. Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.

  2. Altere diretórios para $env:\Scripts.

  3. Execute o seguinte comando para implantar a credencial ASA em outro servidor do Exchange 2013 Client Access:

    .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer cas-2.corp.tailspintoys.com -CopyFrom cas-1.corp.tailspintoys.com
    
  4. Repita a Etapa 3 para cada servidor de Acesso ao Cliente ao qual você deseja implantar a credencial ASA.

A seguir está um exemplo da saída mostrada quando você executa o script RollAlternateServiceAccountPassword.ps1.

========== Starting at 01/12/2015 10:34:35 ==========
Destination servers that will be updated:

Name                                                        PSComputerName
----                                                        --------------
cas-2                                                   cas-2.corp.tailspintoys.com

Credentials that will be pushed to every server in the specified scope (recent first):

UserName
Password
--------
--------
tailspin\EXCH2013ASA$
System.Security.SecureString

Prior to pushing new credentials, all existing credentials will be removed from the destination servers.
Pushing credentials to server cas-2
Retrieving the current Alternate Service Account configuration from servers in scope
Alternate Service Account properties:

StructuralObjectClass QualifiedUserName Last Pwd Update       SPNs
--------------------- ----------------- ---------------       ----
computer              tailspin\EXCH2013ASA$   1/12/2015 10:19:53 AM

Per-server Alternate Service Account configuration as of the time of script completion:

   Array: cas-2.corp.tailspintoys.com

Identity  AlternateServiceAccountConfiguration
--------  ------------------------------------
cas-2 Latest: 1/12/2015 10:37:59 AM, tailspin\EXCH2013ASA$
    ...

    ========== Finished at 01/12/2015 10:38:13 ==========

        THE SCRIPT HAS SUCCEEDED

Verificar a implantação da credencial ASA

  • Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.

  • Execute o seguinte comando para verificar as configurações em um servidor de Acesso ao Cliente:

    Get-ClientAccessServer CAS-3 -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration
    
  • Repita a Etapa 2 em cada servidor de Acesso ao Cliente em que você deseja verificar a implantação da credencial ASA.

A seguir está um exemplo da saída mostrada quando você executa o comando Get-ClientAccessServer acima e nenhuma credencial ASA anterior foi definida.

Name                                 : CAS-1
AlternateServiceAccountConfiguration : Latest: 1/12/2015 10:19:22 AM, tailspin\EXCH2013ASA$
                                       Previous: <Not set>
                                           ...

A seguir está um exemplo da saída mostrada quando você executa o comando Get-ClientAccessServer acima e uma credencial ASA foi definida anteriormente. A credencial ASA anterior e a data e hora em que foi definida são retornadas.

Name                                 : CAS-3
AlternateServiceAccountConfiguration : Latest: 1/12/2015 10:19:22 AM, tailspin\EXCH2013ASA$
                                       Previous: 7/15/2014 12:58:35 PM, tailspin\oldSharedServiceAccountName$
                                           ...

Associar SPNs (Nomes de Entidade de Serviço) à credencial ASA

Importante

Não associe SPNs a uma credencial ASA até que você tenha implantado essa credencial a pelo menos uma Exchange Server, conforme descrito anteriormente em Implantar a Credencial ASA no primeiro servidor de Acesso ao Cliente do Exchange 2013. Caso contrário, você experimentará erros de autenticação Kerberos.

Antes de associar os SPNs à credencial ASA, você precisa verificar se os SPNs de destino ainda não estão associados a uma conta diferente na floresta. A credencial ASA precisa ser a única conta na floresta com a qual essas SPNs estão associadas. Você pode verificar se nenhuma outra conta na floresta está associada aos SPNs executando o comando setspn da linha de comando.

Verifique se um SPN ainda não está associado a uma conta em uma floresta executando o comando setspn

  1. Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.

  2. No prompt de comando, digite o seguinte comando:

    setspn -F -Q <SPN>
    

    Onde <o SPN> é o SPN que você deseja associar à credencial ASA. Por exemplo:

    setspn -F -Q http/mail.corp.tailspintoys.com
    

    O comando não deve retornar nada. Se ele retornar algo, outra conta já estará associada ao SPN. Repita esta etapa uma vez para cada SPN que você deseja associar à credencial ASA.

Associar um SPN a uma credencial ASA usando o comando setspn

  1. Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.

  2. No prompt de comando, digite o seguinte comando:

    setspn -S <SPN> <Account>$
    

    Onde <o SPN> é o SPN que você deseja associar à credencial ASA e <à Conta> é a conta associada à credencial ASA. Por exemplo:

    setspn -S http/mail.corp.tailspintoys.com tailspin\EXCH2013ASA$
    

    Execute esse comando uma vez para cada SPN que você deseja associar à credencial ASA.

Verifique se você associou os SPNs às credenciais ASA usando o comando setspn

  1. Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.

  2. No prompt de comando, digite o seguinte comando:

    setspn -L <Account>$
    

    Em que <conta> é a conta associada à credencial ASA. Por exemplo:

    setspn -L tailspin\EXCH2013ASA$
    

    Você só precisa executar esse comando uma vez.

Habilitar a autenticação kerberos para clientes do Outlook

  1. Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.

  2. Para habilitar a autenticação kerberos para clientes do Outlook Anywhere, execute o seguinte comando em seu servidor de Acesso ao Cliente:

    Get-OutlookAnywhere -server CAS-1 | Set-OutlookAnywhere -InternalClientAuthenticationMethod  Negotiate
    
  3. Para habilitar a autenticação Kerberos para MAPI em clientes HTTP, execute o seguinte em seu servidor de Acesso ao Cliente do Exchange 2013:

    Get-MapiVirtualDirectory -Server CAS-1 | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm, Negotiate
    
  4. Repita as etapas 2 e 3 para cada servidor do Exchange 2013 Client Access em que você deseja habilitar a autenticação kerberos.

Validar a autenticação Kerberos do cliente do Exchange

Depois de configurar com êxito Kerberos e a credencial ASA, verifique se os clientes podem se autenticar com êxito, conforme descrito nessas tarefas.

Verifique se o serviço host do Serviço do Microsoft Exchange está em execução

O Serviço de Host do Serviço do Microsoft Exchange (MSExchangeServiceHost) no servidor de Acesso ao Cliente é responsável pelo gerenciamento da credencial ASA. Se esse serviço não estiver em execução, a autenticação kerberos não será possível. Por padrão, o serviço é configurado para iniciar automaticamente quando o computador é iniciado.

Para verificar se o serviço host do Serviço do Microsoft Exchange foi iniciado

  1. Clique em Iniciar, digite services.msc e selecione services.msc na lista.

  2. Na janela Serviços , localize o serviço Host do Serviço do Microsoft Exchange na lista de serviços.

  3. O status do serviço deve estar em execução. Se o status não estiver em execução, clique com o botão direito do mouse no serviço e clique em Iniciar.

Validar Kerberos do servidor de Acesso ao Cliente

Quando você configurou a credencial ASA em cada servidor de Acesso ao Cliente, você executou o cmdlet set-ClientAccessServer . Depois de executar esse cmdlet, você pode usar os logs para verificar conexões Kerberos bem-sucedidas.

Para validar se Kerberos está funcionando corretamente usando o arquivo de log HttpProxy

  1. Navegue até a pasta em que o log HttpProxy é armazenado usando o seguinte caminho:

    %ExchangeInstallPath%Logging\HttpProxy\RpcHttp
    
  2. Abra o arquivo de log mais recente e procure a palavra Negociar. A linha no arquivo de log será semelhante ao exemplo a seguir:

    2014-02-19T13:30:49.219Z,e19d08f4-e04c-42da-a6be-b7484b396db0,15,0,775,22,,RpcHttp,mail.corp.tailspintoys.com,/rpc/rpcproxy.dll,,Negotiate,True,tailspin\Wendy,tailspintoys.com,MailboxGuid~ad44b1e0-e44f-4a16-9396-3a437f594f88,MSRPC,192.168.1.77,EXCH1,200,200,,RPC_OUT_DATA,Proxy,exch2.tailspintoys.com,15.00.0775.000,IntraForest,MailboxGuidWithDomain,,,,76,462,1,,1,1,,0,,0,,0,0,16272.3359,0,0,3,0,23,0,25,0,16280,1,16274,16230,16233,16234,16282,?ad44b1e0-e44f-4a16-9396-3a437f594f88@tailspintoys.com:6001,,BeginRequest=2014-02-19T13:30:32.946Z;BeginGetRequestStream=2014-02-19T13:30:32.946Z;OnRequestStreamReady=2014-02-19T13:30:32.946Z;BeginGetResponse=2014-02-19T13:30:32.946Z;OnResponseReady=2014-02-19T13:30:32.977Z;EndGetResponse=2014-02-19T13:30:32.977Z;,PossibleException=IOException;
    

    Se você vir que o valor AuthenticationType é Negociar, o servidor está criando com êxito conexões autenticadas kerberos.

Manter a credencial ASA

Se você precisar atualizar a senha na credencial ASA periodicamente, use as etapas para configurar a credencial ASA neste artigo. Considere configurar uma tarefa agendada para executar a manutenção regular de senha. Certifique-se de monitorar a tarefa agendada para garantir a distribuição de senha em tempo hábil e evitar possíveis interrupções de autenticação.

Desativar a autenticação kerberos

Para configurar o servidor de Acesso ao Cliente para que ele não use Kerberos, dissocie ou remova os SPNs da credencial ASA. Se os SPNs forem removidos, a autenticação Kerberos não será tentada por seus clientes e os clientes configurados para usar a autenticação do Negotiate usarão o NTLM. Os clientes configurados para usar apenas Kerberos não poderão se conectar. Depois que os SPNs forem removidos, você também deverá excluir a conta.

Para remover a credencial ASA

  1. Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013 e execute o seguinte comando:

    Set-ClientAccessServer CAS-1 -RemoveAlternateServiceAccountCredentials
    
  2. Embora você não precise fazer isso imediatamente, você deve eventualmente reiniciar todos os computadores cliente para limpar o cache de tíquetes Kerberos do computador.