简介
IBM WebSphere Application Server(以及在 WebSphere Application Server 平台之上运行的一堆产品)自 V5.1 以来就有一个基于 Trust Association Interceptor (TAI) 接口的可自定义的身份验证框架。该接口有多种产品实现。2012 年,WebSphere Application Server 完整配置文件版本提供了一个新的 SAML(Security Assertion Markup Language,安全断言标记语言)TAI,它可用于 WebSphere Application Server 7.0、8.0 和 8.5 之上。(撰写本文之时,IBM WebSphere Application Server Liberty 配置文件还不支持 SAML。)这个 TAI 是目前最全面的 TAI。本文将介绍:
如何使用 SAML TAI。
何时适合使用 SAML TAI。
各种 SAML TAI 属性如何配合使用。
SAML TAI 穿梭于 WebSphere Application Server 授权流程中时使用的错综复杂的路径。
本文假设您已牢牢掌握 WebSphere Application Server 身份验证流程(如文章 WebSphere Application Server 中的高级身份验证 中所述),而且了解:
数字签名
加密
身份断言
TAI 的大体知识。
基础:Web 单点登录用例
SAML TAI 引入了对新的 Web 单点登录 (SSO) 形式的支持。正如我们在 WebSphere Application Server 安全类中所说的,术语 “SSO” 在行业中被严重过度使用,所以我们的 SSO 用例将非常严格。
SAML 多年来已发生演变。SAML 2.0 规范定义了一些配置文件和绑定:
SAML 配置文件描述了 SSO 交互中的各个参与方之间的不同消息交换序列。
SAML 绑定描述了如何将一条特定的消息绑定到某个协议。在配置文件的消息交换序列中的任意步骤中,配置文件都可以引用一个或多个绑定作为转发消息的方式选择。
SAML 配置文件包括:
SSO 配置文件
Web Browser SSO Profile
Enhanced Client or Proxy Profile
Identity Provider Discovery Profile
Single Logout Profile
Name Identity Management Profile
Artifact Resolution Profile
Assertion Query/Request Profile
Name Identifier Mapping Profile
SAML Attribute Profiles
SAML 绑定包括:
SAML SOAP Binding
Reverse SOAP Binding
HTTP Redirect Binding
HTTP Post Binding
HTTP Artifact Binding
SAML URI Binding
WebSphere Application Server 从修复包 7.0.0.7 开始支持通过 SAML SOAP Binding 来支持 SOAP。SAML TAI 是在修复包 7.0.0.23、8.0.0.5 和基础产品的 8.5.0.0 版中引入的。SAML TAI 仅支持结合使用 Web Browser SSO Profile 和 HTTP Post Binding。
可以看到,这只是许多可能的用例中的一种。事实上,确实存在两种变体。在介绍它们之前,我们先介绍一下所涉及的角色:
身份提供程序 (IdP)
服务提供程序 (SP) 有时称为中继方 (Relying Party) 或 RP。
IdP 的工作是验证最终用户(IdP 完成此操作的准确方式无关紧要),并生成一些关于用户的断言或声明。这些断言由 IdP 进行数字签名。SAML 规范定义了这些断言的格式。SP 接收断言,如果它对来自受信任的 IdP 的断言感到满意,则基于断言的某些部分来让用户登录。
我们还将查看一个基于真实用例的示例。Unified Assurance Company (UAC) 有许多企业客户;举例而言,Gamma Business Machine (GBM) 公司、Omicron Lumber Company 和 Purple Maple Syrup Company。我们将这 4 个(虚构的)公司视为位于一个 SSO 连锁中。在此示例中,Unified Assurance Company 了解这 3 个连锁成员的员工(UAC LDAP 中有针对外部连锁成员的员工的用户条目)。但是,UAC LDAP 中没有连锁成员的密码。
在这种情况下,Unified Assurance 希望将一个 IBM WebSphere Portal 系统提供给它的外部和内部用户。来自 GBM 的用户将向 GBM 中的一个系统进行验证,Omicron Lumber 用户向 Omicron Lumber 网络中的一个系统进行验证,而 Purple Maple Syrup 用户向 Google 托管的一个系统进行验证。(在本例中,对 WebSphere Portal 系统的使用只是偶然情况。)