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
的成功响应。