12.7. 集成示例
3scale 中的服务"API"配置为使用 OpenID Connect 身份验证。服务 "API" 上的 公共基础 URL 配置为 https://api.example.com,Privan Base URL 配置为 https://internal-api.example.com。
OpenID Connect Issuer 字段在 API 集成中被设置为 https://zync:/auth/realms/myrealm,而 realm myrealm 中的 client zync 具有正确的服务帐户角色。
在 3scale 中,有一个应用具有 myclientid 客户端 ID、myclientsecret 客户端机密和 https://myapp.example.com 重定向 URL。在 Red Hat Single Sign-On 中 ,还有一个带有 my clientid 客户端 ID、myclient secret secret 和 https://myapp.example.com Valid Redirect URI 的客户端。在此客户端上启用标准流。myrealm 域中配置了具有 my user 用户名和 my password 密码的用户。
流程如下:
-
使用端点
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/auth,应用将授权请求发送到 RH-SSO。在请求中,应用提供这些参数:myclientid客户端 ID 和https://myapp.example.com重定向 URL。 - RH-SSO 显示登录窗口,其中用户必须提供用户的凭据:Username myuser 和密码 mypassword。
- 根据配置,如果这是用户首次在此特定应用中进行身份验证,则将显示同意窗口。
-
用户通过身份验证后,applciation 使用端点
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/token发送 Token 请求到 RH-SSO,并提供客户端 IDmyclientid、客户端 secretmyclientsecret和 Redirect URLhttps://myapp.example.com。 -
RH-SSO 返回带有"access_token"字段
eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-A的 JSON。 -
应用程序使用标头
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-A发送 API 请求到https://api.example.com。 -
该应用应该会收到来自
https://internal-api.example.com的成功响应。