我已经按照technet上的指南创build了一个ADFS服务器。 但是, 在technet上尝试使用本指南的后半部分添加辅助ADFS服务器时,该过程将失败。
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
以下错误现在出现在我每五分钟尝试configuration的服务器上的事件日志中:
来源:AD FS,事件ID 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,事件ID 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
我曾尝试从空白服务器多次configuration。 每次次ADFS服务器都以相同的方式出现相同的错误消息。
为尽可能可靠地重现此问题,我重新创build了PowerShell。
先决条件:*域控制器awsdc01域ad.redacted.com aka 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$
与上面相同的错误失败。
必须使用基于FederationServiceName参数的主机SPN(而非http)创buildGMSA。 因此,如果您使用adfs.ad.redacted.com,则SPN将为host / adfs.ad.redacted.com。
您不应该使用CNAME条目将adfs.ad.redacted.com指向单个服务器。 这将导致Kerberos身份validation问题,如https://blogs.technet.microsoft.com/askds/2009/06/22/internet-explorer-behaviors-with-kerberos-authentication/scheme2中所述。
我假设你有一些使用中的负载平衡。 因此,adfs.ad.redacted.com应parsing为位于AD FS服务器场节点前面的负载均衡器的虚拟IP。
NTLM阻止使用? 因为它看起来如此。 https://blogs.technet.microsoft.com/askds/2009/10/08/ntlm-blocking-and-you-application-analysis-and-auditing-methodologies-in-windows-7/有更详细的NTLM阻止。
现在只需要使用NTLM审计(不要阻塞),并按照前面的build议更正configuration之后重试添加第二个节点。
如果你仍然有问题,我build议向微软提出支持案例。