使用联合安全性保护服务器应用程序之间的WCF服务调用

时间:2014-03-14 10:36:45

标签: c# wcf ws-security federated-identity ws-federation

我有两个使用相同STS进行身份验证的MVC站点。我需要创建一个WCF服务作为其中一个站点的一部分,允许其他站点检索数据。

这些网站可能位于可通过互联网访问的不同计算机上(尽管目前它们位于同一台计算机上),并且只能从客户端站点访问WCF服务。用于登录客户端站点的身份验证令牌应传递给WCF服务。

我一直在关注可用的不同WS-Security选项(传输,消息等),并且它不是100%下沉,我觉得我最终会实现某些功能这看起来很安全,但由于缺乏了解,实际上并不安全。任何帮助非常感谢。

编辑:

我的第一次尝试是使用传输层安全性,并在IIS中使用require SSL设置WCF服务虚拟目录。但是这给我留下了错误:

"根据验证程序,远程证书无效。"

我无法确保特定客户端连接到该服务,只是客户端拥有来自可信CA的证书。至少据我所知。我可能在这里缺少一些重要的东西。

1 个答案:

答案 0 :(得分:1)

  

用于登录客户端站点的身份验证令牌应该是   传递给WCF服务。

在这种情况下,你应该要求" ActAs"来自STS的令牌:

  1. 应将WCF服务配置为STS的依赖方。
  2. MVC站点应回调STS并请求特定于WCF服务的ActAs令牌。
  3. MVC网站使用ActAs令牌来呼叫服务。
  4. 复杂性的动机:Delegation, or traversing multilayer architectures

    既然你提到了WS标准: Requesting Delegation (ActAs) Tokens using WSTrustChannel (as opposed to Configuration Madness)

    不知道你的STS很难说更多,但谷歌搜索" ActAs令牌"可能会给你你需要的东西。