SAML 2.0 Web 浏览器单点登录

SAML Web 浏览器单点登录 (SSO) 允许 Web 应用程序将用户认证授权给 SAML 身份提供者(而不是所配置的用户注册表)。

安全性断言标记语言 (SAML) 是一项 OASIS 开放式标准,用于表示和交换用户身份、认证和属性信息。 SAML 断言是一种 XML 格式的令牌,用于在单点登录请求的完成过程中将用户的身份提供者中的用户身份和属性信息传输至可信服务提供者。 SAML 断言提供了一种在联合业务合作伙伴之间传输信息的方法,此方法与供应商无关。 通过使用 SAML,企业服务提供者可联系另一企业身份提供者以认证尝试访问安全内容的用户。

WebSphere® Application Server Liberty 支持具有 HTTP Post 绑定的 SAML Web 浏览器单点登录概要文件,并充当 SAML 服务提供者。 Web 用户向 SAML 身份提供者进行认证,这将生成 SAML 断言,而 WebSphere SAML 服务提供者使用 SAML 断言为 Web 用户建立安全上下文。

SAML Web SSO 流程包含三个参与者:最终用户、身份提供者 (IdP) 和服务提供者 (SP)。 此用户始终向 IdP 认证,SP 依赖于 IdP 断言来标识该用户。

图 1。 Web 单点登录中的关键概念

SSO 流程图
在上图中:
  1. 用户请求服务提供者 (SP) 提供服务。
  2. 该 SP 通过重定向请求身份提供者 (IdP) 提供用户身份。
  3. 如果该用户尚未认证,那么 IdP 会要求该用户登录。
  4. SP 获取 SAML。
  5. SP 根据 SAML 断言作出访问控制决策。

Liberty SAML Web 浏览器 SSO 方案

图 2。 方案 1:SP 启动的请求式 Web SSO(最终用户在 SP 上启动)
SP-发起请求的 Web SSO (最终用户从 SP 开始)
  1. 最终用户访问 SP。
  2. SP 将用户重定向至 IdP。
  3. 最终用户向 IdP 认证。
  4. IdP 将 SAML 响应和断言发送至 SP。
  5. SP 验证 SAML 响应并对用户请求授权。
图 3。 方案 2:IdP 启动的非请求式 Web SSO(最终用户在 IdP 上启动)
IdP-自发发起的 Web SSO (最终用户从 IdP开始)
  1. 用户代理访问 SAML IdP。
  2. IdP 认证用户并发出 SAML 断言。
  3. IdP 将用户重定向至 SP 并产生 SAMLResponse。
  4. SP 验证 SAML 响应并对用户请求授权。
图 4: 方案 3:OpenID Connect 提供者和 SAML 服务提供者
OpenID Connect 提供者和 SAML 服务提供者
  1. 最终用户访问 OpenID Connect 依赖方 (RP)。
  2. RP 将最终用户重定向至 OpenID Connect 提供者 (OP)。
  3. OP(又称为 SAML SP)将最终用户重定向至 SAML IdP。
  4. 最终用户向 SAML IdP 认证。
  5. IdP 将最终用户重定向至 OP 或 SP 并产生 SAMLResponse。
  6. OP/SP 验证 SAML,并将授权代码发送至 RP。
  7. RP 针对 id_tokenaccess_token 交换代码。
  8. RP 验证 id_token 并向最终用户授权。