2012-04-18 3 views
1

私は次のシナリオを持っている: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.

答えて

0

...証明書について文句を同じエラー。役立つもの

Set-ADFSRelyingPartyTrust -EncryptionCertificateRevocationCheck None 

しかし、これはRP部分のチェックを無効にします。フェデレーションについて話しているので、フェデレーション・サーバーでも同じことが起こります。だからあなたもそこでそれをしなければなりません。とにかく、それは私が得るエラーを変更しました - 私はまだATMを連合できません。

我々は何回かは、どこにでも(ADFSによって生成された自己署名certsの)署名と暗号化証明書のインストールにもたらした
Set-ADFSRelyingPartyTrust -TargetName <relyingpartytrustName> -EncryptionCertificateRevocationCheck None 

(つまり、サーバはWCFのホスティング:

+0

これは私が編集2で書いたものです。チェックをCheckEndCertに設定することもできます。 – flayn

1

おそらくRP-Service証明書を、WCFクライアントが実行されているマシンのTrusted Peopleストアに追加するようにしてください。これは、ADFSを使用してフェデレーションでWCFコールをテストするために自己署名証明書を使用するときに行ったことでした。

関連する問題