Skip to main content

始める前に

Azure Portal にアクセスできる Microsoft アカウントが必要です。
Azure API Management サービスでは、新しい API を作成したり、既存の API 定義をインポートしたりして、承認されたオーディエンス向けに公開できます。Auth0 を使えば、API ユーザーの認可を ( 標準に基づいて) 簡単に行えます。 このチュートリアルでは、Azure API Management で管理される Basic Calculator API にユーザーがアクセスする際に、Auth0 を使用してユーザーを認証および認可する方法を学びます。

Auth0 の設定

API を作成

Azure API Management Service で管理する API を表すために、Auth0 で API を作成する必要があります。詳しくは、API を登録するを参照してください。
  1. Auth0 Dashboard > アプリケーション > APIs に移動し、Create API を選択します。
  2. 次のパラメーターを設定します。
  3. Create を選択します。

従来型Webアプリケーションを作成する

Azure の OAuth 2.0 と通信するために、Auth0 で従来型Webアプリケーション (RWA) を作成する必要があります。
  1. Auth0 Dashboard > アプリケーション > アプリケーション に移動し、Create Application ボタンを選択します。
  2. アプリケーションの Name を入力し、アプリケーションの種類として 従来型Webアプリケーション を選択します。

接続を作成して有効にする

Auth0 で接続を作成し、その接続をアプリケーションで有効にする必要があります。
  1. Auth0 Dashboard > Authentication > Database に移動し、Create DB Connection を選択します。
  2. 接続の Name を入力します。ユーザーのソースがわかる名前にすることをおすすめします (たとえば、Facebook の認証情報を使うユーザーを含む接続なら Facebook、サイト上でユーザー登録するデータベース接続なら site-sign-ups など) 。
  3. Create を選択します。
  4. 接続の Settings ページに移動します。
  5. アプリケーション ビューに切り替えると、テナント内のすべてのアプリケーションの一覧が表示されます。
  6. 先ほど作成したアプリケーションのトグルをオンにして、その接続で有効にします。

ユーザーを作成する

既存のユーザーセットがある場合は、それらをインポートするか、カスタムデータベース接続を作成できます。
認証と認可をテストするには、接続に少なくとも1人のユーザーが必要です。接続に既存のユーザーがいない場合は、手動で作成できます。
  1. Auth0 Dashboard > User Management > Users に移動し、Create User を選択します。
  2. EmailPassword を入力し、Connection フィールドで手順 3 で作成した接続を選択します。
  3. Create を選択します。

Azure の設定

Azure API Management Service を作成する

API を管理するには、Azure で API Management Service インスタンスを作成する必要があります。
  1. ナビゲーション バーで Create a resource を選択します。
  2. 移動先の画面で、Web > API Management を選択します。
  3. 次の設定項目を入力します。
  4. Create を選択してサービスのプロビジョニングを開始します (完了まで最大 15 分かかる場合があります) 。

サンプル API をインポートする

このチュートリアルでは、Microsoft が提供する Basic Calculator API をインポートして使用します。詳しい手順については、Microsoft の Import and Publish Your First API を参照してください。 完了したら、Create を選択して API をインポートします。インポートが完了すると、API の概要ページに移動します。

OAuth 2.0 認可サーバーを設定する

Azure API を Auth0 で保護するには、Auth0 を OAuth 2.0 認可サーバーとして登録する必要があります。
  1. ナビゲーション バー付近にある API Management Service インスタンスの OAuth 2.0 + OpenID Connect 領域を見つけます。OAuth 2.0 を選択し、次に Add を選択します。
  2. Add OAuth2 service の設定画面に移動し、認可コードのグラントタイプを選択します。
  3. 次のパラメーターを設定します。
  4. Client Credentials セクションで、Client ID フィールドに Auth0 アプリケーションの Client ID を入力し、Client secret フィールドに Client Secret を入力します。
  5. Redirect URI ビューに切り替え、Authorization code flow grant フィールドの URI 値をコピーします。
  6. Create を選択します。

Auth0 を使用するように Azure API を設定する

Azure で OAuth 2.0 認可サーバーを作成したら、ユーザー認可に Auth0 を使用するように、Azure API を更新する必要があります。
  1. ナビゲーションの APIs セクションから、APIs を選択します。
  2. Basic Calculator API を選択し、Design ビューに移動します。
  3. Settings ビューに切り替えます。
  4. Security セクションに移動して、User Authorization の下にある OAuth 2.0 を選択します。
  5. Authorization Server フィールドで、前の手順で設定したサーバーを選択します。
  6. Save をクリックします。

Auth0 で Allowed Callback URL を設定する

Azure API のプロビジョニングと、ユーザー認可に Auth0 を使用するための設定が完了したら、Auth0 のアプリケーションを更新する必要があります。
  1. Auth0 Dashboard > アプリケーション > アプリケーション に移動します。
  2. アプリケーションを選択し、Settings 表示に切り替えます。
  3. 先ほどコピーした Redirect URI を Allowed Callback URLs フィールドに入力します。
  4. Save をクリックします。

連携をテストする

Azure Portal で、API Management Service のインスタンスを開きます。
  1. Developer Console を選択して、API の開発者向け画面を開きます。
  2. APIs > Basic Calculator に移動します。すると、2 つの整数を加算する GET 呼び出しを実行できるページが開きます。
  3. Try It を選択します。すると、呼び出しのパラメーターを入力できるページが表示されます。
  4. Authorization セクションに移動し、認可コード (Auth0 フィールドの横) を選択します。
  5. Auth0 のログインウィジェットを含むポップアップウィンドウが表示されます (表示されない場合は、ブラウザーのポップアップブロックが無効になっていることを確認してください) 。ステップ 4 で作成した Auth0 ユーザーの認証情報を入力して、ログインします。
  6. 正常にログインできると、API 呼び出しに使用できるアクセストークンの有効期限を示すメッセージが表示されます。
  7. ページの一番下に移動して、Send を選択します。リクエストが成功すると、ページ下部に HTTP 200 レスポンスを含むメッセージが表示されます。

アクセストークン用の JWT 検証ポリシーを設定する

前のステップでは、Developer Console から呼び出しを行おうとすると、ユーザーにサインインが求められます。Developer Console は、API リクエストに含めるために、ユーザーに代わって を取得しようとします。すべてのアクセストークンは、Authorization ヘッダーを通じて API に渡されます。 各リクエストに含まれるアクセストークンを検証する場合は、Validate JWT policy を使用できます。API Management ポリシーの設定 については、Microsoft のドキュメントを参照してください。