私は次のシナリオを持っている:ADFS 2.0 - サービスに対するリクエストトークン異なるADで
Active Directoryの1:WCFクライアント、ADFS 2.0(STS)
Active Directoryの2:WCFサービス(信頼当事者)
私はRPをADFSに追加しましたが、ADFSからトークンを要求すると、次のエラーが発生します。System.ServiceModel.FaultException:ID3242:セキュリティトークンを認証または認可できませんでした。 ADFSのイベントログを見ると
私はマッチングエラーを見つける:ADFSは、署名証明書を発行したCAがでている、理解しやすい(RPから署名証明書を信頼しないよう
An error occurred during an attempt to build the certificate chain for the relying party trust 'http://XXXXX/Service1/' certificate identified by thumbprint 'XXXXXXXXXXXX'. Possible causes are that the certificate has been revoked, the certificate chain could not be verified as specified by the relying party trust's encryption certificate revocation settings or certificate is not within its validity period.
You can use Windows PowerShell commands for AD FS 2.0 to configure the revocation settings for the relying party encryption certificate. Relying party trust's encryption certificate revocation settings: CheckChainExcludeRoot The following errors occurred while building the certificate chain: Unknown error. Unknown error.
User Action: Ensure that the relying party trust's encryption certificate is valid and has not been revoked. Ensure that AD FS 2.0 can access the certificate revocation list if the revocation setting does not specify "none" or a "cache only" setting. Verify your proxy server setting. For more information about how to verify your proxy server setting, see the AD FS 2.0 Troubleshooting Guide (http://go.microsoft.com/fwlink/?LinkId=182180).
が見えます別のAD)。 CertificateRevokationListは両方のActive Directoryから到達可能です。
"ローカルコンピュータ"の信頼されたルート証明書にCA証明書を追加しましたが、問題は検証メカニズムだと思います。
ADFSに適切な証明書で署名されたトークンを発行させるにはどうすればよいですか?また、証明書が有効であることをADFSに納得させるにはどうすればよいですか?
EDIT:
私はPowerShellコマンドでrevokationチェックを変更しようとしている:
Set-ADFSRelyingPartyTrust -SigningCertificateRevocationCheck CheckEndCert
が、運を持つ: セットADFSRelyingPartyTrust:パラメータセットが指定された名前付きを使用して解決することはできませんパラメーター。
At line:1 char:26
+ Set-ADFSRelyingPartyTrust <<<< -SigningCertificateRevocationCheck CheckEndCert
+ CategoryInfo : InvalidArgument: (:) [Set-ADFSRelyingPartyTrust], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.IdentityServer.PowerShell.Commands.SetRelyingPartyTrustC
ommand
EDIT 2: これが働いた:
(Get-ADFSRelyingPartyTrust) | Set-ADFSRelyingPartyTrust -EncryptionCertificateRevocationCheck CheckEndCert
が、現在はActive Directoryの1の私のクライアントは、私が直面してる
System.ServiceModel.Security.SecurityNegotiationException: SOAP security negotiation with 'http://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Service1/' for target 'http://XXXXXXXXXXXXXXXXX/Service1/' failed. See inner exception for more details. ---> System.IdentityModel.Tokens.SecurityTokenValidationException: The X.509 certificate CN=RP-Service chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. A certificate chain could not be built to a trusted root authority.
これは私が編集2で書いたものです。チェックをCheckEndCertに設定することもできます。 – flayn