Single sign on 什么';ADF、WIF、WS-Federation、SAML和STS之间的区别是什么?

Single sign on 什么';ADF、WIF、WS-Federation、SAML和STS之间的区别是什么?,single-sign-on,wif,saml,adfs,ws-federation,Single Sign On,Wif,Saml,Adfs,Ws Federation,这些是用于Microsoft服务单点登录的众多技术和流行语 有人能解释一下ADF、WIF、WS-Federation、SAML和STS(安全令牌服务),包括使用它们的地点和时间。 < L> > ADFS(ActiveDirectory联邦服务)-由微软生产的现成的安全令牌服务(STS),并建立在Windows身份基础(WIF)上。依赖AD进行身份验证。可以在主动(SOAP web服务)或被动(web站点)场景中使用,并支持SAML令牌、WS-Federation、WS-Trust和SAML协议。

这些是用于Microsoft服务单点登录的众多技术和流行语

有人能解释一下ADF、WIF、WS-Federation、SAML和STS(安全令牌服务),包括使用它们的地点和时间。

    < L> > ADFS(ActiveDirectory联邦服务)-由微软生产的现成的安全令牌服务(STS),并建立在Windows身份基础(WIF)上。依赖AD进行身份验证。可以在主动(SOAP web服务)或被动(web站点)场景中使用,并支持SAML令牌、WS-Federation、WS-Trust和SAML协议。它可以用作身份提供者(针对AD)或联合提供者

  • WIF(Windows Identity Foundation)—用于在.NET应用程序和依赖方中驱动基于声明的身份验证的.NET库。它还可以用作WS-Trust客户机和构建自定义STS

  • WS-Federation—依赖方和STS协商安全令牌时使用的协议。应用程序使用WS-Federation从STS请求安全令牌,STS使用WS-Federation协议(大多数情况下)将SAML安全令牌返回给应用程序。这通常是通过HTTP(获取、发布和重定向)。与WS-Trust相比,WS-Trust完全基于web服务

  • SAML令牌(安全断言标记语言)-这只是用于安全令牌的XML格式,通常捕获用户信息(声明)和其他相关安全相关数据(签名、令牌颁发者等)。应用程序使用令牌对用户进行身份验证并驱动应用程序行为(例如授权)。SAML安全令牌是为了完整性而签名的,并且可以选择进行加密,因此只有RP和STS可以看到其内容。在使用WIF的ASP.NET网站中,默认情况下会对令牌进行加密并将其分块到cookie中,但这是可以更改的

  • STS(安全令牌服务)-如上所述,STS是位于依赖方应用程序和用户之间的代理。STS是安全令牌的发行者。“发行人”通常是STS的同义词。STSS在两个角色中被配置为:当用户身份验证时,“强”>身份提供者< /强>(IDP),或者当他们位于信任链的中间并充当其他IDP的“依赖方”时,作为“强”>联邦提供者< /强>(FP)。IDP需要一种验证用户身份的方法。一些(如ADF)使用Active Directory,另一些使用自定义数据库,如SQL Server成员资格(非ADF)。如果用户正确验证,STS将发出安全令牌


希望这能有所帮助。在基于声明的身份验证中,有许多概念和部分需要理解。要完全理解,您应该从全局角度查看。

假设基于ASP.NET浏览器的应用程序需要身份验证和授权

应用程序可以自行开发,也可以外包

WIF是一个.NET库,允许ASP.NET实施此外包

它与STSADFS是STS的一个实例)对话,后者根据身份存储库进行身份验证,并以声明的形式提供授权信息。STS提供一组经过签名的可信声明

WIF和ADFS之间使用的协议是WS-Federation

如果STS是基于Java的(例如Ping Identity或OpenAM),那么WIF将使用SAML协议进行通信。ADFS还支持SAML以启用联合


(例如,联邦允许面向Java的公司a中的用户通过对a的身份存储库进行身份验证来访问面向.NET的公司B中的ASP.NET应用程序。公司a和公司B在联邦意义上相互信任。)

本文旨在澄清ADFS 2.0和SAML协议中支持的SAML令牌,在Windows Server 2012 R2中的ADFS版本ADFS 3.0之前不受支持

1) ADFS 3.0之前不支持SAML协议

2) 基于.net 4.5的WIF应用程序需要使用WS-Fed协议,目前不支持SAML协议

3) SAML标记是基于XML的。ADFS 2.0和早期版本支持SAML令牌。ADFS 1.0。1.1. 和2.0仅支持SAML令牌,不支持协议

4) 如果您使用WIF,则需要WS-Fed(协议)-因此您可以执行以下操作:

SAML协议ADFS WS-FED WIF(.net 4.5)

从维基:

•ADFS 1.0-Windows Server 2003 R2(额外下载)

•ADFS 1.1-Windows Server 2008和Windows Server 2008 R2

•ADFS 2.0-Windows Server 2008和Windows Server 2008 R2(下载 (来自Microsoft.com)

•ADFS 2.1-Windows Server 2012


•ADFS 3.0-Windows Server 2012 R2。

总体回答不错-注意SAML“通常不会在浏览器cookie中加密”。SAML消息通常通过请求(POST或Redirect)参数或SOAP通过TLS/SSL传输,并通过数字签名保护其消息完整性(这通常是关注的问题,而不是机密性)。您是正确的。我只是说,在WIF/ADFS/WS联合模型中,SAML令牌最终作为加密cookie保存在用户的浏览器中。@Garrett Vlieger:谢谢您的解释。SAML与Java无关。我们在许多.NET Windows服务中使用SAML。