8.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
から正常なレスポンスを受け取るはずです。