SAML 作为身份管理解决方案中服务器之间的通信协议发挥了重要作用;但是,SAML 并不是完整的解决方案。在信息系统安全性领域,近来出现的身份管理是一个新术语,它涵盖了下面这些计算领域:
- 准备(provisioning)— 将新用户添加到企业内部信息系统和外部合作伙伴信息系统的网络操作系统目录和应用程序服务器目录中。
- 密码管理 — 使用户能够用一组凭证登录到公司的信息系统。此外,使用户能够自己管理其密码、用户帐户数据和特权。
- 访问控制 — 使系统能够识别用户组的安全性策略。例如,某项安全性策略防止某个人更改他或她的职位,但能将职位更改请求发送给具有相应权限的人。
SAML 是两台服务器需要共享认证信息时使用的协议规范。SAML 规范中没有任何内容提供了实际的认证服务,认证服务是由商业目录服务器提供的。
不实说法:企业之间的 Web 单点登录很好理解并且易于实现。
SAML 是旨在减少构建和操作信息系统(这些系统在许多服务提供者之间相互操作)所花费成本的众多尝试之一。在当今竞争激烈且迅速发展的环境中,出现了通过浏览器和支持 Web 的应用程序为用户提供互操作性的企业联合。例如,旅游网站允许用户不必进行多次登录即可预订机票和租车。今天,一大群软件开发人员、QA 技术人员和 IT 经理都需要处理复杂的和不可靠的后端系统,这些系统提供了企业之间的联合安全性。
在典型的支持 Web 的基础结构中,运行业界领先的企业系统的软件需要处理权限服务器之间的浏览器重定向、服务器域之间的 HTTP post 命令、公钥基础结构(public key infrastructure,PKI)加密和数字证书,以及声明任何给定用户或组的信任级别的相互同意(mutually agreed-upon)机制。SAML 向软件开发人员展示了如何表示用户、标识所需传送的数据,并且定义了发送和接收权限数据的过程。
SAML 为那些需要在 Web 基础结构(XML/HTTP/TCP)上设计和构建可伸缩联合系统的系统架构设计师提供了一个蓝图。即使您决定不使用 SAML,但 SAML 规范还是回答了许多设计问题,这些问题是任何系统架构设计师在构建可互操作的且支持 Web 的系统时必须回答的。
作为一个示例,请考虑用来将权限请求编码成 XML 请求的 SAML 断言机制。SAML 定义了六类语句:
认证(Authentication):主体已登录。例如,用于认证的 SAML 断言看起来可能象下面这样: