メインコンテンツへスキップ

始める前に

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

Auth0 を設定する

API を作成する

Azure API Management Service で管理する API を表す API を Auth0 で作成する必要があります。詳細については、Register APIs を参照してください。
  1. Auth0 Dashboard > Applications > APIs に移動し、Create API を選択します。
  2. 次のパラメーターを設定します。
    フィールド
    名前Basic Calculator
    Identifierbasic-calculator
    署名アルゴリズムRS256
  3. Create を選択します。

Regular Web Application を作成する

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

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

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

ユーザーを作成する

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

Azure の設定

Azure API Management Service を作成する

API を管理するには、Azure で API Management Service インスタンスを作成する必要があります。
  1. ナビゲーション バーで、Create a resource を選択します。
  2. 画面が切り替わったら、Web > API Management を選択します。
  3. 次の設定項目を指定します。
    パラメーター説明
    Nameサービスの名前です (この名前は、サービスへのアクセスに必要な URL の作成にも使用されます)
    Subscriptionこのサービスで使用する Azure サブスクリプション プラン
    Resource groupライフサイクル、アクセス許可、ポリシーを共有するリソースの集合です。既存のリソース グループを使用することも、新しく作成することもできます (新しく作成する場合は、グループ名を指定する必要があります)
    LocationAPI インスタンスをホストする場所を選択します
    Organization name組織の名前
    Administrator emailこのインスタンスを管理する担当者のメールアドレス
    Pricing tier使用する価格レベルです。これにより、API に対して実行できる呼び出し回数と、許可されるデータ転送量の上限が決まります。Developer プラン以上を選択する必要があります。Consumption プランでは、この統合に必要な機能を利用できません。
  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 サービス インスタンスの OAuth 2.0 + OpenID Connect 領域を見つけます。OAuth 2.0 を選択し、Add を選択します。
  2. Add OAuth2 service の設定画面に移動し、Authorization Code グラントタイプを選択します。
  3. 次のパラメーターを設定します。
    パラメーター説明
    Display nameAuth0 など、認可サーバーの内容がわかる名前を入力します。
    Idこのフィールドは、入力した表示名に基づいて自動入力されます。
    DescriptionAuth0 API Authentication など、認可サーバーの説明を入力します。
    Client registration page URLプレースホルダーとして https://placeholder.contoso.com を入力します。
    Authorization code grant typesAuthorization code を選択します。
    Authorization endpoint URLテナントの OIDC Discovery endpoint を参照し、audience パラメーターを追加します。例: https://{yourDomain}/authorize?audience={API_AUDIENCE}
    Authorization request methodデフォルトは GET です。
    Token endpoint URLテナントの OIDC Discovery endpoint を参照します。
    Client authentication methodsBasic を選択します。
    アクセストークン sending methodAuthorization header を選択します。
    Default scope必要に応じて、デフォルトの スコープ を指定します。
  4. Client Credentials セクションで、Client ID フィールドに Auth0 アプリケーションのクライアントID を入力し、Client secret フィールドにクライアントシークレットを入力します。
  5. Redirect URI ビューに切り替え、Authorization code flow grant フィールドの URI 値をコピーします。
  6. Create を選択します。

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

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

Auth0 で Allowed Callback URL を設定する

Azure API のプロビジョニングが完了し、ユーザー認可に Auth0 を使用するよう設定したら、Auth0 アプリケーションを更新する必要があります。
  1. Auth0 Dashboard > Applications > Applications に移動します。
  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 セクションに移動し、Authorization Code (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 のドキュメントを参照してください。