Назад | Перейти на главную страницу

Ошибка безопасности при добавлении вторичного сервера ADFS

Я создал сервер ADFS в соответствии с гид по технет. Однако при попытке добавить вторичный сервер ADFS с помощью последняя часть этого руководства на technet, процесс не выполняется.

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

Следующие ошибки теперь появляются в журнале событий на сервере, который я пытаюсь настроить каждые пять минут:

Источник: AD FS, идентификатор события 344:

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

Источник: AD FS, идентификатор события 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)

Журнал аудита безопасности первичного сервера ADFS содержит отчеты об ошибках аудита каждый раз, когда вторичный сервер пытается подключиться, со следующими данными:

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

Детали окружающей среды

Я пытался настроить это несколько раз с пустого сервера. Каждый раз вторичный сервер ADFS выходит из строя одинаково с одним и тем же сообщением об ошибке.

Обновление: воспроизведение с помощью PowerShell

Чтобы попытаться воспроизвести это как можно более надежно, я воссоздал то, что делаю, с помощью PowerShell.

Предварительные требования: * Контроллер домена awsdc01 для домена ad.redcted.com он же RDC \ * Два сервера федерации: awsfed10, awsfed20 в группе под названием Серверы ADFS

На awsdc01:

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

Выполнено успешно.

На 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

Все выполнено успешно.

На 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$

Не удалось с теми же ошибками, что и выше.

GMSA должен быть создан с SPN узла (не http) на основе параметра FederationServiceName. Поэтому, если вы используете adfs.ad.redcted.com, то SPN будет host / adfs.ad.redcted.com.

Вы не должны использовать записи CNAME для указания adfs.ad.redcted.com на отдельные серверы. Это вызовет проблемы с аутентификацией Kerberos, как описано в https://blogs.technet.microsoft.com/askds/2009/06/22/internet-explorer-behaviors-with-kerberos-authentication/ сценарий 2.

Я предполагаю, что вы используете балансировку нагрузки. Следовательно, adfs.ad.redcted.com должен разрешать виртуальный IP-адрес балансировщика нагрузки, который находится перед узлами фермы AD FS.

Используется ли NTLM-блокировка? Потому что так кажется. https://blogs.technet.microsoft.com/askds/2009/10/08/ntlm-blocking-and-you-application-analysis-and-auditing-methodologies-in-windows-7/ есть более подробная информация о блокировке NTLM.

Просто используйте сейчас аудит NTLM (не блокируйте) и повторите попытку добавления 2-го узла после исправления конфигурации, как было предложено ранее.

Если у вас по-прежнему возникают проблемы, я предлагаю обратиться в службу поддержки Microsoft.

Если кто-то страдает в моем случае, это был локальный брандмауэр, отключенный для синхронизации, а также по электронной почте MS мы отключили прокси NTLM, поэтому мы включили его для синхронизации, а затем снова отключили.