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

前提条件

始める前に、次のものが必要です。
  1. 保護対象の Apigee Edge API プロキシがあること。詳しくは、Apigee の Get Started を参照してください。
  2. Auth0 アカウントにサインアップしていること。
API プロキシの構築手順は、この記事の対象外です。ここでは、代わりに、既存の API プロキシを Auth0 を使用して保護する方法に焦点を当てます。

カスタムAPIを作成する

まず、Dashboard を使用して Apigee Edge API Proxy を登録します。発行される が正しいオーディエンスで発行されるようにするには、Auth0 が Apigee を のオーディエンスとして認識する必要があります。ユーザーはアプリケーションを介して Auth0 で認証され、アプリケーションはこのオーディエンス値を指定することで、指定したオーディエンスに対して適切なスコープを持つアクセストークンを取得できます。 次の操作を行います。
  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 > Applications] に移動し、テストアプリケーションの名前をクリックします。
  2. 下にスクロールして、次の変数を控えておきます。
    • API オーディエンス
    • Auth0 ドメイン
    • クライアントID
    • Allowed callback URL(s): 認証後にユーザーをリダイレクトする URL です。複数の URL を指定する場合は、カンマ区切りで入力します。 (通常は、環境ごとに異なるリダイレクト URL が必要な場合に使用します。)

Client Credentials Flow を実装する

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

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

Auth0 からアクセストークンをリクエストして受け取ると、それを使って Edge で設定した API プロキシを呼び出せるようになります。 アクセストークンを使用すると、Apigee Edge が最初に行うのはトークンの検証です。 Auth0 のアクセストークンは (JWT) なので、この検証には Apigee Edge の Verify JWT policy を利用できます。詳しくは、Apigee の Verify JWT policy signed with the RS256 algorithm を参照してください。 Apigee Edge は、他の処理が行われる前にトークンを検証します。トークンが拒否された場合は、すべての処理が停止し、Edge はクライアントにエラーを返します。

テスト

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