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
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
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.
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:
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:
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
Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.
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$
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
Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.
Altere diretórios para
$env:\Scripts
.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
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
Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.
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
Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.
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
Pressione Iniciar. Na caixa Pesquisar , digite Prompt de Comando e, na lista de resultados, selecione Prompt de Comando.
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
Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013.
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
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
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
Clique em Iniciar, digite services.msc e selecione services.msc na lista.
Na janela Serviços , localize o serviço Host do Serviço do Microsoft Exchange na lista de serviços.
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
Navegue até a pasta em que o log HttpProxy é armazenado usando o seguinte caminho:
%ExchangeInstallPath%Logging\HttpProxy\RpcHttp
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
Abra o Shell de Gerenciamento do Exchange em um servidor do Exchange 2013 e execute o seguinte comando:
Set-ClientAccessServer CAS-1 -RemoveAlternateServiceAccountCredentials
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.