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 の新規イメージをビルドできます。

手順

  1. 3scale 管理ポータルでの最上位のセレクターで Products をクリックし、OpenID Connect 認証を有効にする 3scale API プロダクトを選択します。
  2. [Your_product_name] > Integration > Settings の順に移動します。
  3. Authentication で、OpenID Connect Use OpenID Connect for any OAuth 2.0 flow を選択します。

    これにより、OPENID CONNECT(OIDC)BASICS セクションが表示されます。

  4. OpenID Connect Issuer Type フィールドで、設定が REST API であることを確認します。
  5. 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 などです。

  6. OIDC AUTHORIZATION FLOW で、以下のいずれかを選択します。

    • 認可コードフロー
    • インプリシットフロー
    • サービスアカウントフロー
    • 直接アクセスグラントフロー

    これにより、API コンシューマーアプリケーションが OpenID Connect アイデンティティープロバイダーから JSON Web Tokens (JWT) を受け取る方法が設定されます。認可コードフロー は、ほとんどすべてのケースについて最もセキュアで適切なフローとして推奨されます。OpenID Connect アイデンティティープロバイダーがサポートする OAuth 2.0 フロー を必ず選択してください。

  7. 下方向にスクロールして Update Product をクリックし、設定を保存します。
  8. 左側のナビゲーションパネルで Integration > Configuration をクリックします。
  9. 下にスクロールして Promote v.x to APIcast Staging をクリックします。

次のステップ

サードパーティーアイデンティティープロバイダーとのインテグレーションをテストします。すべてがそのまま機能したら、Integration > Configuration ページに戻り、下方向にスクロールして APIcast ステージングバージョンを実稼働バージョンにプロモートします。