12.7. インテグレーションの例
3scale のサービス API が OpenID Connect 認証を使用するように設定されます。サービス API の 公開ベース URL は https://api.example.com
に、プライベートベース URL は https://internal-api.example.com
に、それぞれ設定されています。
API インテグレーションで OpenID Connect Issuer フィールドは https://zync:/auth/realms/myrealm
に設定され、レルム myrealm のクライアント zync
には正しい Service Account ロールが設定されています。
3scale には、クライアント
ID、myclientsecret
クライアントシークレット、およびリダイレクト URL が https://myapp.example.com である
アプリケーションがあります。
RH-SSO では、myrealm レルム に以下の値を持つクライアントも存在します。
-
Client ID:
myclientid
-
Secret:
myclientsecret
-
Valid Redirect URIs:
https://myapp.example.com
このクライアントでは、Standard Flow が有効になっています。レルム 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
から正常なレスポンスを受け取るはずです。