> ## 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.

> Auth0 を使用して、Apigee Edge で開発・管理される API プロキシへのアクセスを保護する方法を学びます。

# 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 を登録します](/docs/ja-jp/get-started/auth0-overview/set-up-apis)。Auth0 が発行する <Tooltip tip="Audience: 発行されたトークンの対象を一意に識別する値です。トークン内では aud という名前で表され、その値には ID トークンの場合はアプリケーション（Client ID）、アクセストークンの場合は API（API Identifier）の ID が含まれます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Access+Tokens">アクセストークン</Tooltip> に正しい audience が設定されるようにするには、Auth0 が Apigee を <Tooltip tip="Audience: 発行されたトークンの対象を一意に識別する値です。トークン内では aud という名前で表され、その値には ID トークンの場合はアプリケーション（Client ID）、アクセストークンの場合は API（API Identifier）の ID が含まれます。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=audience">audience</Tooltip> として認識している必要があります。ユーザーはアプリケーション経由で Auth0 に認証され、アプリケーションはこの audience 値を指定することで、アクセストークンにその audience に対する適切なスコープが含まれるようにします。

次の操作を行います。

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 > アプリケーション](https://manage.auth0.com/#/applications)] に移動し、テストアプリケーションの名前をクリックします。
2. 下にスクロールして、次の変数をメモします。

   * API audience
   * Auth0 domain
   * Client ID
   * Allowed callback URL(s): 認証後にユーザーをリダイレクトできるURLです。複数のURLを指定する場合は、カンマ区切りで指定できます。 (通常は、環境ごとに個別のリダイレクト先が必要になるためです。)

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

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

ログインして、Apigee Edge を呼び出す際に使用できるアクセストークンを取得する方法については、[Call API Using the Client Credentials Flow](/docs/ja-jp/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="/docs/ja-jp/glossary?term=JSON+Web+Tokens">JSON Web Tokens</Tooltip> (JWT) なので、Apigee Edge の Verify JWT ポリシーを使ってこれを実行できます。詳しくは、Apigee の [RS256 アルゴリズムで署名された JWT を検証する Verify JWT ポリシー](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) に関する記事を参照してください。

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