Я создал сервер 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.
Предварительные требования: * Контроллер домена awsdc01 для домена ad.redcted.com он же RDC \ * Два сервера федерации: awsfed10, awsfed20 в группе под названием Серверы ADFS
New-ADServiceAccount -Name msa-adfs `
-DNSHostName adfs.ad.redacted.com `
-PrincipalsAllowedToRetrieveManagedPassword "ADFS Servers"
-ServicePrincipalNames "http/adfs.ad.redacted.com"
Выполнено успешно.
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
Все выполнено успешно.
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, поэтому мы включили его для синхронизации, а затем снова отключили.