Certificate ADFS 2.0-请求不同AD中服务的令牌

Certificate ADFS 2.0-请求不同AD中服务的令牌,certificate,wif,adfs2.0,Certificate,Wif,Adfs2.0,我有以下情况: Active Directory 1:WCF客户端,ADFS 2.0(STS) Active Directory 2:WCF服务(依赖方) 我已将RP添加到ADFS,但当我从ADFS请求令牌时,我收到以下错误:System.ServiceModel.FaultException:ID3242:无法验证或授权安全令牌 查看ADF的事件日志,我发现匹配错误: 尝试为生成证书链时出错 依赖方信托http://XXXXX/Service1/"证书", 由指纹“XXXXXXXXXX”标识。

我有以下情况:

Active Directory 1:WCF客户端,ADFS 2.0(STS)

Active Directory 2:WCF服务(依赖方)

我已将RP添加到ADFS,但当我从ADFS请求令牌时,我收到以下错误:System.ServiceModel.FaultException:ID3242:无法验证或授权安全令牌

查看ADF的事件日志,我发现匹配错误:

尝试为生成证书链时出错 依赖方信托http://XXXXX/Service1/"证书", 由指纹“XXXXXXXXXX”标识。可能的原因是 证书已被吊销,无法删除证书链 根据依赖方信任的加密指定进行验证 证书吊销设置或证书不在其范围内 有效期

您可以使用AD FS 2.0的Windows PowerShell命令来配置 依赖方加密证书的吊销设置。 依赖方信任的加密证书吊销设置: CheckChainExcludeRoot生成时发生以下错误 证书链:未知错误。未知错误

用户操作:确保依赖方信任的加密 证书有效且未被吊销。确保AD FS 2.0 如果吊销设置无效,则可以访问证书吊销列表 不指定“无”或“仅缓存”设置。验证您的代理 服务器设置。有关如何验证代理的详细信息,请参见 服务器设置,请参阅AD FS 2.0故障排除指南 (http://go.microsoft.com/fwlink/?LinkId=182180)

看起来ADFS不信任来自RP的签名证书(可以理解,颁发签名证书的CA位于不同的AD中)。 可以从两个活动目录访问CertificateRevokationList

我已将CA证书添加到“本地计算机”的受信任根证书中,但我认为问题在于验证机制

我必须配置什么才能让ADF发出使用正确证书签名的令牌,或者如何让ADF相信证书是有效的

编辑:

我已尝试使用powershell命令更改revokation检查:

 Set-ADFSRelyingPartyTrust  -SigningCertificateRevocationCheck CheckEndCert
但是没有运气: Set-ADFSRelyingPartyTrust:无法使用指定的命名参数解析参数集

At line:1 char:26
+ Set-ADFSRelyingPartyTrust <<<<   -SigningCertificateRevocationCheck CheckEndCert
    + CategoryInfo          : InvalidArgument: (:) [Set-ADFSRelyingPartyTrust], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.IdentityServer.PowerShell.Commands.SetRelyingPartyTrustC
   ommand
但是现在我在Active Directory 1中的客户端抱怨证书

System.ServiceModel.Security.SecurityNegotiationException:SOAP 安全谈判 'http://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Service1/"为目标", 'http://XXXXXXXXXXXXXXXXX/Service1/"失败了。有关详细信息,请参见内部异常 更多细节。--> System.IdentityModel.Tokens.SecurityTokenValidationException: X.509证书CN=RP服务链构建失败。证书 所使用的具有无法验证的信任链。替换 认证或更改certificateValidationMode。证书 无法将链构建到受信任的根权限


我也面临同样的错误。使用什么有帮助

Set-ADFSRelyingPartyTrust  -EncryptionCertificateRevocationCheck None

但这只会禁用RP零件上的检查。因为我们谈论的是联邦,所以在联邦服务器上也会发生同样的情况。所以你也必须在那里做。不管怎样,它只改变了我得到的错误-我仍然不能联合ATM。

我面临着同样的错误。使用什么有帮助

Set-ADFSRelyingPartyTrust  -EncryptionCertificateRevocationCheck None

但这只会禁用RP零件上的检查。因为我们谈论的是联邦,所以在联邦服务器上也会发生同样的情况。所以你也必须在那里做。无论如何,它只改变了我得到的错误-我仍然不能联合ATM。

对我有效的命令是:

Set-ADFSRelyingPartyTrust  -TargetName <relyingpartytrustName> -EncryptionCertificateRevocationCheck None
设置ADFSRelyingPartyTrust-TargetName-EncryptionCertificateReliationCheck无

我们多次在任何地方(即承载WCF服务的服务器)安装签名和加密证书(ADFS生成的自签名证书)。

适用于我的命令如下:

Set-ADFSRelyingPartyTrust  -TargetName <relyingpartytrustName> -EncryptionCertificateRevocationCheck None
设置ADFSRelyingPartyTrust-TargetName-EncryptionCertificateReliationCheck无

我们多次在任何地方(即承载WCF服务的服务器)安装签名和加密证书(ADFS生成的自签名证书)。

也许您应该尝试将RP服务证书添加到运行WCF客户端的计算机上的受信任人员存储中。这就是我在使用自签名证书测试与ADFS联合下的WCF调用时所做的。

也许您应该尝试将您的RP服务证书添加到您的WCF客户端运行的计算机上的受信任人员存储中。这就是我使用自签名证书在ADFS联合下测试WCF调用时所做的。

这是我在编辑2中写的。您也可以尝试将支票设置为CheckEndCert。这是我在编辑2中写的。您也可以尝试将支票设置为CheckEndCert。