> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Apigee Edge で開発・管理するバックエンドサービス API の API プロキシへのアクセスを、Auth0 で保護する方法を説明します。

# Auth0 で Apigee を保護する

バックエンドサービス API の開発と管理に Apigee Edge を使用している場合は、Auth0 を使用して API プロキシへのアクセスを保護できます。

<div id="prerequisites">
  ## 前提条件
</div>

始める前に、次のものが必要です。

1. 保護対象の Apigee Edge API プロキシがあること。詳しくは、Apigee の [Get Started](https://docs.apigee.com/api-platform/get-started/get-started) を参照してください。
2. Auth0 アカウントに[サインアップ](https://auth0.com/signup)していること。

API プロキシの構築手順は、この記事の対象外です。ここでは、代わりに、既存の API プロキシを Auth0 を使用して保護する方法に焦点を当てます。

<div id="create-a-custom-api">
  ## カスタムAPIを作成する
</div>

まず、[Dashboard を使用して Apigee Edge API Proxy を登録します](/ja/docs/get-started/auth0-overview/set-up-apis)。発行される <Tooltip tip="オーディエンス: 発行されたトークンの対象となる一意の識別子です。トークンでは aud という名前で表され、その値には IDトークンの場合はアプリケーション（クライアントID）、アクセストークンの場合は API（API Identifier）の ID が含まれます。" cta="用語集を表示" href="/ja/docs/glossary?term=audience">オーディエンス</Tooltip> が正しいオーディエンスで発行されるようにするには、Auth0 が Apigee を <Tooltip tip="オーディエンス: 発行されたトークンの対象となる一意の識別子です。トークンでは aud という名前で表され、その値には IDトークンの場合はアプリケーション（クライアントID）、アクセストークンの場合は API（API Identifier）の ID が含まれます。" cta="用語集を表示" href="/ja/docs/glossary?term=Access+Tokens">アクセストークン</Tooltip> のオーディエンスとして認識する必要があります。ユーザーはアプリケーションを介して Auth0 で認証され、アプリケーションはこのオーディエンス値を指定することで、指定したオーディエンスに対して適切なスコープを持つアクセストークンを取得できます。

次の操作を行います。

1. API の名前を指定します (例: `apigee`) 。
2. API の識別子を指定します: `urn:apigee:target:api`
3. 署名アルゴリズムとして `RS256` (デフォルト) を選択します

Apigee Edge API Proxy を登録すると、Auth0 は **Machine to Machine (M2M)** アプリケーションも自動的に作成し、登録した API と同じ名前を付けます。このアプリケーションはテストに使用でき、API の呼び出しが許可されるよう自動的に設定されます。

<div id="note-variables-from-the-test-application">
  ## テストアプリケーションの変数を控えておく
</div>

API の登録時に作成したテストアプリケーションに切り替え、API の登録および関連する M2M アプリケーションの作成時に設定した変数を控えておきます。このチュートリアルの以降の手順で必要になります。

1. [Auth0 Dashboard > Applications](https://manage.auth0.com/#/applications)] に移動し、テストアプリケーションの名前をクリックします。
2. 下にスクロールして、次の変数を控えておきます。

   * API オーディエンス
   * Auth0 ドメイン
   * クライアントID
   * Allowed callback URL(s): 認証後にユーザーをリダイレクトする URL です。複数の URL を指定する場合は、カンマ区切りで入力します。 (通常は、環境ごとに異なるリダイレクト URL が必要な場合に使用します。)

<div id="implement-the-client-credentials-flow">
  ## Client Credentials Flow を実装する
</div>

これで、Apigee Edge に渡すアクセストークンをリクエストするために、Client Credentials Flow を実装する準備が整いました。このシナリオでは、Apigee をバックエンドサービス API とともに使用しており、これは Machine-to-Machine (M2M) アプリケーションに該当するため、Client Credentials Flow を使用します。なお、シナリオによっては別のフローを使用する必要がある場合もあります。

Apigee Edge の呼び出しに使用できるアクセストークンを取得してログインする方法については、[Call API Using the Client Credentials Flow](/ja/docs/get-started/authentication-and-authorization-flow/client-credentials-flow/call-your-api-using-the-client-credentials-flow) を参照してください。

<div id="validate-the-access-token">
  ## アクセストークンを検証する
</div>

Auth0 からアクセストークンをリクエストして受け取ると、それを使って Edge で設定した API プロキシを呼び出せるようになります。

[アクセストークンを使用する](https://docs.apigee.com/api-platform/security/oauth/using-access-tokens.html)と、Apigee Edge が最初に行うのは[トークンの検証](https://docs.apigee.com/api-platform/security/oauth/using-access-tokens.html#addingaverifyaccesstokenpolicy)です。

Auth0 のアクセストークンは <Tooltip tip="JSON Web Token (JWT): 2 者間でクレームを安全に表現するために使用される、標準的な IDトークン形式（多くの場合、アクセストークン形式としても使用）。" cta="用語集を表示" href="/ja/docs/glossary?term=JSON+Web+Tokens">JSON Web Tokens</Tooltip> (JWT) なので、この検証には Apigee Edge の Verify JWT policy を利用できます。詳しくは、Apigee の [Verify JWT policy signed with the RS256 algorithm](https://docs.apigee.com/api-platform/reference/policies/verify-jwt-policy#verify-a-jwt-signed-with-the-rs256-algorithm) を参照してください。

Apigee Edge は、他の処理が行われる前にトークンを検証します。トークンが拒否された場合は、すべての処理が停止し、Edge はクライアントにエラーを返します。

<div id="testing">
  ## テスト
</div>

実装をテストするには、リクエストヘッダーに Auth0 が発行したアクセストークンを含めて、Apigee Edge に HTTP POST リクエストを送信します。手順については、Apigee の [保護された API の呼び出し](https://docs.apigee.com/api-platform/security/oauth/oauth-20-client-credentials-grant-type.html#callingtheprotectedapi) に関する記事を参照してください。

成功レスポンスを受け取ったら、トークンを取り出して確認し、必要なユーザークレームまたは要求したユーザークレームが含まれていることを検証します。
