为了将 SAML 用于 SSO 和电子签名,必须先创建 SAML 配置文件。随后,您必须将用户配置为使用配置文件。Vault 允许创建多个 SAML 配置文件,并将它们分别关联到一个不同的身份提供方。这样,用户即可向他们所属的安全策略中配置的任何 IdP 进行身份验证。请了解有关 Vault 产品的受支持 IdP/AS 的更多信息。

您可以配置两种配置文件:单点登录配置文件电子签名配置文件单点登录配置文件是 SSO 登录的必需项。电子签名配置文件是可选的项,尤其是用于通过 SAML 对文档和对象记录进行电子签名时。如果在安全策略中未配置电子签名配置文件,则 SSO 登录和电子签名都使用单点登录配置文件。可以将一个单点登录配置文件和一个电子签名配置文件关联到同一个安全策略

要创建 SAML 配置文件:

  1. 确保您有对设置 > SAML 配置文件SSO 设置:读取SSO 设置:写入访问权限。
  2. 转到管理 > 设置 > SAML 配置文件
  3. 单击创建。选择单点登录配置文件电子签名配置文件
  4. 为配置文件输入一个标签名称
  5. 完成 SAML 配置文件配置。
  6. 单击保存

从身份提供方 (IdP) 获取信息

您需要从 IdP 获取以下信息:

身份提供方证书文件
包含采用 X.509 证书格式的身份提供方的公钥。如果 IdP 替换或更新其证书,则您必须使用新证书更新 SAML 配置文件。请参阅导入 IdP 元数据
身份提供方登录 URL
仅用于单点登录配置文件。Vault 的重定向登录 URL,这通常是在将 Vault 注册为服务提供商时由身份提供方生成的。此 URL 可自定义,以支持高级深度链接
身份提供方注销 URL
可选:仅用于单点登录配置文件。Vault 在用户注销后应将其重定向到的页面 URL。默认情况下,Vault 将重定向到带有注销消息的静态页面。这是静态重定向,当前不支持单点注销 (SLO)。
请求绑定
您的 IdP 希望服务提供商 (Vault) 使用的请求绑定类型。Vault 支持 HTTP-PostHTTP 重定向绑定。
服务提供商发起的请求 URL
请求 URL 是发送服务提供商 (Vault) 发起的 SAML 身份验证请求的地方。
联合用户 ID
由身份提供方提供,并在用户配置文件中配置。

在 Vault SAML 配置文件中输入 IdP 信息

您可以开始配置 SAML 配置文件,而无需更改现有用户登录 Vault 或使用电子签名的方式。Vault SSO 登录 URL 显示要提供给您 IdP 的 ACS URL。直到整个 SAML 配置文件验证完毕后才能激活 SAML 配置文件。

要在您的域上配置一个配置文件,请在 SAML 配置文件中输入以下信息。

SAML 版本
设置为 2.0
SAML 用户 ID 类型
请参阅关于 SAML ID 用户类型
服务提供商实体 ID
此值向 IdP 标识 Vault 为服务提供商实体。
身份提供方证书文件
从 IdP 获取
身份提供方登录 URL,身份提供方注销 URL
仅用于单点登录配置文件从 IdP 获取
服务提供商发起的请求 URL
从 IdP 获取
服务提供商发起的请求绑定
请参阅关于服务提供商发起的请求绑定
服务提供商证书
请参阅关于服务提供商证书
签名和摘要绑定
请参阅关于签名和摘要算法
签名和摘要算法
指定用于签署 SAML 请求的哈希算法。
电子签名身份验证上下文,电子签名身份验证弹出窗口
请参阅关于电子签名身份验证上下文
身份提供方按钮
仅用于单点登录配置文件。请参阅身份提供方按钮(单点登录配置文件)

在您的 IdP 中将 Vault 注册为服务提供商 (SP)

您的 IdP 可能需要以下信息:

Vault 公共证书文件
包含 Vault 的公钥信息。下载 Vault SSL 证书
服务提供商实体 ID
向您的 IdP 标识 Vault 的唯一名称。这应该是服务提供商实体 ID 中定义的名称。
目标 URL
Vault 中的 SAML ACS 终结点。这是 Vault SSO 登录 URL 字段,显示在单点登录设置页面顶部。
回发 URL
这也使用 Vault SSO 登录 URL 字段。
服务提供商 SAML 属性
Vault 需要名为 uid 的属性来传递用于 SSO 的联合用户 ID。您传递的值取决于您所选的 SAML 用户 ID 类型设置(Vault 用户名联合 ID)。

关于用户 ID 类型

两个选项分别是 Vault 用户名联合 ID

Vault 用户名

如果您计划将 Vault 用户名存储为 IdP 用户目录中的一个属性,或者 Vault 用户名恰好与您的企业用户名完全匹配,请选择 Vault 用户名。从根本上说,这样会由 IdP 负责处理将企业用户名映射到 Vault 用户名的工作。

联合 ID

如果您计划将企业用户名存储在 Vault 用户配置文件上的联合 ID 字段中,请选择联合 ID。这样会由 Vault 负责处理将企业用户名映射到 Vault 用户名的工作。

导入 IdP 元数据

要简化配置文件的配置,您可以通过上传 IdP 元数据 XML 文件或直接从 IdP 导入该文件来导入您的身份提供方元数据。

要导入 IdP 元数据:

  1. 打开 SAML 配置文件。
  2. 操作菜单中,选择导入 IdP 元数据
  3. 要通过上传 XML 文件来导入 IdP 元数据,请选择上传 IdP 元数据,然后选择一个文件。
  4. 要通过指定一个 URL 来导入 IdP 元数据,请选择提供 IdP 元数据 URL,然后输入此文件的位置。此 URL 必须使用 HTTPS 协议。
  5. 单击继续。Vault 会验证 IdP 元数据 XML 的内容,如果这些信息无效,将返回一条错误消息。如果信息有效,配置文件将切换到编辑模式,导入的值将反映在页面上。
  6. 要完成配置,请单击保存

SAML 规范中定义了 XML 文件结构。

导出服务提供商元数据

为了简化配置,方便后续维护,或保证服务提供商元数据的有效性,您可以下载和/或监控配置文件的服务提供商元数据。

要导出服务提供商元数据:

  • 打开 SAML 配置文件。
  • 操作菜单中,选择导出服务提供商元数据VaultSPMetadata.xml 文件将下载到您的本地文件系统中。

也可以通过直接转到服务提供商元数据 URL 字段指向的位置来检索服务提供商元数据。这允许在使用 HTTP GET 请求时直接从客户端应用程序或命令行实用程序(如 cURL)获取服务提供商元数据。当 idP 希望在配置中监控和/或动态更新服务提供商元数据时,这非常有用。如果配置文件不完整或无效,将返回 HTTP 状态代码 400。

SAML 规范中定义了 XML 文件结构。

关于深度链接(单点登录配置文件)

可以将身份提供方登录 URL 配置为支持 IdP 发起的具有深度链接的 SAML 流。

IdP 发起的 URL 配置支持基于 Mustache 模板框架的表达式语法。Mustache 文档定义了完整的语言语法。我们没有在模板中约束任何可用的 Mustache 功能。但是,下列语法是在 Vault 中配置深度链接的仅有要求。

身份提供方登录 URL 高级配置

您可以使用以下表达式语法,以根据身份提供方要求自定义 URL。

{{relay_state}}
此令牌将由现有 URL 在运行时替换,并将是 HTML 编码。
{{relay_state}}
此令牌将由现有 URL 在运行时替换,但将不是 HTML 编码。
{{#url_encode}}, {{/url_encode}}
此函数会对开始标记和结束标记之间的一切内容进行 URL 编码。
示例配置 (ADFS 2.0)
https://adfs.domain.com/adfs/ls/IdpInitiatedSignOn.aspx?RelayState={{#url_encode}}RPID={{#url_encode}}http://customer.vault.com{{/url_encode}}&RelayState={{{relay_state}}}{{/url_encode}}

在保存表单时,将解析和验证表达式语法。验证错误将在配置页面上返回。

关于服务提供商发起的请求绑定

两个选项分别是 HTTP PostHTTP 重定向,均可用于单点登录配置文件电子签名配置文件

注意:当使用 Exostar IdP 时,我们建议将服务提供商发起的请求绑定设置为 HTTP Post。

HTTP Post(默认)

这使用 POST-POST SAML 绑定。您的 IdP 必须支持这种类型的绑定。

使用这种类型的绑定,Vault 将向 IdP 发送一个包含身份验证请求的 HTTP 重定向消息。IdP 将通过 HTTP POST 向 Vault 返回带有断言的 SAML 响应。

处理步骤:

  1. 用户请求访问 Vault 资源。如果用户未登录,请求会被重定向到 IdP 以进行身份验证。
  2. IdP 向浏览器发回一个 HTML 表单,其中包含一个身份验证的 SAML 请求。该 HTML 表单将被自动回发给 IdP。
  3. 如果用户尚未登录到 IdP,或者如果需要重新进行身份验证,则 IdP 将请求用户提供凭据,然后用户登录到 IdP。
  4. IdP 的服务将向浏览器返回一个 HTML 表单,其中带有包含身份验证断言的 SAML 响应,以及包含联合 ID 或 Vault ID(取决于配置)的 uid 属性。浏览器会自动将 HTML 表单发回 Vault。
  5. 如果签名和断言有效,Vault 将为用户建立会话,并将浏览器重定向到请求的 Vault 资源。

HTTP 重定向

选择 HTTP 重定向以使用重定向-POST SAML 绑定。您的 IdP 必须支持这种类型的绑定。

使用这种类型的绑定,Vault 将向 IdP 发送一个包含身份验证请求的 HTTP 重定向消息。IdP 将通过 HTTP 重定向向 Vault 返回带有断言的 SAML 响应。

处理步骤:

  1. 用户请求访问 Vault 资源。如果用户未登录,请求会被重定向到 IdP 以进行身份验证。
  2. Vault 将返回一个 HTTP 重定向(代码 302),其中包含通过用户的浏览器向 IdP 进行身份验证的 SAML 请求。
  3. 如果用户尚未登录到 IdP,或者如果需要重新进行身份验证,则 IdP 将请求用户提供凭据,然后用户登录到 IdP。
  4. IdP 的服务将向浏览器返回一个 HTML 表单,其中带有包含身份验证断言的 SAML 响应,以及包含联合 ID 或 Vault ID(取决于配置)的 uid 属性。浏览器会自动将 HTML 表单发回 Vault。
  5. 如果签名和断言有效,Vault 将为用户建立会话,并将浏览器重定向到请求的 Vault 资源。

关于服务提供商证书

Vault 使用服务提供商证书来签署 SAML 请求。所有 Vault 都使用同一个签名证书,此证书将定期更新。证书滚动更新后,Vault 会自动更新所有 SAML 配置文件,以便使用新证书。对于即将到来的证书滚动更新,客户会提前收到通知。在滚动更新期内,上一个证书仍然可用。在此期间,您可以根据需要在新证书与以前的证书之间切换。一旦滚动更新期结束,新证书将成为 SAML 配置文件上唯一处于活动状态的证书。

要管理 SAML 签名证书:

  1. 导航到设置 > SAML 配置文件,然后选择一个配置文件。
  2. 单击编辑按钮。
  3. 选中适用证书旁边的复选框。如果当前证书是唯一可用的证书,此证书将为只读证书,您可以下载该证书。如果有两个证书可用,则表明您处于证书滚动更新期,如有可能,应选择新证书。请参阅 Vault 证书
  4. 可选:要下载包含公钥的证书,请单击证书旁边的下载图标。
  5. 单击保存,以激活选定证书。

关于签名和摘要算法

此设置指定用于生成和验证 SAML 签名的哈希算法。可用的选项包括:

SHA-256
这将生成一个几乎唯一、固定大小的 256 位哈希值。对于 SSO 身份验证,推荐使用这种方式。
SHA-1
这将生成一个被称为“消息摘要”的 160 位哈希值。

关于电子签名身份验证上下文

在配置 IdP 时,请验证对 SAML 请求强制执行身份验证的设置是否已开启。例如,使用 Okta 的“模板 SAML 2.0”时,您必须选中强制身份验证复选框。

存在一个已知问题,即使用某些浏览器时,会阻止用户通过 iFrame 使用其 SAML 身份提供方完成电子签名。您可以避免此问题,方法是选择在弹出窗口而非 iFrame 中对 SAML 电子签名进行身份验证选项,以启用第三方 Cookie 或将电子签名流配置为通过弹出窗口完成。此选项仅影响文档的电子签名。

电子签名身份验证上下文

两个选项分别是PasswordProtectedTransport

如果您的基础设施正在使用集成 Windows 身份验证 (IWA),请使用 PasswordProtectedTransport。此选项可配置由服务提供商发起的电子签名流使用的身份验证上下文。

启用后,在服务提供商发起的电子签名流期间,SAML 请求会添加以下 XML:

urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport

电子签名身份验证弹出窗口

默认情况下,Vault 会对 SAML 电子签名流使用 iFrame。

如果您的 IdP 不支持在 iFrame 中呈现身份验证界面,请选中此复选框以在外部弹出窗口中验证 SAML 电子签名。这可以简化与 Exostar 和最新版本的 PingFederate 等 IdP 的集成。

Internet Explorer 11 的已知问题

为了让电子签名身份验证在 Internet Explore (IE11) 中正常工作,必须向受信任的站点配置中添加以下域:

Auth
https://veevaauth.vaultdev.com
Vault
https://veeva.vaultdev.com
IdP
https://veeva.okta.com

此问题仅影响使用 IE11 的用户。如果遇到此问题,建议尝试使用其他浏览器。

关于 SAML 响应签名

Vault SAML 要求对整个 SAML 响应进行签名。响应中的 SAML 断言签名未经过验证,也非 Vault 必需,但如果您的 IdP 决定在断言中提供额外签名,也不会生成错误。

身份提供方按钮(单点登录配置文件)

使用身份提供方按钮设置,可以向登录页面添加自定义登录按钮。这适合拥有多个 Vault 安全策略的客户。它让 Vault 用户能够通过用户名和密码登录 Vault,或单击自定义登录按钮通过其 IdP 登录 Vault。

配置多个 SSO 配置文件时,Vault 会为每个活动配置文件显示一个徽标。

要向登录页面添加身份提供方按钮

  1. 单击添加自定义登录按钮以显示设置。
  2. 单击选择徽标图像,然后选择要显示在按钮上的图像。文件格式必须为 PNG、JPG 或 GIF。文件大小不能超过 500KB。图像大小不能超过 400 x 100 像素。图像四周无需留内边距或外边距。图像将垂直居中显示在“登录方式”右侧的按钮中。为实现最佳效果,徽标的纵横比不应超过 4:1。通常,所选的图像是公司徽标或 IdP 徽标。
  3. 单击按钮颜色,然后为按钮背景选择一种颜色。
  4. 单击边框颜色,然后为按钮边框选择一种颜色。
  5. 单击文本颜色,然后为“登录方式”文本选择一种颜色。
  6. 单击保存按钮预览将显示在页面上和您域的 Vault 登录页面上。