在身份提供商中配置 SAML 单点登录

Verify使用 SAML 实现单点登录,以便应用程序能够基于由 执行的身份验证来验证其用户的身份。 用户将被重定向至 Verify 进行登录。 Verify 验证用户身份,通过 SAML 断言发送相关信息,并向服务提供商确认用户已获授权访问和使用该资源。

准备工作

  • 您必须具有管理许可权,才能完成此任务。
  • 请打开至少两个浏览器窗口以完成设置。 Verify 一个用于管理控制台,另一个用于目标应用程序的管理控制台。
    • 以管理员身份登录管理控制台 IBM® Verify
    • 使用您的管理员帐户登录到目标应用程序管理控制台。
  • 您必须在 “常规 ”选项卡中设置应用程序实例的基本信息。 请参阅 “设置应用程序基本信息 ”。

关于此任务

Verify 可作为单点登录身份提供商服务提供商 在此任务中, Verify身份提供商 ,而目标应用程序是服务提供商

如果您使用的是 “自定义应用程序 ”模板,请在继续操作前参阅 “自定义应用程序”部分

配置 Verify服务提供商 ,使其能够相互通信。 要启用 SAML 单点登录功能,您必须提供:
  • Verify服务提供商提供的某些数据。
  • Verify拥有来自.的某些数据的服务提供商

如果服务提供商对其 SAML 身份验证请求进行了签名,您必须先在 “安全 > 证书 ”页面中添加签名者证书 请参阅 “管理证书”

如果服务提供商除了内置属性外,还要求从 SAML 断言中获取其他属性,请在“目录 > 属性 ”页面中添加所需的属性来源。 请参阅 “管理属性”

/v1.0/saml/federations/{federationName}注意: 租户管理员可通过新的 API 端点,并持有 manageFederationsreadFederations API 权限,查看和更新某些 SAML 联合配置。
用于标识源的配置特性如下:
clockSkew
验证收到的 SAML 断言 NotBeforeNotOnOrAfter 时的容差(以秒计)。
messageValidTime
验证接收到的 SAML 消息 IssueInstant 时的容差(以秒计)。
skipTargetUrlValidation
指示是否跳过 SAML 中的 targetURL 验证。

默认值为 false.

allowedTargetUrls
指示 SAML 允许的目标 URL。

此配置属性的值是一个字符串数组。 每个数组元素都是一个 URL。 URL 主机名支持通配符。 例如,*.ibmcloud.com

缺省情况下,该值为空。

signatureAlgorithm
在签名过程中,算法会对 SAML AuthnRequest 消息进行数字签名,支持的值包括: RSA-SHA1、 RSA-SHA256、 RSA-SHA512、 ECDSA-SHA256、 ECDSA-SHA384、 ECDSA-SHA512。 如果为空,则采用默认值 RSA-SHA256。
缺省情况下,该值为空。
signingKeyLabel
在单点登录过程中,该证书用于对 SAML AuthnRequest 进行签名。 默认选择指的是您在“安全” >“证书 ”>“个人证书 ”中配置的默认个人证书。
已选中默认个人证书。
decryptionKeyLabel
如果在单点登录过程中收到的 SAML 响应消息中包含加密元素,请使用此证书对其进行解密。 您在 “安全” >“证书 ”>“个人证书 ”中配置的默认个人证书。
已选中默认个人证书。
用于应用程序的配置特性如下:
assertionSettings.assertionValidAfter
发出 SAML 断言时添加到 NotOnOrAfter 的容差(以秒计)。
assertionSettings.assertionValidBefore
发出 SAML 断言时添加到 NotBefore 的容差(以秒计)。
messageValidTime
验证接收到的 SAML 消息 IssueInstant 时的容差(以秒计)。
用于身份源和应用程序的配置特性为:
crlEnabled
检查证书撤销列表。 对于使用外部证书的所有功能执行检查。 如果您的配置不需要 CRL 检查,那么可以禁用该检查。 例如,如果使用内部认证中心 (CA),那么可能想要禁用 CRL 检查。 该crlEnabled该属性默认值为true.
keySelectionCriteria
指定要用于签名、验证、加密或解密各种消息的密钥或证书。 如果存在多个密钥或证书,且其别名与指定别名的密钥或证书相同 SubjectDN ,则此设置将决定使用其中哪一个。 请使用以下其中一种选择方法:
only.alias
选择具有指定别名的密钥或证书。 此方法为缺省值。
longest.lifetime
对于签名,将使用具有最长可用生命周期的有效密钥。 对于验证,将根据生存期可用性对具有相同 SubjectDN 的密钥进行排序。 按顺序尝试密钥,从具有最长生命周期可用性的密钥开始,直到验证成功为止。
shortest.lifetime
对于签名,将使用具有最短可用生命周期的有效密钥。 对于验证,将根据生存期可用性对具有相同 SubjectDN 的密钥进行排序。 按顺序尝试密钥,从具有最短生命周期可用性的密钥开始,直到验证成功为止。
  • 数据类型:字符串
  • 示例: only.alias

过程

  1. 请选择是否使用元数据来配置应用程序。
    表 1. 元数据选项
    信息 描述
    使用元数据 指定是否使用元数据来配置应用程序。 在创建应用程序时,该选项默认值为 true;在更新现有应用程序时,默认值为 false。
    导入类型 指定元数据的类型。 源文件可以是元数据文件,也可以是公开可访问的 URL。
    元数据文件 当在“导入类型”中选择“从文件导入元数据”时,将显示文件上传按钮。 点击此处上传元数据文件。
    元数据 URL 当在“导入类型”中选择“从 URL 导入元数据”时,将显示“ URL ”字段。 请输入您要从中下载元数据文件的 URL。
    注意: 当选中 “使用元数据 ”时,以下表格中的某些字段可能会被隐藏。
  2. 确定服务提供商以及在提供商之间建立单点登录所需的 URL。
    表 2. ID 和 URL
    信息 描述
    提供者标识

    这是用于向 Verify. 唯一标识目标应用程序的目标应用程序提供商 ID。

    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:
    • 在目标应用程序管理控制台的“单点登录配置”页面上。

      有关如何访问该页面的说明,请阅“单点登录配置”。

    • 服务提供者元数据中。
    • 在目标应用程序的 SAML 单点登录设置文档中。
    • 通过目标应用程序支持团队。
    值取决于第三方应用程序。 可以是:
    • 静态或以下某种格式:
      • https://{@domainName}.<application>.com
      • {@domainName}.<application>.com

      其中,{@domainName} 对应于提供者标识中唯一动态的组成部分,并会在运行时自动替换为常规选项卡中指定的值。

      重要提示: 如果您先更新了 “提供商 ID ”,然后在 “常规 ”选项卡中更新了 “域名 ”,则 “提供商 ID ”的值将根据指定的 “域名” 重置为默认值。
    • 动态

      提供者标识具有多个动态组成部分。 因此,不会预填充字段值。

    注: 仅支持ASCII字符。 如需了解更多信息,请访问 https://ascii.cl/
    使用唯一标识 此复选框仅在一些应用程序中可用。

    针对应用程序创建唯一标识以避免重复的提供者标识冲突。

    断言使用者服务 URL (HTTP-POST)

    指定服务提供商处用于接收 SAML 身份验证响应的端点。

    身份提供商SAML 的身份验证响应重定向至此 URL。 此端点用于接收并处理 SAML 断言

    服务提供商在发送 SAML 身份验证请求时,可以指定其首选的 URL。

    值取决于第三方应用程序。 可以是:
    • 静态或以下某种格式:
      • https://{@domainName}.<application>.com/saml/consume
      • https://{@domainName}.<application>.com/saml/callback

      其中,{@domainName} 对应于断言使用者服务 URL 中唯一动态的组成部分,并会在运行时自动替换为常规选项卡中指定的值。

    • 动态

      断言使用者服务 URL 具有多个动态组成部分。 因此,不会预填充字段值。

    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:
    • 在目标应用程序管理控制台的“单点登录配置”页面上。

      有关如何访问该页面的说明,请阅“单点登录配置”。

    • 服务提供者元数据中。
    • 在目标应用程序的 SAML 单点登录设置文档中。
    • 通过目标应用程序支持团队。
    注意:

    对于定制应用程序,您可以拥有多个断言使用者服务 URL。 最多可以指定 1500 个 URL。 可以修改 URL 的索引值,但每个值必须唯一。 此外,还可以选择要作为缺省 URL 的 URL。

    名称标识管理 URL (HTTP-POST)
    Not Specified注意: 此选项仅在配置为 PersistentNameID 格式的自定义应用程序模板中可用,且其名称标识符为。

    指定接收 SAML Manage Name ID 请求和 SAML Manage Name ID 响应的服务提供程序处的端点。

    身份提供者会将 SAML Manage Name ID 请求和 SAML Manage Name ID 响应重定向到此 URL。 此端点接收并处理 SAML Manage Name ID 请求和 SAML Manage Name ID 响应。

    值取决于第三方应用程序。

    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:

    • 在目标应用程序管理控制台的“单点登录配置”页面上。 请参阅应用程序的单点登录配置指示信息以获取有关如何访问该页面的信息。

    • 在服务提供者元数据中。
    • 在目标应用程序的 SAML 单点登录设置文档中。
    • 通过目标应用程序支持团队。
    使用身份提供者启动的单点登录
    注意: 此选项仅在“自定义”应用程序模板中可用。

    如果服务提供者支持身份提供者启动的登录,请选择此选项。 在此场景中,用户直接登录到身份提供者站点,然后访问服务提供者

    如果启用此功能,系统将自动构建由身份提供商发起的单点登录 URL。 是由身份提供方( URL )发起单点登录(SSO)流程的。 您无需提供服务提供商的单点登录 (SSO) URL。

    如果未启用此选项,则必须提供服务提供商单点登录 (SSO) URL。 由服务提供商( URL )发起单点登录(SSO)流程。

    目标 URL

    这是目标应用程序中的用户登录页面,用户在登录后会重定向到该页面。

    这并不一定指目标应用程序的管理员控制台。 它可以是作为单点登录最终目标的服务提供者的任何受保护资源。

    此字段仅在以下条件下显示:
    • 目标应用程序支持中继状态。
    • 目标应用程序支持身份提供者启动的单点登录。 此 URL 仅在由 SAML 2.0 身份提供商发起单点登录时使用。
    • 目标 URL 是动态的,或者有多个可能的值。
    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:
    • 在目标应用程序管理控制台的“单点登录配置”页面上。

      有关如何访问该页面的说明,请阅“单点登录配置”。

    • 通过目标应用程序 Web 站点。
      1. 浏览至目标登录页面。
      2. 复制并粘贴此字段中的 URL。
    服务提供者 SSO URL

    正是服务提供商端点从用户浏览器发起 SAML 身份验证请求 ,并返回 SAML 身份验证响应以验证用户身份。

    此字段仅在以下条件下显示:
    • 目标应用程序支持服务提供者启动的单点登录
    • 服务提供者 SSO URL 是动态的,或有多个可能的值。
    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:
    • 在目标应用程序管理控制台的“单点登录配置”页面上。

      有关如何访问该页面的说明,请阅“单点登录配置”。

    • 在目标应用程序的 SAML 单点登录设置文档中。
    • 通过目标应用程序支持团队。
  3. 如果服务提供者支持单点注销,请配置单点注销设置。
    IBM Verify注意: 如果当前会话中的任何应用程序未响应由 发出的注销请求,则单点注销将在该应用程序处停止。 要从下一个应用程序恢复单点注销,用户必须再次执行单点注销。
    表 3. 单点注销设置
    信息 描述
    单点注销 URL (HTTP-POST)

    指定服务提供商处用于接收 SAML 注销请求和 SAML 注销响应的端点。

    身份提供商将 SAML 的注销请求和 SAML 的注销响应重定向至此 URL。 该端点用于接收并处理 SAML 注销请求以及 SAML 注销响应。

    值取决于第三方应用程序。

    您可以从第三方应用程序获取此信息。 根据目标应用程序,此信息可能来自以下任一适用源:

    • 在目标应用程序管理控制台的"单点登录配置"页面上。 有关如何访问页面的信息,请参阅应用程序的单点登录配置指示信息。
    • 在服务提供者元数据中。
    • 在目标应用程序的 SAML 单点登录设置文档中。
    • 通过目标应用程序支持团队。
  4. 配置签名选项。 使用数字签名在用户与服务提供商之间 Verify 建立信任。
    表4。 签名选项
    信息 描述
    认证响应签名
    注意: 此选项仅在“自定义”应用程序模板中可用。
    指示身份提供商是否对 SAML 断言身份验证响应进行签名。
    注意: 某些服务提供商无法接受带签名的身份验证响应

    选中此选项后, SAML 断言身份验证响应都会被签名。

    如果未选中此选项,则仅对 SAML 断言进行签名。 无论复选框是否被选中, SAML 断言始终为有符号。

    签名算法
    注意: 此选项仅在“自定义”应用程序模板中可用。

    签名算法会对 SAML 断言SAML 身份验证响应进行数字签名。

    使用数字签名算法来制作数据摘要,然后加密该摘要。 从以下支持的算法中进行选择:
    • RSA-SHA1
    • RSA-SHA256
    • RSA-SHA512
    • ECDSA-SHA256
    • ECDSA-SHA384
    • ECDSA-SHA512

    大多数应用程序都使用 RSA-SHA256 作为对 SAML 断言身份验证响应进行签名的默认算法。

    不推荐使用 RSA-SHA1,并且仅对不支持更强加密的旧应用程序提供此算法。

    对证书进行签名

    列出了所有从 “设置 > 证书 > 个人证书 ”页面上传的个人证书

    请选择您为所选应用程序上传的个人证书

    验证 SAML 请求签名

    指示服务提供商在启动 SAML 单点登录流程时,是否对 SAML 身份验证请求进行签名。

    对于某些服务提供商 ,对 SAML 身份验证请求进行签名可能是强制性的,而对于其他服务提供商则可能是可选的。

    选中后,您必须选择个人证书

    注意: 对于未对其 SAML 身份验证请求进行签名的服务提供商 ,此选项不可用。
    验证 SAML 注销请求签名 指示入局注销请求消息是否需要签名。

    选中后,您必须选择个人证书。

    验证 SAML 注销响应签名 指示入局注销响应消息是否需要签名。

    选中后,您必须选择个人证书。

  5. 配置加密选项。 启用加密功能以保护 SAML 断言的内容,确保只有预期的接收者才能访问该内容。
    表5。 加密选项
    信息 描述
    加密断言
    对发送给服务提供商的整个 SAML 断言进行加密。 仅预期服务提供者可以解密并了解其内容。
    注意: 此选项仅适用于支持加密的服务提供商
    SAML 断言加密算法

    该算法对 SAML 断言的内容进行加密。

    从以下高级加密标准 (AES) 或数据加密标准 (DES) 算法中进行选择:
    AES-128
    使用128位密钥 ,采用AES-CBC模式。 数据转换的重复周期是 10 轮。
    AES-192
    使用192位密钥 ,采用AES-CBC模式。 数据转换的重复周期是 12 轮。
    AES-256
    使用256位密钥 ,采用AES-CBC模式。 数据转换的重复周期是 14 轮。 这是缺省或常用的加密算法。
    三重 DES
    使用由三个 8 字节 DES 密钥组成的三倍长度数据密钥来加密 8 个字节的数据。 使用以下方法:
    • 使用第一个密钥加密数据。
    • 使用第二个密钥解密结果。
    • 使用第三个密钥加密第二个结果。
    AES-128-GCM
    使用128位密钥,采用AES- GCM 模式。
    AES-192-GCM
    使用192位密钥,采用AES- GCM 模式。
    AES-256-GCM
    使用256位密钥,采用AES- GCM 模式。
    注意: 此选项适用于所有支持加密的应用程序。
    加密密钥传输算法 此算法加密断言加密密钥。 从以下算法中进行选择。
    RSA-OAEP

    公用密钥加密方案。 设计用于仅加密短消息,通常是用于对称加密的密钥。

    参见 http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p

    RSA-v1.5
    签名方案。

    参见 http://www.w3.org/2001/04/xmlenc#rsa-1_5

    注意: 自2024年3月起,将不再支持 RSA-v1.5 加密密钥传输算法。
    注意: 此选项适用于所有支持加密的应用程序。
    服务提供者加密证书

    列出了所有已导入至 “安全 > 证书 > 签名证书 ”中的服务提供商加密证书。

    选择必须与所选的 SAML 断言加密算法配合使用,以对 SAML 断言内容进行加密的 Verify 加密证书。

  6. 确定 SAML 断言身份提供商属性来源。 请参阅 “配置 SAML ”主题以及映射属性
  7. 选择用于确定用户可如何访问应用程序的策略。

    您可以继续使用分配的缺省访问策略,即允许从所有设备访问。 或者,您可以取消选中该复选框,然后单击 按钮 编辑 ,从预定义访问策略列表中进行选择。 如需了解更多信息,请参阅 “访问策略 ”。

  8. 点击 “保存”

后续操作

  • 请向服务提供商提供完成 与服务提供商之间 Verify SAML 单点登录配置所需的信息 Verify 。 请参阅用户界面中提供的指示信息。

    如果 SAML 应用程序配置了 “默认个人证书 ”作为签名证书 ,您可以从“验证” https://{tenantName}/v1.0/saml/federations/saml20ip/metadata页面下载 SAML 的元数据。 https://{tenantName}/v1.0/saml/federations/saml20ip/metadata?keyLabel={actualKeyLabel}如果 SAML 应用程序配置了非默认的个人证书 ,且将标签为 {actualKeyLabel}证书设为签名证书,您可以从...下载 SAML 元数据。

  • 添加用户或组权利以允许访问已配置的应用程序。 参阅“管理应用程序权限(由管理员或应用程序所有者执行)”。
  • 在用户登录到已配置的应用程序时,强制实施双因子认证以便对用户增强安全控制。 请参阅 “配置身份验证因素 ”。