12.7. 3scale 与 OpenID Connect 身份提供程序集成示例


本例演示了在 3scale 与 Red Hat Single Sign-On (RH-SSO) 集成时的流程作为 OpenID Connect 身份提供程序。这个示例有以下特征:

  • 在 Admin Portal 中,API 供应商定义了一个 3scale API 产品,并将该产品配置为使用 RH-SSO 作为 OpenID Connect 身份提供程序。
  • 这个产品的 OpenID Connect 配置包括:

    • 公共基本 URL:https://api.example.com
    • 私有基本 URL:https://internal-api.example.com
    • OpenID Connect Issuer: https://zync:41dbb98b-e4e9-4a89-84a3-91d1d19c4207@idp.example.com/auth/realms/myrealm
    • 选择 授权代码流 (即标准流)。
  • 在 3scale Developer Portal 中,有以下特征:此应用程序是 API 消费者订阅访问 Developer 门户中特定应用程序计划提供的 3scale API 产品的结果。

    • 客户端 IDmyclientid
    • 客户端 Secretmyclientsecret
    • 重定向 URL:https://myapp.example.com
  • 在 RH-SSO 中,在 myrealm 域中,有具有以下特征的客户端:

    • 客户端 IDmyclientid
    • 客户端 Secretmyclientsecret
    • 重定向 URL:https://myapp.example.com
  • myrealm realm 具有这个用户:

    • 用户名:myuser
    • 密码:mypassword
  • myrealm 中的 3scale Zync 客户端具有正确的 服务帐户 角色

流程如下:

  1. 最终用户 (API consumer) 将在以下端点上向身份验证服务器 (RH-SSO) 发送授权请求:

    https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/auth
    Copy to Clipboard Toggle word wrap

    在请求中,应用程序提供这些参数:

    • 客户端 ID: myclientid
    • 重定向 URL: https://myapp.example.com
  2. 应用将 end-user 重定向到 RH-SSO 登录窗口。
  3. 最终用户使用这些凭证登录到 RH-SSO:

    • 用户名:myuser
    • 密码:mypassword
  4. 根据配置,以及是否首次在此特定应用验证最终用户时,可能会显示同意窗口。
  5. RH-SSO 为最终用户发出授权代码。
  6. API 消费者应用使用以下端点来发送请求,以交换 JWT 的授权代码:

    https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/token
    Copy to Clipboard Toggle word wrap

    请求包含授权代码和这些参数:

    • 客户端 ID:myclientid
    • 客户端 secret:myclientsecret
    • 重定向 URL: https://myapp.example.com.
  7. RH-SSO 返回带有 access_token 字段的 JSON Web Token(JWT),如 eyJhbGciOiJSUzI1NiIsInR5cCIgOiSldUIiwia2lk…xBArNhqF-A
  8. API 消费者应用程序向 https://api.example.com 发送一个 API 请求,其中包含以下标头:

    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-A.
    Copy to Clipboard Toggle word wrap
  9. 该应用应该会收到来自 https://internal-api.example.com 的成功响应。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat