12.6. 测试 3scale 与 OpenID Connect 身份提供程序集成

将 3scale 与 OpenID Connect 身份提供程序集成后,测试集成以确认:

  • 当 API 用户订阅了 3scale 管理的 API 时,它会收到访问凭证。
  • APIcast 可以验证来自 API 用户的请求。

先决条件

  • 3scale 和 OpenID Connect 身份提供程序之间的集成适用于特定的 3scale API 产品。此 集成使用授权代码流
  • 一个应用程序计划可供 API 用户在 Developer 门户中订阅。此应用程序计划提供对您配置了 OpenID Connect 身份验证的 3scale 管理的 API 的访问,即 3scale 产品。
  • 将请求发送到上游 API 的应用。上游 API 是 3scale 产品的后端,API 消费者应用程序可在订阅后访问。或者,您可以使用 Postman 来发送请求。

步骤

  1. 在 Developer Portal 中,订阅一个应用程序计划。

    这会在 Developer Portal 中创建应用程序。OpenID Connect 身份提供程序应返回客户端 ID 和客户端 secret,您可以在 Developer 门户的应用程序页面中看到。

  2. 记下应用程序的客户端 ID 和客户端 secret。
  3. 验证 OpenID Connect 身份提供程序现在是否有具有相同客户端 ID 和客户端 secret 的客户端。例如,当 Red Hat Single Sign-On(RH-SSO)是 OpenID Connect 身份提供程序时,您将在配置的 RH-SSO 域中看到一个新客户端。
  4. 在 Developer Portal 中的应用程序页面中,在 REDIRECT URL 字段中输入将 API 请求发送到上游 API 的应用 URL。
  5. 验证您的 OpenID Connect 身份提供程序具有正确的重定向 URL。
  6. 发现使用此端点接收 OpenID Connect 身份提供程序的身份验证请求的 URL:

    .well-known/openid-configuration

    例如:

    https://<rhsso_host>:<rhsso_port>/auth/realms/<realm_name>/.well-known/openid-configuration
  7. 对于基础 URL,使用 OpenID Connect Issuer 字段中配置的 API 供应商的值。
  8. 编写使用上游 API 的应用程序的 API 消费者:

    1. 使用您的 OpenConnect 身份提供程序启动授权流。此请求必须包含 3scale 应用程序的客户端 ID 和客户端 secret。在某些情况下,还需要最终用户身份。
    2. 接收身份提供程序的响应,其中包含授权代码。
  9. API 使用者的应用程序执行以下操作:

    1. 交换 JWT 的授权代码。
    2. 身份验证时从 RH-SSO 接收 JWT。
    3. 发送包含 JWT 的 API 请求到上游 API 后端。

如果 APIcast 接受请求中的 JWT,则您的应用程序将从 API 后端收到响应。

另外,为放置 API 消费者应用,使用 Postman 测试令牌流是否已正确实施