12.6. 测试 3scale API 管理与 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 来发送请求。
流程
在 Developer Portal 中,订阅一个应用程序计划。
这会在 Developer Portal 中创建应用程序。OpenID Connect 身份提供程序应返回客户端 ID 和客户端 secret,您可以在 Developer 门户的应用程序页面中看到。
- 记下应用程序的客户端 ID 和客户端 secret。
- 验证 OpenID Connect 身份提供程序现在是否有具有相同客户端 ID 和客户端 secret 的客户端。例如,当 Red Hat Single Sign-On (RH-SSO) 是 OpenID Connect 身份提供程序时,您将在配置的 RH-SSO 域中看到一个新客户端。
- 在 Admin Portal 中的应用程序页面中,在 REDIRECT URL 字段中输入将 API 请求发送到上游 API 的应用 URL。
- 验证您的 OpenID Connect 身份提供程序具有正确的重定向 URL。
发现使用此端点接收 OpenID Connect 身份提供程序的身份验证请求的 URL:
.well-known/openid-configuration
例如:
https://<rhsso_host>:<rhsso_port>/auth/realms/<realm_name>/.well-known/openid-configuration
- 对于基础 URL,使用 OpenID Connect Issuer 字段中配置的 API 供应商的值。
编写使用上游 API 的应用程序的 API 使用者:
- 使用您的 OpenConnect 身份提供程序启动授权流。此请求必须包含 3scale 应用程序的客户端 ID 和客户端 secret。在某些情况下,还需要最终用户身份。
- 接收身份提供程序的响应,其中包含授权代码。
API 使用者的应用程序执行以下操作:
- 交换 JWT 的授权代码。
- 身份验证时从 RH-SSO 接收 JWT。
- 发送包含 JWT 的 API 请求到上游 API 后端。
如果 APIcast 接受请求中的 JWT,则您的应用程序将从 API 后端收到响应。
另外,为放置 API 消费者应用,使用 Postman 测试令牌流是否已正确实施。