Menu Close
Settings Close

Language and Page Formatting Options

12.5. 将 3scale 与第三方 OpenID Connect 身份提供程序集成

作为 API 供应商,您可以配置 3scale 和第三方 OpenID Connect 身份提供程序之间的 HTTP 集成。也就是说,您可以配置红帽单点登录以外的 OpenID Connect 身份提供程序。3scale 使用此集成来验证来自 API 用户的请求,并使用最新的 3scale 应用详情更新第三方身份提供程序。

将 3scale 与第三方 OpenID Connect 身份提供程序集成的大多数工作都涉及以下任务:

  • 满足与 3scale Zync 相关的先决条件。
  • 配置 OpenID Connect 身份提供程序,以授权来自 3scale 应用的请求。

先决条件

  • 3scale Zync 已安装
  • 您选择的第三方 OpenID Connect 身份提供程序:

    • 遵循 3scale 提供的 OpenAPI 规格
    • 允许用 < client_id > 和 & lt;client_secret > 作为请求中的参数来注册客户端。3scale 始终是 3scale 和第三方 OpenID Connect 身份提供程序之间的客户端身份管理源。
    • 被配置为授权来自 3scale 应用程序的请求。
  • 如果您的配置无法达到以前的先决条件,您必须实施基于 Zync abstract 适配器的自定义适配器。Zync 使用这个适配器与 OpenID Connect 身份提供程序交互。要创建此适配器,您可以修改 rest_adapter.rb,它是 3scale Zync REST API 示例 的一部分。

    您可以根据最适合您的要求的方法在 zync-que pod 中包含 rest_adapter.rb 模块。例如,您可以通过卷挂载 configMap,也可以为 Zync 构建新镜像。

步骤

  1. 在 3scale Admin Portal 中,在顶层选择器中,单击 Products,再选择您要为其启用 OpenID Connect 身份验证的 3scale API 产品。
  2. 导航到 [Your_product_name] > Integration > Settings
  3. Authentication 下,为任何 OAuth 2.0 流选择 OpenID Connect Use OpenID Connect

    这将显示 OPENID CONNECT(OIDC)BASICS 部分。

  4. OpenID Connect Issuer Type 字段中,确保设置是 REST API
  5. OpenID Connect Issuer 字段中输入 OpenID Connect 身份提供程序的 URL。这个 URL 的格式如下:

    https://<client_id>:<client_secret>@<oidc_host>:<oidc_port>/<endpoint>

    例如,在 Zync rest_adapter.rb 示例中,URL 端点被硬编码为 {endpoint}/clients。您的端点可以是 {endpoint}/register 或其他对象。

  6. OIDC AUTHORIZATION FLOW 下,选择以下一个或多个:

    • 授权代码流
    • 隐式流
    • 服务帐户流
    • 直接访问授予流

    这将配置 API 使用者应用如何从 OpenID Connect 身份提供程序接收 JSON Web 令牌(JWT)。建议将 授权代码流 作为最安全且适合大多数情况。务必选择 OpenID Connect 身份提供程序支持的 OAuth 2.0 流

  7. 向下滚动并单击 Update Product 以保存配置。
  8. 在左侧导航面板中点 Integration > Configuration
  9. 向下滚动,以单击 Promote v. x to APIcast Staging

后续步骤

测试与第三方身份提供程序的集成。当一切工作时,返回到 Integration > Configuration 页面,再向下滚动以提升 APIcast staging 版本成为生产版本。