ADFS,WIF,WS Federation,SAML和STS有什么区别?

这些是用于Microsoft服务单点login的众多技术和stream行语。

有人可以解释ADFS,WIF,WS联邦,SAML和STS(安全令牌服务),包括何时何地被使用。

从大的angular度来看:

假设一个需要authentication和授权的基于ASP.NET浏览器的应用程序。

应用程序可以自行滚动,也可以外包。

WIF是一个允许ASP.NET实现这个外包的.NET库。

它与STSADFSSTS的一个实例)交谈,该身份validation库对身份库进行身份validation,并以权利要求的forms提供授权信息。 STS提供一组签名,可信的声明。

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

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

(Federation)允许面向Java的公司A中的用户通过针对A的身份库进行身份validation来访问面向.NET的公司B中的ASP.NET应用程序,公司A和公司B彼此信任。

  • ADFS(Active Directory联合身份validation服务) – 由Microsoft生成并基于Windows Identity Foundation(WIF)构build的现成安全令牌服务(STS)。 依靠AD进行身份validation。 可用于活动(SOAP Web服务)或被动(Web站点)scheme,并支持SAML令牌,WS-Federation,WS-Trust和SAML协议。 它可以用作身份提供商(针对AD)或联合提供商。

    http://technet.microsoft.com/en-us/library/adfs2(v=ws.10).aspx

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

    http://msdn.microsoft.com/en-us/security/aa570351

  • WS-Federation – 依赖方和STS协商安全令牌所使用的协议。 应用程序使用WS Federation从STS请求安全令牌,STS使用WS Federation协议(大部分时间)将SAML安全令牌返回给应用程序。 这通常是通过HTTP(GETs和POSTs和redirect)。 将其与基于Web服务的WS-Trust进行对比。

    http://msdn.microsoft.com/en-us/library/bb498017.aspx

  • SAML令牌(安全断言标记语言) – 这只是用于安全令牌的XML格式,通常用于捕获用户信息(索赔)和其他相关的安全相关数据(签名,令牌发行者等)。 该令牌被应用程序用来authentication用户并驱动应用程序行为(例如授权)。 SAML安全令牌进行了完整性签名和可选encryption,所以只有RP和STS可以看到它的内容。 在使用WIF的ASP.NET网站中,默认情况下,令牌被encryption并分块成cookie,但可以更改。

    http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language

  • STS(安全令牌服务) – 如上所述,STS是位于依赖方应用程序和用户之间的代理程序。 STS是安全令牌的发行者。 “发行人”通常是STS的同义词。 STS被configuration为两个angular色: 身份提供者 (IdP)在对用户进行身份validation时作为身份提供者 (IdP),或者当他们位于信任链中间时作为联邦提供者 (FP),并充当其他IdP的“依赖方”。 IdP需要一种authentication用户的方式。 有些(如ADFS)使用Active Directory,而另一些使用自定义数据库,如SQL Server Membership(而不是ADFS)。 如果用户正确authentication,STS将发出安全令牌。

    http://msdn.microsoft.com/en-us/library/ff650503.aspx

    http://docs.oasis-open.org/ws-sx/ws-trust/v1.4/os/ws-trust-1.4-spec-os.html#_Toc212615442

希望这有助于。 基于声明的authentication中有许多概念和部分要理解。 为了充分了解,您应该查看“基于声明的身份和访问控制指南” 。

本文旨在阐明在ADFS 2.0和SAML协议中受支持的SAML令牌,直到ADFS 3.0才支持Windows Server 2012 R2中的ADFS版本

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)

来自Wiki:

•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。