2017-05-07 90 views
1

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

当SAML被用作WS-Trust和WS-Fed协议中的安全令牌时,我对这些协议的理解会感到困惑。

有兴趣了解在哪种情况下使用这些协议以及使它们与众不同。如果没有使用任何商业产品/技术参考,您的答案将很容易理解。

回答

3

在较高层次上,传统上使用WS- *协议。

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

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

这两个都使用SAML令牌。

在功能上,WS-Fed和SAML都会做同样的事情。联邦

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

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

+0

谢谢。我的理解是否正确? 1.用于Active应用的WS-Trust,用于被动和Web浏览器应用的WS-Fed和仅用于Web浏览器应用的SAML-P。 2.所有这些协议都可以使用SAML作为安全令牌。 (WS-Trust和WS-Fed中的SAML1.1和SAML-P中的SAML2.0) – Zeigeist

+1

非常多。 SAML-P中有大量的配置文件 - 浏览器就是其中之一。 – nzpcmad

2

这个问题很旧,但我努力在网上找到正确答案。

很多网上的帖子都说'被动/浏览器'客户使用WS-Fed和'主动/智能'使用WS-Trust。这可能是因为活动用例默认使用了诸如'/ ws-trust/2005'或'/ws-trust/v1.x/'之类的网址。这似乎不是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将它们称为断言...它只是一个签名并且可能是加密的XML,我认为理论上你可以在WS-Fed中使用其他Tokens,然后SAML,但我从来没有听说过任何人这样做)。