使用Identity和Access工具为Thinktecture.IdentityServer配置WIF / WCF

时间:2014-10-15 20:01:47

标签: wcf wif thinktecture-ident-server

注意:已构建github repo来演示导致这些问题的问题。

在创建WIF安全WCF服务时,MSDN文档建议使用Visual Studio的身份和访问工具。在服务项目上运行该工具后,以下节点将添加到web.config [commit 0472287]:

<ws2007FederationHttpBinding>
  <binding name="">
    <security mode="Message">
      <message>
        <issuerMetadata address="https://localhost/adfs/services/trust/mex" />
       </message>
     </security>
   </binding>
 </ws2007FederationHttpBinding>

身份工具添加了错误的issuerMetadata地址,根本不包括issure节点。值得庆幸的是,所有引用证书指纹的节点都是正确创建的。向此服务的客户端项目添加服务引用会导致客户端上的配置无效。在如下更改消息节点的内容后,创建对服务的服务引用会留下几乎可用的客户端(请参阅第二个问题)[commit 758052d]。

      <message>
        <issuer address="https://localhost:44300/issue/wstrust/mixed/username" binding="ws2007HttpBinding" bindingConfiguration="" />
        <issuerMetadata address="https://localhost:44300/issue/wstrust/mex" />
      </message>

第一个问题在设置导致绑定未正确配置的身份工具时,我做错了吗?生成的地址在STS FederationMetadata.xml文件中不存在,因此我不确定它的来源。

正确配置服务后,客户端的服务参考几乎即插即用。出于某种原因,它没有在WS2007FederationHttpBinding中为发行者指定绑定配置。添加绑定并为WIF客户端创建绑定配置以获取令牌将导致客户端处于工作状态[commit 39a4cbc]。

第二个问题更新服务web.config允许自动生成其余的客户端配置。我是否遗漏了客户端还要自动配置绑定的内容?

所有这些缺失的元素都可以在IdentityMetadata.xml文件中查找,该文件是身份工具所需要的,以及两个项目都知道的FederationMetadata服务。似乎应该有一些东西可以使这些配置正确而无需人工干预。

注意:已构建github repo来演示导致这些问题的问题。

0 个答案:

没有答案