SAML 的胜势所在

SAML 的优势所在SAML 协议仍在不断的发展, SAML1.0, SAML1.1 到现在的 SAML2.0 ,都是 IT 商业巨头协商后,

SAML 的优势所在
SAML 协议仍在不断的发展, SAML1.0, SAML1.1 到现在的 SAML2.0 ,都是 IT 商业巨头协商后,由 OASIS 发布的产物,另外, OASIS SAML 实验室得到拥有美国政府 GSA 的大力资助。

SAML 在 SOA 中扮演了一个关键角色,由于用户要求将企业资源从原有的面向数据 / 接口转变为面向服务,而建立在众多 Vendor 产品下的服务存在这种种鸿沟,最大的鸿沟是如何识别身份,如何能够让网易 163 邮件的 VIP 用户享受免费参加 Dev2dev 广州 UserGroup 的活动?

读者可能已经听闻很多身份管理软件, IBM Tivoli , SiteMinder , RSA SecureID 等,虽然身份管理软件都非常强,但成本同时也很高。身份管理并不适合于那种构建是 B2B 之上的商业环境(联邦环境)。

但对用户来说,根本问题是,网易和 Dev2dev 是两个不同的公司 / 组织,它们都严格保护自己的用户身份信息,一般极少可能会共享身份数据,因此,做法是双方都提供一个服务入口,对身份信息做断言,例如只告诉 Dev2dev 该用户确实是网易的 VIP 用户。

SAML 提供了一个安全标记规范,并且给出了一些的 UseCase ,这些 usecase 足以满足我们绝大部分的 SSO 需求。

我喜欢这种规范,很大原因是因为以前用 SSO 实在很累,配置要花去大半天时间, SAML 让这一切变得非常灵活简单,因为厂商一旦在其产品中提供 SAML 支持,我们就可以将其产品作为联邦服务纳入 SSO 环境。

我喜欢 SAML 的另一个原因是因为,它跟 SOAP 一样,不考虑传输协议,事实上, SAML 可以跟 HTTP/SSL/JMS 等任何传输协议捆绑。在 SOA 环境中,这个特性非常重要,因为我们已有的许多服务(来自各个不同 IT Vendors )都可能有各自的传输协议,即如果在这种复杂的环境下实现 SSO ,传统 Yale CAS 已经无能为力,因为 CAS SSO 实现在 HTTP/SSL 之上,只有 SAML 能够完成这项任务,因为它与传输协议无关。

最后,应该提一下, SAML 是一种 SSO 标准而 CAS 是一种 SSO 的实现,从 CAS 的 Roadmap 可以看出, CAS 很快会提供对其他 SAML 的支持。