13.6. OpenID Connect アイデンティティープロバイダーとの 3scale API Management インテグレーションのテスト
3scale と OpenID Connect アイデンティティープロバイダーを統合した後に、インテグレーションをテストし、以下を確認します。
- API コンシューマーは、3scale 管理の API にサブスクライブすると、アクセスクレデンシャルを受け取ります。
- APIcast は API コンシューマーからのリクエストを認証できます。
前提条件
- 特定の 3scale API プロダクトに対して 3scale と OpenID Connect アイデンティティープロバイダー間のインテグレーションが用意されている。このインテグレーションは 認可コードフロー を使用します。
- API コンシューマーが開発ポータルでサブスクライブできるアプリケーションプランがある。このアプリケーションプランを使用して、3scale 管理の API (OpenID Connect 認証を設定した 3scale プロダクト) にアクセスできる。
- アップストリーム API に要求を送信するアプリケーション。アップストリーム API は、サブスクリプションを行うことで API コンシューマーアプリケーションがアクセスできる 3scale プロダクトのバックエンドです。または、Postman を使用して要求を送信することもできます。
手順
開発者ポータルで、アプリケーションプランにサブスクライブします。
これにより、開発者ポータルでアプリケーションが作成されます。OpenID Connect アイデンティティープロバイダーは、開発者ポータルのアプリケーションページに表示されるクライアント ID およびクライアントシークレットを返す必要があります。
- アプリケーションのクライアント ID およびクライアントシークレットを書き留めます。
- OpenID Connect アイデンティティープロバイダーが同じクライアント ID とクライアントシークレットを持つクライアントであることを確認します。たとえば、Red Hat の single sign-on テクノロジーが OpenID Connect アイデンティティープロバイダーである場合に、設定された single sign-on レルムに新しいクライアントが表示されます。
- アドミンポータルのアプリケーションページの REDIRECT URL フィールドに、アップストリーム API に API 要求を送信するアプリケーションの URL を入力します。
- OpenID Connect アイデンティティープロバイダーに正しいリダイレクト URL があることを確認します。
このエンドポイントを使用して、OpenID Connect アイデンティティープロバイダーの認証要求を受信する URL を見つけます。
.well-known/openid-configuration以下に例を示します。
https://<rhsso_host>:<rhsso_port>/auth/realms/<realm_name>/.well-known/openid-configuration- ベース URL には、API プロバイダーが OpenID Connect Issuer フィールドで設定した値を使用します。
アップストリーム API の使用に関するアプリケーションを記述する API コンシューマーは、以下を行います。
- OpenConnect アイデンティティープロバイダーで承認フローを開始します。この要求には、3scale アプリケーションのクライアント ID およびクライアントシークレットが含まれている必要があります。エンドユーザーのアイデンティティーも必要になる場合があります。
- 認可コードが含まれるアイデンティティープロバイダーの応答を受け取ります。
API コンシューマーのアプリケーションは以下を行います。
- JWT の認可コードを交換します。
- 認証時に single sign-on から JWT を受け取ります。
- JWT が含まれる API 要求をアップストリーム API バックエンドに送信します。
APIcast が要求で JWT を受け入れると、アプリケーションは API バックエンドから応答を受け取ります。
また、API コンシューマーアプリケーションの代わりに、Postman を使用して、トークンフローが適切に実装されていることをテスト します。