SAML 单点登录方案、功能和局限性

安全性断言标记语言 (SAML) 是一项 OASIS 开放标准,用于表示和交换用户身份、认证和属性信息。SAML 正迅速成为所选择的可提供跨供应商的单点登录 (SSO) 互操作性的技术。

WebSphere Application Server SAML 服务提供程序 (SP) 支持 SAML 2.0 身份提供程序 (IdP) 发起的单点登录 (SSO)。WebSphere IdP 发起的 SSO 服务是作为信任关联拦截器实现的,可按如下所示进行描述:
  1. 用户访问可能位于 IdP、SP 或其他位置的前端 Web 应用程序。
  2. 前端 Web 应用程序将用户重定向至 IdP,并且用户向 IdP 进行认证。
  3. IdP 通过 HTTP POST 在隐藏表单中发送 SAML 响应来将用户重定向至 SP 中的断言使用者服务 (ACS)。
  4. SP 处理 SAML 响应以及创建 WebSphere 安全上下文。
  5. SP 将 LTPA Cookie 添加至 HTTP 响应以及将请求重定向至 Web 资源或业务应用程序。
  6. WebSphere Application Server 拦截请求,将 LTPA Cookie 映射至安全上下文以及授权用户访问所请求的 Web 资源。
  7. WebSphere Application Server 将 HTTP 响应发送回用户。

下列各图显示了 SAML SSO 流程:

SAML SSO 流程

SAML SSO 功能包括下列各项:
  • WebSphere SAML 服务提供程序支持向多个身份提供程序进行单点登录。
  • WebSphere SAML 服务提供程序支持用于身份断言以及将身份断言映射至服务提供程序的用户注册表的选项。
  • WebSphere SAML 服务提供程序可以将 SAML 令牌属性映射至或者声明为领域、主体、唯一标识和组,并将它们设置到服务提供程序安全上下文中。
  • WebSphere SAML 服务提供程序提供了插入点以允许进行定制的身份映射。
  • WebSphere SAML 服务提供程序可以选择从服务提供程序的注册表中检索身份的组成员资格以及填充安全上下文。
  • WebSphere SAML 服务提供程序提供了一个 IdP 选择过滤器,如果请求不是来自于 IdP,那么会将请求传递回适当的 IdP。
  • WebSphere SAML 服务提供程序同时支持 RSA-SHA1 签名算法和 RSA-SHA256 签名算法。
  • WebSphere SAML 服务提供程序将 SAML 令牌保留在服务提供程序的主体集中以供应用程序访问,并使其可用于下游已认证的 Enterprise JavaBean (EJB) 或 Web Service 调用。
  • WebSphere SAML 服务提供程序允许业务应用程序 URL 充当 AssertionConsumerService URL,以便 IdP 可以将 SAMLResponse 直接发送至业务应用程序 URL。
  • WebSphere SAML 信任关联拦截器 (TAI) 允许对关键 SAML 断言(包括“发放者”和“名称标识”)进行审核。
下列功能突出优势和最佳实践适用于 SAML SSO 功能:
  • WebSphere SAML 服务提供程序中的断言使用者服务 (ACS):
    ACS 是一个安全 Servlet,它接受 SAML 协议消息并建立安全上下文。ACS URL 将预定义的 ContextRoot 作为 samlsps,URL 具有以下格式:
    https://<host name>:<port>/samlsps/<any uri pattern>
    ACS 接收到的 SAMLResponse 将被 TAI 拦截,在成功进行验证之后,会将请求重定向至目标应用程序服务。

    任何实现 POST 方法的业务服务都可以充当 ACS。首选将目标业务 Servlet 用作 ACS,因为这将减少浏览器与服务提供程序服务器之间的一次往返通信时间。

  • 多安全域支持:
    ACS 部署在一个应用程序安全域中,并且期望该 ACS 与业务应用程序位于同一安全域中。如果 ACS 与目标业务应用程序 (RelayState) 位于不同的安全域中,那么下面是建议您选择的一些选项:
    • 在 ACS 的安全域中处理 SAMLResponse。
    • 重新配置 ACS,以便与业务应用程序位于同一个域中。
    • 使用目标业务服务作为 ACS。
  • 多个单点登录合作伙伴:

    WebSphere SAML TAI 支持多个 ACS 和 IdP 单点登录 (SingleSignOnService) 合作伙伴。一个 SSO 合作伙伴定义为一个 ACS URL,并且可以具有多个 SingleSignOnService 对象。存在多个 SSO 合作伙伴的情况下,由 ACS URL 来唯一标识每个 SSO 伙伴关系。

    每个 SSO 合作伙伴都可以具有它自己的验证规则、从断言映射至主体集的映射规则或者有关使用它自己的 IdP 来启动 SSO 的规则。例如,一个 SSO 合作伙伴可以处理身份断言,这包括生成 WebSphere 平台主体集,而不调用用户注册表。另一个 SSO 合作伙伴可以执行本地用户注册表查询。另一个示例是,一个 SSO 合作伙伴使用一个 IdP 来处理 SSO,而另一个 SSO 合作伙伴使用另一个 IdP 来处理 SSO。

  • 书签样式 SSO 和 TAI 过滤器:

    请考虑书签样式 SSO,它从传统上而言适合于 SP 发起的 SSO。用户将访问业务应用程序,而不首先向 IdP 进行认证。可以配置 WebSphere SAML TAI 以发起 SSO。每个 SSO 合作伙伴配置都包含一个 IdP 登录应用程序和一个路由过滤器。每个过滤器都定义选择规则的列表,这些规则表示要与 HTTP 请求相匹配的条件,以确定是否为 SSO 合作伙伴选择了该 HTTP 请求。过滤规则由 HTTP 请求头、引荐者数据和目标应用程序名称组合而成。WebSphere SAML TAI 运行时环境将针对所有过滤规则来检查用户请求,以便唯一标识 SSO 合作伙伴,并将该请求重定向至所选择的 IdP 登录应用程序。TAI 过滤器允许由 IdP 发起的 SSO 与由 SP 发起的 SSO 和 IdP 发现服务的组合提供相似的功能。

  • 身份映射和安全上下文管理:
    WebSphere SAML TAI 提供了丰富而灵活的身份映射,可以按如下所示分类:
    • 身份断言:在不存在本地注册表的情况下将 SAML 断言映射至 WebSphere 平台主体集。典型的身份断言方案包括:
      • 缺省情况:将“名称标识”用作主体,将“发放者”用作领域,将所选择的属性用作组成员。
      • 定制:将 SAML 属性配置为主体、领域、访问标识和组成员。
    • 针对服务提供程序的用户注册表来映射 IdP 中的名称标识,并从注册表构建主体集。支持下列方案:
      • 将 SAML 名称标识直接映射至本地注册表。
      • 为定制映射提供插入点,然后使用新用户来构建主体集。
      • 将名称标识映射至用户注册表,并回退到身份断言。
    • 身份断言和本地注册表的组合:

      除了身份断言以外,TAI 将在服务提供程序的用户注册表中搜索已声明组的父组,并将这些父组包括到主体集中。例如,已对父组授予权限,但是身份提供程序不知道父组的名称。

WebSphere Application Server 仅支持 IdP 发起的 SAML Web SSO。

下列规范或方案超出范围:
  • 增强的客户机或代理 (ECP) 概要文件
  • 身份提供程序发现概要文件
  • 单点注销概要文件
  • 名称标识管理概要文件
  • 工件解析概要文件
  • 断言查询/请求概要文件
  • 名称标识映射概要文件
  • SAML 属性概要文件

指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_samlssosummary
文件名:cwbs_samlssosummary.html