概述

# 1. 概述

WS-Federation(简称: WS-Fed)属于Web Services Security(简称: WS-Security、WSS: 针对web-service安全性方面扩展的协议标准集合) 的一部分,是由OASIS(https://www.oasis-open.org)发布的标准协议, 其主要贡献者是Microsoft 和 IBM。WS-Fed 1.1 版本发布于2003年, 最新的 WS-Federation1.2版本 (opens new window) 标准发布于2009年 。 该协议主要应用在企业服务,并且是在微软自己的产品中主推。 另外,该标准是基于SOAP的,整个协议虽然功能强大,细节考虑周全,但实现起来会比较重,只有为了能和微软的服务整合,才会优先考虑该协议。

# 2. 认证模式

IDaaS 基于 WS-Federation 协议实现了两种身份认证模式:Active 模式和 Passive 模式。

# 2.1. Active模式

WS-Federation 使用了WS-Trust模型, 基于SOAP协议实现,这是一种面向 XML 的通信协议,在 Web Service 中广泛使用。 该模式为: “WS-Federation Active Requestor Profile” (Active 模式), Active 模式是通过 SOAP 消息来执行远程过程调用,并与远程服务器进行通信。 因此,使用 Active 模式的客户端与服务器之间的通信是基于 SOAP 协议实现的。

# 2.2. Passive模式

由于WS-Trust模型要求应用完全基于SOAP,这个显然会限制使用场景。 WS-Federation为了解决这个问题,扩展了该模型,可以采用HTTP中最基础的机制(GET,POST,重定向,cookie)来封装WS-Trust协议。从而,摆脱了对SOAP的强制依赖。 所有支持HTTP 1.1标准的浏览器 或者 web应用都可以使用上WS-Fed。 该模式为: “WS-Federation Passive Requestor Profile” (Passive 模式)。 该流程也是目前我们最常用的方式