c# – 使用联合安全性保护服务器应用程序之间的WCF服务调用
作者:互联网
我有两个使用相同STS进行身份验证的MVC站点.我需要创建一个WCF服务作为其中一个站点的一部分,允许其他站点检索数据.
这些站点可能位于可通过Internet访问的不同计算机上(尽管目前它们位于同一台计算机上),并且只能从客户端站点访问WCF服务.用于登录客户端站点的身份验证令牌应传递给WCF服务.
我一直在寻找可用的不同WS-Security选项(传输,消息等)并且它不是100%下沉,我觉得我最终会实现一些似乎安全但实际上并不安全的东西缺乏理解.任何帮助非常感谢.
编辑:
我的第一次尝试是使用传输层安全性,并在IIS中使用require SSL设置WCF服务虚拟目录.但是这给我留下了一个错误:
“根据验证程序,远程证书无效.”
我无法确保特定客户端连接到服务,只有客户端具有来自可信CA的证书.至少据我所知.我可能在这里错过了一些重要的东西.
解决方法:
The authentication token used to log into the client site should be
passed through to the WCF service.
在这种情况下,您应该从STS请求“ActAs”令牌:
>应将WCF服务配置为STS的依赖方.
> MVC站点应回调STS并请求特定于WCF服务的ActAs令牌.
> MVC站点使用ActAs令牌来调用服务.
复杂性的动机:Delegation, or traversing multilayer architectures
既然你提到了WS标准:
Requesting Delegation (ActAs) Tokens using WSTrustChannel (as opposed to Configuration Madness)
不知道你的STS很难说更多,但谷歌搜索“ActAs令牌”可能会给你你需要的东西.
标签:c,wcf,ws-security,federated-identity,ws-federation 来源: https://codeday.me/bug/20190708/1405699.html