66

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

有人可以解释一下 ADFS、WIF、WS 联合、SAML 和 STS(安全令牌服务),包括使用它们的地点和时间。

4

3 回答 3

127
  • ADFS (Active Directory Federation Services) - 由 Microsoft 生产并基于 Windows Identity Foundation (WIF) 构建的现成安全令牌服务 (STS)。依靠 AD 进行身份验证。可用于主动(SOAP 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 和重定向)。将此与完全基于 Web 服务的 WS-Trust 进行对比。

    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),或者当他们位于信任链的中间并作为其他 IdP 的“依赖方”时作为联合提供者(FP)。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

希望这会有所帮助。在基于声明的身份验证中有很多概念和部分需要理解。要全面了解,您应该查看基于声明的身份和访问控制指南

于 2011-11-02T13:10:43.467 回答
74

从大局来看:

假设一个基于 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 在联盟意义上相互信任。)

于 2011-11-02T18:07:25.603 回答
4

这篇文章旨在阐明在 ADFS 2.0 中支持的 SAML 令牌和在 Windows Server 2012 R2 中的 ADFS 版本 ADFS 3.0 之前不支持的 SAML 协议

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

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

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。

于 2016-05-17T22:28:01.997 回答