第12章 OpenID Connect インテグレーション


3scale では、OpenID Connect 仕様と以下の機能を使用して、API リクエストの認証用にサードパーティーアイデンティティープロバイダー (IdP) を統合します。

  • OpenID Connect は OAuth 2.0 に追加する形で構築され、OAuth 2.0 の承認フレームワークを認証メカニズムにより補完します。
  • OpenID Connect authentication オプションが使用されると、API リクエストは JSON Web Token (JWT) 形式 (RFC 7519) のアクセストークンを使用して認証されます。

インテグレーションは、以下に示す 2 つの部分で構成されます。

Red Hat 3scale API Management は、OpenID プロバイダーとして機能する Red Hat Single Sign-On (RH-SSO) により、両方のインテグレーションポイントを完全にサポートしています。サポートされる RH-SSO のバージョンについては、「Red Hat 3scale API Management のサポート対象構成」のアーティクルを参照してください。APIcast のインテグレーションは、ForgeRock でもテストされています。

どちらのケースでも、OpenID Connect の認証オプションを使用するサービスの Integration ページにおいて、APIcast Configuration の OpenID Connect Issuer フィールドを指定して、インテグレーションを設定することができます。手順については、「3 scale と Red Hat Single Sign-On のインテグレーション」を参照してください。

12.1. APIcast による JWT の検証および解析

OpenID Connect の認証モードを使用するサービスに対する API リクエストは、OpenID プロバイダーにより発行された JWT 形式のアクセストークンを提供する必要があります。このトークンは、Bearer スキーマを使用して Authorization ヘッダーで提供されます。ヘッダーの例を以下に示します。

Authorization: Bearer <JWK>

例:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lkcC5leGFtcGxlLmNvbSIsInN1YiI6ImFiYzEyMyIsIm5iZiI6MTUzNzg5MjQ5NCwiZXhwIjoxNTM3ODk2MDk0LCJpYXQiOjE1Mzc4OTI0OTQsImp0aSI6ImlkMTIzNDU2IiwidHlwIjoiQmVhcmVyIn0.LM2PSmQ0k8mR7eDS_Z8iRdGta-Ea-pJRrf4C6bAiKz-Nzhxpm7fF7oV3BOipFmimwkQ_-mw3kN--oOc3vU1RE4FTCQGbzO1SAWHOZqG5ZUx5ugaASY-hUHIohy6PC7dQl0e2NlAeqqg4MuZtEwrpESJW-VnGdljrAS0HsXzd6nENM0Z_ofo4ZdTKvIKsk2KrdyVBOcjgVjYongtppR0cw30FwnpqfeCkuATeINN5OKHXOibRA24pQyIF1s81nnmxLnjnVbu24SFE34aMGRXYzs4icMI8sK65eKxbvwV3PIG3mM0C4ilZPO26doP0YrLfVwFcqEirmENUAcHXz7NuvA

JWT トークンの受領者はトークンに含まれる署名を検証し、トークンが既知の発行者により署名されていること、およびその内容が変更されていないことを確認します。3scale では、公開/秘密鍵のペアに基づく RSA 署名がサポートされます。なお、発行者は秘密鍵を使用して JWT トークンに署名します。APIcast は公開鍵を使用してこのトークンを検証します。

APIcast では、JWT 署名の検証に使用する JSON Web Key (JWK) の取得に、OpenID Connect Discovery が使用されます。

それぞれのリクエストについて、APIcast は以下の処理を行います。

  1. 公開鍵を使用して JWT トークンを検証する。
  2. クレーム nbf および exp を検証する。
  3. クレーム iss (Issuer) で指定される発行者が OpenID Connect Issuer フィールドで設定される発行者と同じであることを検証する。
  4. azp または aud クレームの値を抽出し、3scale でアプリケーションを識別するクライアント ID として使用して Service Management API を通じて呼び出しを承認する。

JWT の検証または承認の確認のいずれかが失敗すると、APIcast はAuthenication failed エラーを返します。そうでなければ、APIcast は API バックエンドにリクエストをプロキシー処理します。Authorization ヘッダーはリクエストにそのまま残るので、API バックエンドは JWT トークンを使用してユーザーおよびクライアントの ID を確認することもできます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.