12.5. 3scale とサードパーティー OpenID Connect アイデンティティープロバイダーの統合
API プロバイダーとして、3scale とサードパーティーの OpenID Connect アイデンティティープロバイダーとの間で HTTP インテグレーションを設定できます。つまり、Red Hat Single Sign-On 以外の OpenID Connect アイデンティティープロバイダーを設定できます。3scale はこのインテグレーションを使用して API コンシューマーからの要求を認証し、サードパーティーのアイデンティティープロバイダーを最新の 3scale アプリケーション詳細で更新します。
3scale とサードパーティーの OpenID Connect アイデンティティープロバイダーを統合するのに必要な作業にはほぼ、以下のタスクが含まれます。
- 3scale Zync 関連の前提条件を満たす。
- 3scale アプリケーションから要求を承認するように OpenID Connect アイデンティティープロバイダーを設定する。
前提条件
- 3scale Zync がインストールされている。
選択したサードパーティー OpenID Connect アイデンティティープロバイダー:
- 3scale により提供される Zync の OpenAPI 仕様に準拠している。
-
要求でパラメーターとして宣言された
<client_id>
と<client_secret>
でクライアントの登録を許可する。3scale は、常に 3scale とサードパーティーの OpenID Connect アイデンティティープロバイダーとのインテグレーションにおいて、クライアント ID 管理のソースである。 - 3scale アプリケーションから要求を承認するように設定されている。
上記の前提条件に対応できない場合は、Zync 抽象アダプターに基づくカスタムアダプターを実装する必要がある。Zync はこのアダプターを使用して OpenID Connect アイデンティティープロバイダーと対話します。このアダプターを作成するには、3scale Zync REST API の例 に含まれる rest_adapter.rb を変更してください。
rest_adapter.rb
モジュールは、要件に最も適した方法に従ってzync-que
Pod に含めることができます。たとえば、ボリュームを使用してconfigMap
をマウントするか、Zync の新規イメージをビルドできます。
手順
- 3scale 管理ポータルでの最上位のセレクターで Products をクリックし、OpenID Connect 認証を有効にする 3scale API プロダクトを選択します。
- [Your_product_name] > Integration > Settings の順に移動します。
Authentication で、OpenID Connect Use OpenID Connect for any OAuth 2.0 flow を選択します。
これにより、OPENID CONNECT(OIDC)BASICS セクションが表示されます。
- OpenID Connect Issuer Type フィールドで、設定が REST API であることを確認します。
OpenID Connect Issuer フィールドに OpenID Connect アイデンティティープロバイダーの URL を入力します。この URL の形式は以下のようになります。
https://<client_id>:<client_secret>@<oidc_host>:<oidc_port>/<endpoint>
たとえば、Zync
rest_adapter.rb
の例 では、URL エンドポイントは{endpoint}/clients
としてハードコーディングされます。エンドポイントは{endpoint}/register
などです。OIDC AUTHORIZATION FLOW で、以下のいずれかを選択します。
- 認可コードフロー
- インプリシットフロー
- サービスアカウントフロー
- 直接アクセスグラントフロー
これにより、API コンシューマーアプリケーションが OpenID Connect アイデンティティープロバイダーから JSON Web Tokens (JWT) を受け取る方法が設定されます。認可コードフロー は、ほとんどすべてのケースについて最もセキュアで適切なフローとして推奨されます。OpenID Connect アイデンティティープロバイダーがサポートする OAuth 2.0 フロー を必ず選択してください。
- 下方向にスクロールして Update Product をクリックし、設定を保存します。
- 左側のナビゲーションパネルで Integration > Configuration をクリックします。
- 下にスクロールして Promote v.x to APIcast Staging をクリックします。
次のステップ
サードパーティーアイデンティティープロバイダーとのインテグレーションをテストします。すべてがそのまま機能したら、Integration > Configuration ページに戻り、下方向にスクロールして APIcast ステージングバージョンを実稼働バージョンにプロモートします。