如果为用户启用了单点登录 (SSO),则 Vault 不负责验证该用户的密码。相反,Vault 依赖外部身份提供方验证用户身份并在 Web 浏览器请求中传递用户的信息(“断言”)。本文提供了 Vault 中 SSO 的技术细节。如需了解基础信息,请参阅单点登录基础知识。如需关于设置 SSO 的详细信息,请参阅配置单点登录

作为云应用程序,Vault 要求直接或者通过某种代理或网关从互联网访问客户的 IdP。

Vault 可通过第三方身份管理解决方案与客户的内部 Microsoft™ Active Directory (AD) 实施进行集成。我们的许多客户已成功地集成了 Vault 与 Okta、Ping Identity 和 ADFS。

支持的 SSO 类型

Vault 使用安全断言标记语言 (SAML) 2.0 支持 SSO,包括服务提供商 (SP) 发起的和身份提供方 (IdP) 发起的两种模型。对于 Vault,两种 SSO 模型均可与 HTTP POST 或 HTTP 重定向绑定一起使用。

IdP 发起的 SAML 登录流程

下面的图表和步骤详述了使用 IdP 发起的登录流的 SAML 登录如何用于 Vault。IdP 初始化的登录流程

  1. 管理员通过向服务提供商提供 IdP 生成的证书,在 IdP 和服务提供商之间建立信任关系。从 IdP 到服务提供商的任何通信都必须使用此证书“签名”。
  2. 用户使用其凭据登录到 IdP。
  3. 用户从 IdP 管理的列表中选择应用程序(服务提供商)。
  4. IdP 返回由 IdP 使用其证书进行了数字签名的 SAML 响应。
  5. 浏览器收到 SAML 响应,并向服务提供商发布该响应。服务提供商确认响应已正确签名,如果是,则授予用户对应用程序的访问权限。

服务提供商发起的 SAML 登录流程

下面的图表和步骤详述了使用服务提供商发起的登录流的 SAML 登录如何用于 Vault。服务提供商初始化的登录流程

  1. 管理员通过向服务提供商提供 IdP 生成的证书,在 IdP 和服务提供商之间建立信任关系。从 IdP 到服务提供商的任何通信都必须使用此证书“签名”。
  2. 用户打开应用程序(服务提供商)网站。
  3. 如果由于用户从未登录或会话已过期而导致用户的身份验证不存在,服务提供商将通过发送 SAML AuthnRequest 联系 IdP。下面的步骤仅适用于用户尚未通过身份验证的情况。
  4. IdP 为用户显示登录窗口。
  5. 用户使用其凭据登录到 IdP。
  6. IdP 返回由 IdP 使用其证书进行了数字签名的 SAML 响应。浏览器收到 SAML 响应,并向服务提供商发布该响应。
  7. 服务提供商确认响应已正确签名,如果是,则授予用户对应用程序的访问权限。

SSO 自动重定向到 IDP

只使用 SAML SSO 登录 Vault 的客户(例如,无基于密码的安全策略的客户),将自动被重定向到 Vault 登录页面以进入其 SAML IDP 登录页面,然后在 IDP 验证了其凭据后自动登录到 Vault。

SSO IDP 登录按钮

拥有多个 Vault 安全策略的客户可以选择使用其 Vault 用户名和密码密码直接登录,或者通过其身份提供方 (IDP) 登录。此功能允许管理员在其登录页面上添加自定义登录按钮,因而让使用 SAML 的客户能够更轻松地以单点登录方式登录 Vault。这让 Vault 用户能够轻松地识别其登录选项 – 通过用户名和密码登录 Vault,或单击自定义登录按钮通过其 IDP 登录。登录按钮还可自定义为包括公司徽标、颜色和消息。

关于深度链接

深度链接定义用户在通过 SAML 进行身份验证时导航到 Vault 内的特定页面的能力。

Vault 通过 IdP 发起和服务提供商发起的 SAML 流支持深度链接。如果用户从未访问过 Vault 或从未通过其 IdP 成功登录,则使用服务提供商发起的流。一旦用户通过其 IdP 成功登录,Vault 就会设置 IdP cookie,所有后续深度链接流都会通过 IdP 发起的流实现。如果使用自定义身份提供方按钮,也会使用 IdP 发起的流。

用于深度链接的信息通常由称为 RelayState 的查询参数携带。但是,关于该参数的命名和编码要求会因 IdP 而异。例如,Ping Identity 要求该参数称为 TargetResource 而非 RelayStateMicrosoft Active Directory 联合服务 (ADFS) 对于配置 RelayState 还有独特的要求。