12.5. 将 3scale 与第三方 OpenID Connect 身份提供程序集成
作为 API 供应商,您可以配置 3scale 和第三方 OpenID Connect 身份提供程序之间的 HTTP 集成。也就是说,您可以配置 Red Hat Single Sign-On 以外的 OpenID Connect 身份提供程序。3scale 使用此集成对来自 API 用户的请求进行身份验证,并使用最新的 3scale 应用详情来更新第三方身份提供程序。
3scale 与第三方 OpenID Connect 身份提供程序集成的大多数工作涉及以下任务:
- 满足 3scale Zync 相关的先决条件。
- 配置 OpenID Connect 身份提供程序,以授权来自 3scale 应用的请求。
先决条件
- 3scale Zync 已安装。
您选择的第三方 OpenID Connect 身份提供程序:
- 遵循 3scale 提供的 OpenAPI 规格。
-
允许将带有 <
client_id> 和 <client_secret> 的客户端注册为请求中的参数。3scale 始终是 3scale 与第三方 OpenID Connect 身份提供程序之间的集成客户端身份管理源。 - 配置成授权来自 3scale 应用的请求。
如果您的配置无法满足以前的先决条件,您必须实施基于 Zync abstract 适配器的自定义适配器。Zync 使用此适配器与您的 OpenID Connect 身份提供程序交互。要创建此适配器,您可以修改 rest_adapter.rb,它是 3scale Zync REST API 示例 的一部分。
您可以根据最适合您的要求的方法将
rest_adapter.rb模块包含在zync-quepod 中。例如,您可以通过卷挂载configMap,也可以为 Zync 构建新镜像。
步骤
- 在 3scale 管理门户中,在顶级选择器中,点 Products 并选择您要启用 OpenID Connect 身份验证的 3scale API 产品。
- 导航到 [Your_product_name] > Integration > Settings。
在 Authentication 下,为任何 OAuth 2.0 流选择 OpenID Connect Use OpenID Connect。
这将显示 OPENID CONNECT (OIDC) BASICS 部分。
- 在 OpenID Connect Issuer Type 字段中,确保 设置是 REST API。
在 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或 else。在 OIDC AUTHORIZATION FLOW 下,选择以下一个或多个项:
- 授权代码流
- 隐式流
- 服务帐户流
- 直接访问流
这配置了 API 使用者应用程序如何从 OpenID Connect 身份提供程序接收 JSON Web 令牌(JWT)。建议将 授权代码流 作为最安全并适合于大多数情况。务必选择您的 OpenID Connect 身份提供程序支持的 OAuth 2.0 流。
- 向下滚动并单击 Update Product 以保存配置。
- 在左侧导航面板中,点 Integration > Configuration。
- 向下滚动,单击 Promote v. x to APIcast Staging。
后续步骤
测试与第三方身份提供程序的集成。当一切正常工作时,返回到 Integration > Configuration 页面,向下滚动以将 APIcast staging 版本提升为生产版本。