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

Tif*_*rry 53 adfs saml wif single-sign-on ws-federation

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

有人可以解释ADFS,WIF,WS联合,SAML和STS(安全令牌服务),包括每个使用的位置和时间.

Gar*_*ger 113

  • ADFS(Active Directory联合身份验证服务) - 由Microsoft生成并基于Windows Identity Foundation(WIF)构建的现成安全令牌服务(STS).依赖AD进行身份验证.可用于活动(SOAP Web服务)或被动(Web站点)方案,并支持SAML令牌,WS-Federation,WS-Trust和SAML-Protocol.它可以用作身份提供者(针对AD)或作为联合提供者.

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

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

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

  • WS-Federation - 依赖方和STS用于协商安全令牌的协议.应用程序使用WS Federation从STS请求安全令牌,并且STS使用WS Federation协议将(大部分时间)SAML安全令牌返回给应用程序.这通常是通过HTTP(GET和POST以及重定向).与WS-Trust相比,后者完全基于Web服务.

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

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

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

  • STS(安全令牌服务) - 如上所述,STS是位于依赖方应用程序和用户之间的代理.STS是安全令牌的发行者."发行人"通常是STS的同义词.STS配置为两种角色:身份提供者(IdP)在对用户进行身份验证时,或作为联盟提供者(FP),当他们位于信任链的中间并充当其他IdP的"依赖方"时.IdP需要一种验证用户的方法.一些(如ADFS)使用Active Directory,其他使用自定义数据库,如SQL Server Membership(不是ADFS).如果用户正确进行身份验证,则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

希望这会有所帮助.在基于声明的身份验证中有许多概念和部分需要理解.要获得完整的理解,您应该查看基于声明的身份和访问控制指南.


nzp*_*mad 68

从全局角度来看:

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

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

WIF是一个.NET库,允许ASP.NET实现这种外包.

它与STS(ADFSSTS的实例)进行通信,该STS针对身份存储库进行身份验证,并以声明的形式提供授权信息.STS提供一组签名的可信索赔.

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

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

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

  • SAML与Java无关.我们在很多.NET Windows服务中使用SAML. (9认同)