管理 STS 客户端

使用安全令牌服务 (STS) 客户端进行令牌交换。 IBM® Verify在创建和管理 STS 客户端时,请遵循 OAuth 令牌交换规范。 您可以将 OAuth 作为受保护的资源,对第三方应用进行验证。

准备工作

  • 以管理员身份登录管理控制台 IBM Verify
  • 创建 STS 客户端将使用的自定义令牌类型。 请参阅 “管理自定义令牌类型 ”。
注意: 只有具备相应权限的用户才能查看客户端密钥。 如需了解更多信息,请参阅 “授权的安全更新”

关于此任务

配置 STS 客户端以进行令牌交换。 客户端通过使用令牌扩展授权类型机制,向授权服务器的令牌端点请求安全令牌。 使用 Verify 作为身份提供商构建的外部应用程序可以接受通过 OAuth 2.0 访问令牌以及其他身份验证方法进行身份验证的 REST API 请求。 如需了解更多信息,请访问 https://www.rfc-editor.org/rfc/rfc8693.html

过程

  1. 选择 “应用程序” > “STS 客户端 ”。
  2. 选择 “添加 STS 客户端 ”。
  3. 请提供基本信息。
    1. 可选: 提供客户端 ID。
      如果您未提供客户端 ID,系统将在您完成设置时自动生成一个 ID。
    2. 为 STS 客户端指定一个唯一名称。
    3. 请保持 “已启用” 复选框处于选中状态。
      您可以启用或禁用此 STS 客户端。
    4. 允许使用访问令牌交换 SSO 会话。 如果选择了 “默认 ”,则由 OIDC 应用程序的常规设置决定是否可以使用访问令牌进行 SSO 会话交换。
  4. 选择 “下一步”
  5. 选择客户端身份验证方法。
    该设置决定了客户端的身份验证方式。
    • 对于“默认”、“客户端密钥(基本)”和“客户端密钥(POST)”这三种方法,在完成设置后,系统会自动生成客户端密钥。
    • 对于私钥 JWT 方法,您必须选择客户端断言签名算法以及允许的签名验证密钥。 您还可以选择 “验证客户端断言”JTI 来验证客户端断言。
    • 对于“相互” TLS 方法,您必须提供 TLS 客户端身份验证属性以及 TLS 客户端身份验证属性值。
    • 如果您正在编辑现有的 STS 客户端,可以使用以下客户端密钥选项:
      • 选择 显示 以查看客户机私钥。
      • 选择 隐藏 以隐藏客户机私钥。
      • 点击 复制 将客户端 ID 或密钥复制到剪贴板。
      • 点击 列表 以查看已轮换的客户端密钥。
        • 从列表中选择一个或多个已轮换的客户端密钥,然后单击 “删除 ”将其删除。
      • 选择 重新生成 以生成新的客户机密钥。 如果您认为客户机密钥被泄露,请使用此选项。 重新生成客户机密钥后,必须在此应用程序的所有 OAuth 客户机中更新客户机密钥。
        • 选中 “保留当前密钥 ”复选框,即可将当前客户端密钥添加到轮换客户端密钥列表中。
        • 如果选中了 “保留当前密钥 ”复选框,请选择客户端密钥的描述和过期时间(以浏览器本地时间为准)。 如果未选择过期时间,则将应用 “应用程序设置 ”中为该租户设置的“轮换密钥生命周期”。
        • 轮换后的客户端密钥已进行哈希处理,无法再以明文形式检索,但在选定的过期日期之前仍可继续使用。
        • 确认后,客户端密钥将立即进行轮换。 新客户端密钥已显示在屏幕上。
    default注: 默认的客户端身份验证方法是。

    如果保留为缺省值,那么同时允许客户机私钥 basic 和 POST。 如果此客户机是公共客户机,那么不允许使用客户机私钥(基础)和 POST。 如果依赖方支持,请使用专用密钥 JWT 或相互 TLS 作为配置。 有关相互 TLS 客户机认证的更多信息,请参阅 OpenID Connect 相互 TLS 客户机认证和证书绑定访问令牌

  6. 选择 “下一步”
  7. 请选择主体令牌和请求令牌的允许令牌类型。
    1. 可选: 选择演员令牌允许的令牌类型。
    表 1. 代币交易所
    字段 描述
    主题令牌 主体令牌的令牌类型,该类型代表了请求该令牌所代表方的身份。
    参与者令牌 该参与者令牌的令牌类型,代表被授予已发行令牌访问权限的方的身份。
    已请求令牌

    作为代币交换的一部分,可以申请生成的代币类型。

    事务令牌 :这种一次性安全令牌包含有关特定事务、操作、资源或请求详情的上下文信息,可为该特定操作提供精细化的授权。 选择该令牌后,将显示 “事务上下文 ”磁贴,您可以在其中使用 CELx 表达式设置上下文。 更多详情请参见 “交易令牌 ”。
    注: 事务令牌是一项可申请的功能, VDEV-186514: 《AI 代理的安全防护》。 如需申请此功能,请联系您的 IBM 销售代表或 IBM 联系人,并表明您希望启用此功能的意愿。 如果您有相应权限,也可以在提交支持工单时注明该功能编号。 IBM Verify 试用订阅用户无法创建支持工单。
    客户机组 OpenID Connect 客户群列表。 此客户端生成的令牌可在同一组内用作令牌交换的主题令牌。 如果此列表为空,则任何客户端均可使用该客户端生成的令牌作为令牌交换的主题令牌。
    需要演员令牌 要求在令牌交换请求中包含主体令牌。 此操作强制执行委托场景,并禁止使用模拟身份的场景。
    事务上下文 只有当 “请求令牌 ”设置为 “交易令牌 ”时 ,“交易上下文 ”字段才会显示。 此字段不适用于其他令牌类型。 更多详情请参见 “交易令牌 ”。
    要创建供客户端使用的自定义令牌类型,请阅“管理自定义令牌类型”。
  8. 选择 “下一步”
  9. 选择或指定所需的令牌设置。
    表 2. 所需的令牌设置
    字段 描述
    访问令牌格式 指定访问令牌的格式。 以下选项可用:
    • 缺省值

    • JWT

    访问令牌过期时间(秒)

    这用于设置访问令牌到期之前的时间长度(以秒计)。

    设置访问令牌到期时间以限制攻击者在客户端应用程序受到威胁时可以使用被盗令牌访问资源的时间。

    只允许使用正整数。

    缺省值为 3600 秒。 允许的最小值为 1 秒,最大值为 2147483647 秒。

    签名算法 用于对Verify ID令牌进行签名的算法。 该算法必须与依赖方注册时所使用的算法一致Verify。 从以下散列算法中选择以验证签名:
    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
    注意:
    • 如果选择了 ES256 签名算法,那么证书必须是具有 P-256 的 ECDSA。
    • 如果选择了 ES384 签名算法,那么证书必须是具有 P-384 的 ECDSA。
    • 如果选择了 ES512 签名算法,那么证书必须具有 P-521 的 ECDSA。
    对证书进行签名 选择用于对 ID 令牌进行签名的证书。

    默认选项指的是您在 “安全” > “证书 ”中配置的默认设置。

    .
    加密算法 用于加密或确定内容加密密钥(CEK)值的加密算法。 支持以下算法。
    • RSA-OAEP
    • RSA-OAEP-256
    内容算法 用于对明文进行认证加密以生成密文和认证标记的内容加密算法。 支持以下算法:
    • A128GCM
    • A192GCM
    • A256GCM
    加密证书 请输入一个值,或从您已上传到租户的签名证书列表中进行选择。
    注意: 有关上传签名者证书的操作说明,请参阅 “管理证书 ”。
    JWKS URI 令牌签发方或依赖方发布其公钥的 URI,公钥采用 JSON Web Keys Set (JWKS) 格式。 此 URI 将用于 JWT 签名验证或加密。 系统可以拒绝无法访问或无响应的 JWKS URI。 如果 JWKS 大小过大,那么系统还可以拒绝 JWKS URI。 如果令牌发行方未发布 JWKS URI,则可以将公钥以 X509 证书的形式添加到系统中。 请参阅“证书管理 ”。 与公共证书关联的“友好名称”是 JWT 的密钥标识 (kid) 标头的值。 例如,
    https://{yourDomain}/.well-known/jwks.json
  10. 选择 “下一步”
  11. 选中“持有证明”设置对应的复选框。
    表 3. “所有权证明”设置
    字段 描述
    证书绑定的访问令牌 指示生成的令牌是否与证书相关联。 有关证书绑定访问令牌的更多信息,请参阅 OpenID Connect 相互 TLS 客户端身份验证和证书绑定访问令牌
    强制使用 DPoP-bound 访问令牌。 指示令牌请求是否需要包含 DPoP 标头。
    验证 DPoP JWT 的 JTI 表示 DPoP JWT中的JTI是否已验证为一次性使用。
    DPoP JWT 的签名算法

    DPoP JWT 的预期签名算法。

    请从以下算法中选择。

    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
  12. 选择 “下一步”
  13. 为每个端点配置请求映射和响应映射。
    1. 配置 introspect 映射,以添加和修改由 introspect 端点返回的属性。
    2. 配置用户信息和 ID 令牌属性映射,以添加和修改端点 userinfo 返回的属性以及 ID 令牌中的属性。
  14. 选择 “下一步”
  15. 限制定制作用域
    在支持的 OIDC / OAuth 授权流程中, OIDC / OAuth 客户端可以请求自定义范围。 如果启用了缺省设置限制定制作用域,那么在流程结束时授予客户机的作用域将限制为本部分中指定的作用域。 如果 “限制自定义作用域 ”不可用,则在流程完成时,所有请求的自定义作用域都会被授予。
    注意: 标准作用域 openid, profile, email, phone, 和 address 无法被限制。
    1. 请确保已选中 “限制自定义范围 ”复选框。
    2. 输入您想要授予的定制作用域的名称和描述。
      作用域名称指的是信赖方/客户机所请求的 OAuth2/OIDC 作用域。 描述是对作用域的通俗解释。
      这将显示另一个作用域字段集。
    3. 对于要授予的每个定制作用域重复上一步。
  16. 授权详情限制
    在支持的 OIDC/ OAuth 授权流程中,OIDC/ OAuth 客户端可以请求授权详细信息。 如果启用了 “限制授权详细信息 ”功能,则流程结束时授予的授权详细信息将仅限于本节中指定的授权详细信息。 如果 “限制授权详情 ”功能已禁用,则在流程完成时,任何请求的授权详情都会被授予。
    1. 请确保已选中 “限制授权详细信息 ”复选框。
    2. 请确认 “忽略未知授权信息” 选项是否已启用。
    3. 输入或选择您要授予的授权详细信息类型的名称。 您可以编辑并定义一条额外的自定义规则,根据授权详细信息 JSON 中的某个属性来过滤请求。 例如,如果授权详细信息类型为 resource_access ,且其中包含 属性 location ,则只有当位置为日本时,该请求才会被允许。 requestContext.ad.location == 'Japan'在这种情况下,规则将是:。
    4. 点击 “添加 ”,并对您希望授予的每种授权详细信息类型重复上一步操作。
  17. 选择您希望授予访问令牌的用户和非用户权限。
    “限制 API 访问”是默认设置。 要授予 API 访问权限,请执行以下步骤。 如果取消选中限制 API 访问权复选框,那么将向令牌授予一组缺省权利。 请参阅 “默认登录令牌 API 权限 ”。
  18. 选择 “完成设置 ”。