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

前提条件

始める前に、次のものが必要です。
  1. 保護対象の Apigee Edge API プロキシがあること。詳しくは、Apigee の Get Started 記事をご覧ください。
  2. Auth0 のアカウントに登録していること。
API プロキシの構築方法については、この記事では扱いません。代わりに、すでにある API プロキシを Auth0 を使って保護する方法に焦点を当てます。

カスタム API を作成する

まず、Dashboard を使用して Apigee Edge API Proxy を登録します。Auth0 が発行する に正しい audience が設定されるようにするには、Auth0 が Apigee を として認識している必要があります。ユーザーはアプリケーション経由で 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 の呼び出しが許可されるよう自動的に設定されます。

テストアプリケーションの変数をメモする

APIの登録時に作成したテストアプリケーションに切り替え、APIの登録および関連するM2Mアプリケーションの作成時に設定された変数をメモしておきます。これらは、このチュートリアルの以降の手順で使用します。
  1. Auth0 Dashboard > アプリケーション] に移動し、テストアプリケーションの名前をクリックします。
  2. 下にスクロールして、次の変数をメモします。
    • API audience
    • Auth0 domain
    • Client ID
    • Allowed callback URL(s): 認証後にユーザーをリダイレクトできるURLです。複数のURLを指定する場合は、カンマ区切りで指定できます。 (通常は、環境ごとに個別のリダイレクト先が必要になるためです。)

Client Credentialsフローを実装する

これで、Apigee Edge に渡すアクセストークンをリクエストするための Client Credentialsフローを実装する準備が整いました。このシナリオでは、バックエンド サービス API で Apigee を使用しており、それが Machine-to-Machine (M2M) アプリケーションに該当するため、Client Credentialsフローを使用します。なお、ほかのシナリオでは別のフローを使用する必要がある場合があります。 ログインして、Apigee Edge を呼び出す際に使用できるアクセストークンを取得する方法については、Call API Using the Client Credentials Flow を参照してください。

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

Auth0 からアクセストークンを要求して受け取ると、それを使って Edge で設定した API プロキシを呼び出せるようになります。 アクセストークンを使用すると、Apigee Edge が最初に行うのはトークンの検証です。 Auth0 のアクセストークンは (JWT) なので、Apigee Edge の Verify JWT ポリシーを使ってこれを実行できます。詳しくは、Apigee の RS256 アルゴリズムで署名された JWT を検証する Verify JWT ポリシー に関する記事をご覧ください。 Apigee Edge は、他のどの処理よりも先にトークンを検証します。トークンが拒否されると、以降の処理はすべて停止し、Edge はクライアントにエラーを返します。

テスト

実装をテストするには、呼び出しヘッダーに Auth0 が発行したアクセストークンを含めて、Apigee Edge に HTTP POST リクエストを送信します。手順については、Apigee の 保護された API の呼び出し に関する記事を参照してください。 正常なレスポンスを受け取ったら、トークンを取り出して内容を確認し、必要な、または要求されたユーザークレームが含まれていることを検証します。