> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth0でApigeeを保護する

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

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

## 前提条件

開始する前に、以下が必要です。

1. 保護する必要のあるApigee EdgeのAPIプロキシを用意します。詳細については、Apigeeの「[はじめに](https://docs.apigee.com/api-platform/get-started/get-started)」の記事をお読みください。
2. Auth0に[サインアップ](https://auth0.com/signup)してアカウントを取得します。

APIプロキシを構築するプロセスについては、本記事では扱いません。すでにお持ちのAPIプロキシを、Auth0を使ってセキュリティ保護する方法に焦点を当ててご説明します。

## カスタムAPIを作成する

まず、[Dashboardを使用してApigee Edge APIプロキシを登録します](/docs/ja-jp/get-started/auth0-overview/set-up-apis)。発行されたすべてのアクセストークンのオーディエンスが正しいことを確認するために、Auth0はApigeeをオーディエンスとして認識する必要があります。ユーザーがアプリケーションを通じてAuth0で認証し、アプリケーションがオーディエンス値を指定して、アクセストークンが提供されたオーディエンスに対して適切なスコープを持つようにします。

次のことをする必要があります。

1. APIの名前を入力する（例：`apigee`）
2. APIの識別子を入力する：`urn:apigee:target:api`
3. 署名アルゴリズムを選択する：`RS256`（デフォルト）

Apigee Edge APIプロキシを登録すると、Auth0が **マシンツーマシン（M2M）** アプリケーションも自動作成し、登録されたAPIと一致する名前を付けます。このアプリケーションはテストに使用することができ、API呼び出しのために認可されるように自動的に構成されます。

## テストアプリケーションから変数をメモしておく

APIを登録する際に作成されたテストアプリケーションに切り替え、APIの登録プロセスや関連するM2Mアプリケーションの作成中に設定された変数をメモしてください。このチュートリアルの後続の手順で必要になります。

1. [［Auth0 Dashboard］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動し、テストアプリケーションの名前をクリックします。
2. 下にスクロールし、以下の変数をメモします。

   * APIオーディエンス
   * Auth0ドメイン
   * クライアントID
   * 許可されているコールバックURL：認証後にユーザーがリダイレクトされるURL。複数のURLを指定するには、カンマで区切って入力します（これは通常、環境ごとにそれぞれ独自のリダイレクトが必要な場合に行います）。

## クライアントの資格情報フローを実装する

これで、クライアントの資格情報フローを実装し、Apigee Edgeに提供するアクセストークンを要求する準備が整いました。このシナリオでは、ApigeeをバックエンドサービスAPIと共に使用しており、これはマシンツーマシン（M2M）アプリケーションを表しているため、クライアント資格情報フローを使用します。他のシナリオでは異なるフローが必要になる場合があります。

ログイン方法と、Apigee Edgeの呼び出しに使用できるアクセストークンの取得方法についての詳細は、「[クライアントの資格情報フローを使ってAPIを呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow/call-your-api-using-the-client-credentials-flow)」をご覧ください。

## アクセストークンを検証する

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 data-tooltip-id="react-containers-DefinitionTooltip-2" href="/docs/ja-jp/glossary?term=json-web-token" tip="JSON Web Token（JWT）: 二者間のクレームを安全に表現するために使用される標準IDトークン形式（および多くの場合、アクセストークン形式）。" cta="用語集の表示">JSON Web Token</Tooltip>（JWT）なので、Apigee EdgeのVerifyJWTポリシーを活用してこれを実行できます。詳細については、Apigeeで「[RS256アルゴリズムで署名されたJWTの検証ポリシー](https://docs.apigee.com/api-platform/reference/policies/verify-jwt-policy#verify-a-jwt-signed-with-the-rs256-algorithm)」をお読みください。

Apigee Edgeは何か生じる前にトークンを検証します。トークンが拒絶された場合、すべての処理が中断し、Edgeはクライアントにエラーを返します。

## テスト

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

成功の応答を受け取ったら、トークンを抽出し、必要な/要求されたユーザークレームが含まれているかを確認します。
