web-dev-qa-db-ja.com

セカンダリADFSサーバーを追加するときのセキュリティエラー

technetのガイド に従って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

次のエラーが、5分ごとに構成しようとしているサーバーのイベントログに表示されます。

ソース: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

環境の詳細

  • ADFS3.0でWindowsServer 2012R2を使用しています
  • 私のドメインはad.redacted.com(またはRDC \)です。さらに、UPNとしてredacted.comredacted.co.ukがあります。
  • 外部SQLサーバーではなく、WIDデータベースを使用しています。
  • RDC\msa-adfs $という名前のプライマリADFSインストール用に手動で作成したgMSAサービスアカウントを使用し、セカンダリADFSサーバーを構成しようとするときにこれと同じアカウントを使用しています。私はそのSPNを-インターネット上のさまざまな情報源に従って-次のように構成しました:
    • Host/adfs.ad.redacted.com
    • http/adfs
    • Host/adfs.ad.redacted.com
    • http/adfs
  • プライマリADFSサーバーの名前はawsfed01.ad.redacted.com
  • 構成しようとしているセカンダリADFSサーバーの名前はawsfed02.ad.redacted.com
  • adfs.ad.redacted.comawsfed01.ad.redacted.comを指すDNSCNAMEレコードがあります
  • adfs.ad.redacted.comをプライマリドメインとして、次のサブジェクト代替名を使用して、外部CAによって署名されたSSL証明書を使用しました:
    • adfs.ad.redacted.com
    • enterpriseregistration.ad.redacted.com
    • enterpriseregistration.redacted.com
    • enterpriseregistration.redacted.co.uk
  • 両方のADFSサーバーはWindowsファイアウォールを有効にして構成されていますが、ネットワークはサーバー間のすべてのトラフィックを許可するように構成されています

空のサーバーからこれを複数回構成してみました。毎回、セカンダリADFSサーバーは同じエラーメッセージで同じ方法で失敗します。

更新:PowerShellで再現

これを可能な限り確実に再現するために、PowerShellで行っていることを再現しました。

前提条件:*ドメインコントローラーawsdc01ドメイン用ad.redacted.com別名RDC \ * 2つのフェデレーションサーバー:awsfed1awsfed2ADFS Serversという名前のグループ内

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$

上記と同じエラーで失敗しました。

1
Cameron

GMSAは、FederationServiceNameパラメーターに基づいて(httpではなく)ホストSPNを使用して作成する必要があります。したがって、adfs.ad.redacted.comを使用する場合、SPNはHost /adfs.ad.redacted.comになります。

Adfs.ad.redacted.comを個々のサーバーにポイントするためにCNAMEエントリを使用しないでください。 https://blogs.technet.Microsoft.com/askds/2009/06/22/internet-Explorer-behaviors-with-kerberos-authentication/ シナリオで説明されているように、これによりKerberos認証の問題が発生します。 2.2。

負荷分散を使用していると思います。したがって、adfs.ad.redacted.comは、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監査を使用して(ブロックしないでください)、前に提案したように構成を修正した後、2番目のノードの追加を再試行してください。

それでも問題が解決しない場合は、マイクロソフトにサポートケースを提出することをお勧めします。

2
maweeras

私の場合、誰かが苦しんでいる場合は、ローカルファイアウォールの同期が無効になっており、MS固有の電子メールによって、NTLMプロキシが無効になっているため、同期を有効にしてから再度無効にしました。

0
Max