第13章 3scale API Management と OpenID Connect アイデンティティープロバイダーの統合


API 要求を認証するために、3scale は OpenID Connect 仕様 に準拠するアイデンティティープロバイダーと統合できます。3scale との互換性を確保するために、アイデンティティープロバイダーは Red Hat single sign-on または Red Hat build of Keycloakデフォルトの Keycloak クライアント登録 を実装するサードパーティーのアイデンティティープロバイダーに指定できます。OpenID Connect を実装するすべてのアイデンティティープロバイダーは、3scale API ゲートウェイ (APIcast) と互換性があります。

注記

3scale では、RFC 7591 Dynamic Client Registration Mechanism は使用されません。3scale と OpenID Connect アイデンティティープロバイダー間で互換性を完全に確保するため、デフォルトの Keycloak クライアント登録の依存関係があります。

OpenID Connect のベースは OAuth 2.0 Authorization Framework (RFC 6749) です。OpenID Connect は API 要求で JSON Web Token(JWT)(RFC 7519) を使用してその要求を認証します。3scale を OpenID Connect アイデンティティープロバイダーと統合する場合に、プロセスには主要な部分が 2 つあります。

  • APIcast は要求内の JWT を解析して検証します。成功すると、APIcast は API コンシューマークライアントアプリケーションの ID を認証します。
  • 3scale Zync コンポーネントは、3scale アプリケーションの詳細を OpenID Connect アイデンティティープロバイダーと同期します。

3scale は、Red Hat の single sign-on テクノロジーまたは Red Hat build of Keycloak が OpenID Connect アイデンティティープロバイダーである場合に、これらのインテグレーションポイントの両方をサポートします。サポートされるバージョンは、Supported Configurations を参照してください。ただし、Red Hat の single sign-on テクノロジーまたは Red Hat build of Keycloak の使用は必須ではありません。OpenID Connect 仕様およびデフォルトの Keycloak クライアント登録をサポートするアイデンティティープロバイダーを使用できます。APIcast のインテグレーションは、Red Hat のシングルサインオン、Red Hat build of Keycloak、および ForgeRock を使用してテストされています。

以下のセクションでは、OpenID Connect アイデンティティープロバイダーを使用するように 3scale を設定する方法を説明します。

13.1. 3scale API Management と OpenID Connect アイデンティティープロバイダーのインテグレーションの概要

主要な Red Hat 3scale API Management コンポーネントはそれぞれ、以下のように認証に参加します。

  • APIcast は、API コンシューマーアプリケーションが提供する認証トークンの信頼性を検証します。デフォルトの 3scale デプロイメントでは、APIcast は API プロダクトの OpenID Connect 設定の自動検出を実装するので、このような検証が可能です。
  • API プロバイダーは管理ポータルを使用して認証フローを設定します。
  • 3scale マネージドの API が標準の API キーまたはアプリケーション ID とキーペアで要求を認証しない場合には、API プロバイダーは 3scale を OpenID Connect アイデンティティープロバイダーと統合する必要があります。下図の OpenID Connect アイデンティティープロバイダーは Red Hat single sign-on です。
  • 認証設定とライブの開発者ポータルにより、API コンシューマーは開発者ポータルを使用して特定の 3scale API プロダクトにアクセスできるようにするアプリケーションプランにサブスクライブします。
  • OpenID Connect が 3scale と統合されると、サブスクリプションは API コンシューマーアプリケーションに設定されたフローをトリガーして、OpenID Connect アイデンティティープロバイダーから JSON Web Tokens (JWT) を取得します。API プロバイダーは OpenID Connect を使用するように API プロダクトを設定するタイミングで、このフローを指定します。

図13.1 OpenID Connect アイデンティティープロバイダーを使用する主要な 3scale コンポーネント

OpenID Connect アイデンティティープロバイダーが含まれる主要な 3scale コンポーネント

アプリケーションプランにサブスクライブした後に、API コンシューマーは統合された OpenID Connect アイデンティティープロバイダーから認証情報を取得します。これらの認証情報により、API コンシューマーアプリケーションがアップストリーム API (API コンシューマーがアクセスできる 3scale API プロダクトによって提供される API) に送信する要求の認証が可能になります。

認証情報には、クライアント ID とクライアントシークレットが含まれます。API コンシューマーによって作成されたアプリケーションは、これらの認証情報を使用して、OpenID Connect ID プロバイダーから JSON Web Token (JWT) を取得します。OpenID Connect で 3scale インテグレーションを設定する場合には、API コンシューマーアプリケーションが JWT を取得する方法のフローを選択します。Red Hat の single sign-on テクノロジーでデフォルトの 認可コード フローを使用する API コンシューマーアプリケーションでは、アプリケーションが以下を実行する必要があります。

  1. アップストリーム API バックエンドへの最初の要求の前に、OpenID Connect アイデンティティープロバイダーで OAuth 承認フローを開始します。認可コードフローはエンドユーザーを Red Hat single sign-on にリダイレクトします。エンドユーザーはログインして認可コードを取得します。
  2. JWT の認可コードを交換します。
  3. 認証時に Red Hat single sign-on から JWT を受け取ります。
  4. JWT が含まれる API 要求をアップストリーム API バックエンドに送信します。
  5. 有効期限が切れるまで、同じ JWT で後続の API 要求を送信します。
  6. JWT を更新するか、OpenID Connect アイデンティティープロバイダーに新しい要求を送信し、新しい JWT を取得します。必要なアクションは OpenID Connect アイデンティティープロバイダーによって異なります。

APIcast は API コンシューマーから要求を受け取り、その要求内の JWT を確認します。APIcast が JWT を検証する場合には、APIcast は JWT などの要求をアップストリーム API バックエンドに送信します。

図13.2 OpenID Connect アイデンティティープロバイダーは Red Hat single sign-on (ただし他の OpenID Connect アイデンティティープロバイダーも設定可能)

API 要求の認証
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.