WS-Trust,WS-Fed和SAML 1.1 / 2.0协议之间的区别

时间:2017-05-07 04:05:34

标签: saml-2.0 adfs federated-identity ws-federation ws-trust

WS-Trust,WS-Fed和SAML 1.1 / 2.0协议之间有什么区别?

当SAML用作WS-Trust和WS-Fed协议中的安全令牌时,我对这些协议的理解会变得混乱。

有兴趣了解这些协议使用的场景以及它们与众不同的原因。如果没有使用商业产品/技术参考,您的答案将很容易理解。

2 个答案:

答案 0 :(得分:5)

在较高的层面上,微软一直使用WS- *协议。

SAML-P(P for protocol)由开源运动使用,因此也是Java。

WS-Fed有两个配置文件 - 主动和被动。 Active是针对WCF(WS-Trust),被动是基于浏览器(WS-Fed通过登录页面)。

这两个都使用SAML令牌。

从功能上讲,WS-Fed和SAML都做同样的事情。联合

如果将两个ADFS(Microsoft IDP)联合在一起,则使用WS-Fed。如果你添加Sharepoint,它也使用WS-Fed。传递的令牌采用SAML令牌格式。

如果您有一个使用Spring的Java应用程序,那么它将通过SAML-P挂钩到ADFS。传递的令牌采用SAML令牌格式。

答案 1 :(得分:2)

这个问题已经过时但我在网上找到了正确的答案。

许多在线帖子都说,'被动/浏览器'客户端使用WS-Fed和'active / smart'使用WS-Trust。这可能是因为活动用例默认使用了像'/ ws-trust / 2005'或'/ws-trust/v1.x/'这样的URL。这似乎不是100%准确。这本伟大而免费的书:基于声明的身份,第二版帮助我解决了这个问题,我终于找到了一个令人满意的答案:

许多这些体系结构的目标是启用与浏览器或智能客户端的联合。与智能客户端的联合基于WS-Trust和WS-Federation Active Requestor Profile。

这些协议描述了智能客户端(例如基于Windows的应用程序)和服务(例如WCF服务)之间的通信流,以便从发行方请求令牌,然后将该令牌传递给服务以进行授权。

与浏览器的联合基于WS-Federation Passive Requestor Profile,它描述了浏览器和Web应用程序之间的相同通信流。它依赖于浏览器重定向,HTTP GET和POST来请求和传递令牌。

SAMLP只是一个不同的协议,当谈到事物的传达方式,如重定向URL等,但差异不相关(在大多数情况下),只是依赖客户端支持(例如Java将使用SAML) )。最大的区别在于我认为SAMLP允许身份提供商发起的用例(在我看来是最安全的),用户在身份提供商处启动(例如ADFS服务器的Web代理,=声明提供商) MS术语),而不是从Web服务开始,然后被重定向到服务提供商(=以MS术语的中继方)。此外,当我们谈论SAML时,我们通常指的是SAML 2.0,而WS-Fed使用SAML 1.x令牌(而MS称它们为令牌,SAML称它们为Assertion ......它只是一个已签名且可能加密的XML,我认为理论上你可以在WS-Fed中使用其他令牌然后使用SAML,但我从来没有听说过任何人真正这样做过)。