Erro de segurança ao adicionar um servidor ADFS secundário

1

Eu criei um servidor ADFS de acordo com o guia sobre o technet . No entanto, ao tentar adicionar um servidor ADFS secundário usando a última parte deste guia no technet , o processo falha.

PS > Import-Module ADFS
PS > $serviceAccountCredential = Get-Credential -Message "Enter the credential for the Federation Service Account."
PS > Add-AdfsFarmNode '
>> -CertificateThumbprint:"REDACTED" '
>> -OverwriteConfiguration:$true '
>> -PrimaryComputerName:"awsfed01.ad.redacted.com" '
>> -ServiceAccountCredential:$serviceAccountCredential
>>
Add-AdfsFarmNode : MSIS7711: PolicyOperationFault
At line:1 char:1
+ Add-AdfsFarmNode '
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Add-AdfsFarmNode], FaultException
    + FullyQualifiedErrorId : DeploymentTask,Microsoft.IdentityServer.Deployment.Commands.JoinFarmCommand


Message                                 Context                                                                  Status
-------                                 -------                                                                  ------
Unable to synchronize local database... DeploymentTask                                                            Error

Os seguintes erros agora aparecem no log de eventos no servidor que estou tentando configurar a cada cinco minutos:

Origem: AD FS, ID do evento 344 :

There was an error doing synchronization. Synchronization of data from the primary federation server to a secondary federation server did not occur. 

Origem: AD FS, ID do evento 345:

There was a communication error during AD FS configuration database synchronization. Synchronization of data from the primary federation server to a secondary federation server did not occur. 

Additional Data 

Master Name : awsfed01.ad.redacted.com 
Endpoint Uri : http://awsfed01.ad.redacted.com/adfs/services/policystoretransfer 
Exception details: 
System.ServiceModel.Security.SecurityNegotiationException: The caller was not authenticated by the service. ---> System.ServiceModel.FaultException: The request for security token could not be satisfied because authentication failed.
   at System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target)
   at System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState sspiState)

O log de auditoria de segurança do servidor ADFS principal contém falhas de auditoria sempre que as tentativas secundárias de se conectar aos detalhes a seguir:

An account failed to log on.

Subject:
    Security ID:        NULL SID
    Account Name:       -
    Account Domain:     -
    Logon ID:       0x0

Logon Type:         3

Account For Which Logon Failed:
    Security ID:        NULL SID
    Account Name:       msa-adfs$
    Account Domain:     RDC

Failure Information:
    Failure Reason:     An Error occured during Logon.
    Status:         0x80090302
    Sub Status:     0xC0000418

Process Information:
    Caller Process ID:  0x0
    Caller Process Name:    -

Network Information:
    Workstation Name:   AWSFED20
    Source Network Address: -
    Source Port:        -

Detailed Authentication Information:
    Logon Process:      NtLmSsp 
    Authentication Package: NTLM
    Transited Services: -
    Package Name (NTLM only):   -
    Key Length:     0

Detalhes do ambiente

  • Estou usando o Windows Server 2012 R2 com o ADFS 3.0
  • Meu domínio é ad.redacted.com (ou RDC \ ). Além disso, eu tenho redacted.com e redacted.co.uk como UPNs.
  • Estou usando o banco de dados WID, não um servidor SQL externo.
  • Eu usei uma conta de serviço gMSA criada manualmente para minha instalação principal do AD FS denominada RDC \ msa-adfs $ - e estou usando essa mesma conta ao tentar configurar o servidor ADFS secundário. Eu configurei seu SPN - de acordo com várias fontes na Internet - para o seguinte:
    • host / adfs.ad.redacted.com
    • link
    • host / adfs.ad.redacted.com
    • link
  • O nome do servidor principal do ADFS é awsfed01.ad.redacted.com
  • O servidor ADFS secundário - que estou tentando configurar - name é awsfed02.ad.redacted.com
  • Existe um registro DNS CNAME para adfs.ad.redacted.com apontando para awsfed01.ad.redacted.com
  • Eu usei um certificado SSL assinado por uma CA externa, com adfs.ad.redacted.com como o domínio principal e os seguintes Nomes alternativos de assunto:
    • adfs.ad.redacted.com
    • enterpriseregistration.ad.redacted.com
    • enterpriseregistration.redacted.com
    • enterpriseregistration.redacted.co.uk
  • Os dois servidores do ADFS estão configurados com o firewall do Windows ativado, mas a rede está configurada para permitir todo o tráfego entre eles

Eu tentei configurar isso várias vezes em um servidor em branco. Cada vez, o servidor ADFS secundário falha da mesma maneira com a mesma mensagem de erro.

Atualização: reproduza com o PowerShell

Para tentar reproduzir isso da maneira mais confiável possível, recriou o que estou fazendo com o PowerShell.

Pré-requisitos: * Controlador de domínio awsdc01 para o domínio ad.redacted.com também conhecido como RDC \ * Dois servidores de federação: awsfed10 , awsfed20 em um grupo chamado Servidores do ADFS

No awsdc01:

   New-ADServiceAccount -Name msa-adfs '
       -DNSHostName adfs.ad.redacted.com '
       -PrincipalsAllowedToRetrieveManagedPassword "ADFS Servers" 
       -ServicePrincipalNames "http/adfs.ad.redacted.com"

Executado com sucesso.

Em awsfed10:

   Install-WindowsFeature adfs-federation –IncludeManagementTools
   Add-WindowsFeature RSAT-AD-PowerShell

   $password = ConvertTo-SecureString -String "Redacted" -Force -AsPlainText
   Import-PfxCertificate -FilePath C:\files\cert.pfx  cert:\localMachine\my -Password $password

   Import-Module ActiveDirectory
   Import-Module ADFS

   Install-ADServiceAccount msa-adfs
   Install-AdfsFarm -CertificateThumbprint:"XXX" -FederationServiceName:"adfs.ad.redacted.com" -GroupServiceAccountIdentifier RDC\msa-adfs$
   Initialize-ADDeviceRegistration -ServiceAccountName RDC\msa-adfs$
   Enable-AdfsDeviceRegistration

Tudo executado com sucesso.

Em awsfed20:

  Install-WindowsFeature adfs-federation –IncludeManagementTools
   Add-WindowsFeature RSAT-AD-PowerShell

   $password = ConvertTo-SecureString -String "Redacted" -Force -AsPlainText
   Import-PfxCertificate -FilePath C:\files\cert.pfx  cert:\localMachine\my -Password $password

   Import-Module ActiveDirectory
   Import-Module ADFS

   Install-ADServiceAccount msa-adfs
   Install-AdfsFarm -CertificateThumbprint:"XXX" -PrimaryComputerName:"awsfed10.ad.redacted.com" -GroupServiceAccountIdentifier RDC\msa-adfs$

Falha com os mesmos erros acima.

    
por Cameron 12.10.2016 / 16:40

1 resposta

2

O GMSA deve ser criado com um SPN de host (não http) com base no parâmetro FederationServiceName. Portanto, se você usar adfs.ad.redacted.com, o SPN será host / adfs.ad.redacted.com.

Você não deve usar entradas CNAME para apontar adfs.ad.redacted.com para servidores individuais. Isso causará problemas de autenticação do Kerberos, conforme explicado no link cenário 2.

Eu suponho que você tenha algum balanceamento de carga em uso. Portanto, o adfs.ad.redacted.com deve ser resolvido para o IP virtual do balanceador de carga que fica na frente dos nós de farm do AD FS.

O bloqueio do NTLM está em uso? Porque parece que sim. link tem mais detalhes sobre o bloqueio do NTLM.

Use apenas a auditoria NTLM por agora (não bloqueie) e tente adicionar novamente o segundo nó depois de corrigir a configuração, conforme sugerido anteriormente.

Se você ainda tiver problemas, sugiro criar um caso de suporte com a Microsoft.

    
por 15.10.2016 / 18:34