Azure中的WCF声称我的证书不匹配,但我认为我没有

时间:2012-08-16 19:54:23

标签: c# wcf .net-4.0 azure

为什么我会收到此错误,这究竟是什么意思?除了不匹配的证书设置之外,还有其他什么吗?

我有一个本地运行的单元测试,它在我们的Active Federation数据中心点击ADFS代理,然后命中我们在Azure中运行的WCF Web服务(Web角色)。客户端错误输出MessageSecurityException。因此,查看服务器的服务日志,它会记录异常:

Cannot resolve KeyInfo for decryption: KeyInfo 'SecurityKeyIdentifier
    (
    IsReadOnly = False,
    Count = 1,
    Clause[0] = EncryptedKeyIdentifierClause(EncryptedKey = abcdefg123456==, Method 'http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p')
    )
', available tokens 'System.ServiceModel.Security.AggregateTokenResolver'.

我在网上找到的一切都说明我的客户端和服务器之间的证书不匹配。但我对这些证书引用进行了双重,三重和四重检查,它们是相同的。客户端(本地单元测试)端点:

  <endpoint address="https://mydomain.com/TestService.svc"
            binding="customBinding"
            bindingConfiguration="WS2007FederationHttpBinding_ISayHelloService"
            contract="ActiveFederationHelpers.Tests.ISayHelloService"
            name="WS2007FederationHttpBinding_ISayHelloService">
    <identity>
      <certificateReference findValue="D4ECD7FF6A551FAA040BA0B62B77B8EA0F11CD16"
                            storeLocation="LocalMachine"
                            storeName="My"
                            x509FindType="FindByThumbprint" />
    </identity>
  </endpoint>

我的服务器的服务配置(我RDP进入一个Azure实例,从那里拉出来确认它真的是我认为的):

<serviceCertificate>
    <certificateReference findValue="D4ECD7FF6A551FAA040BA0B62B77B8EA0F11CD16" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" />
</serviceCertificate>

我已确认这些证书都安装在我的本地计算机(单元测试)和Azure服务器(Web服务服务器)上。我甚至已经确认指纹是我配置中的内容。我已经在本地环境中成功运行了。唯一的区别是证书,URI和Azure的引入。

我已经仔细检查过的其他一些事情:

  1. 不,我没有复制/粘贴带有unicode字符的指纹。我正在重复使用我的SSL证书来完成我的服务,并且SSL工作完美,所以这不是指纹中的错字。
  2. 此证书的旧版本或替代版本可能会让我感到困惑。就像我说的那样,每当我确保安装它时,我就一直在检查证书的指纹(在MMC - &gt; Certs中)。

1 个答案:

答案 0 :(得分:0)

最终,ADFS配置错误,不知怎的,这就是导致的错误。错误配置是由于我的联合身份验证服务名称不是解析为ADFS代理的主机名(只是ADFS服务器本身)。围绕我们的公共代理主机名重新架构我们的ADFS设置为我们解决了这些问题。

我怀疑这不是Azure之外的问题,原因是联盟服务名称解析为内部服务器而不是外部代理,Azure只能访问外部代理。

无论哪种方式,故事的道德(几乎没有人似乎谈论)是你的联邦服务名称必须是公共URI ,如果你希望使用它的代理,那代理必须解析为该公共URI!

相关问题