12.7. インテグレーションの例
3scale のサービス API は、OpenID Connect による認証を使用するように設定されています。サービス API の 公開ベース URL は https://api.example.com に、プライベートベース URL は https://internal-api.example.com に、それぞれ設定されています。
API のインテグレーションの OpenID Connect Issuer フィールドは https://zync:41dbb98b-e4e9-4a89-84a3-91d1d19c4207@idp.example.com/auth/realms/myrealm に設定され、レルム myrealm のクライアント zync には正しい Service Account ロールが設定されています。
3scale には、クライアント ID、クライアントシークレット、およびリダイレクト URL がそれぞれ myclientid、myclientsecret、および https://myapp.example.com に設定されたアプリケーションがあります。
RH-SSO の myrealm レルムには、次の値を持つクライアントも存在します。
-
クライアント ID:
myclientid -
シークレット:
myclientsecret -
Valid Redirect URIs:
https://myapp.example.com
このクライアントでは、標準フローが有効になっています。
レルム myrealm には 1 人のユーザーが設定され、そのユーザー名およびパスワードは myuser および mypassword です。
フローは以下のようになります。
-
エンドポイント
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/authを使用して、アプリケーションは RH-SSO に承認リクエストを送信します。このリクエストの中で、アプリケーションはmyclientidクライアント ID およびhttps://myapp.example.comリダイレクト URL をパラメーターとして提供します。 - RH-SSO はログインウィンドウを表示し、ユーザーはここで自分のクレデンシャル (ユーザー名 myuser およびパスワード mypassword) を入力する必要があります。
- 設定およびユーザーがこのアプリケーションで初めて認証されるかどうかに応じて、同意に関するウィンドウが表示されます。
-
ユーザーが認証されると、アプリケーションはエンドポイント
https://idp.example.com/auth/realms/myrealm/protocol/openid-connect/tokenを使用して、クライアント IDmyclientid、クライアントシークレットmyclientsecret、およびリダイレクト URLhttps://myapp.example.comと共に、トークンリクエストを RH-SSO に送信します。 -
RH-SSO は、access_token フィールドが
eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-Aと設定された JSON を返します。 -
アプリケーションは、ヘッダー
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lk…xBArNhqF-Aと共に API リクエストをhttps://api.example.comに送信します。 -
アプリケーションは、
https://internal-api.example.comから正常なレスポンスを受け取るはずです。