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

始める前に

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]>[Applications(アプリケーション)]>[API]に移動して、 [Create API(APIの作成)] を選択します。
  2. 次のパラメーターを設定します。
フィールド
Name(名前)Basic Calculator
Identifier(識別子)basic-calculator
Signing Algorithm(署名アルゴリズム)RS256
  1. [Create(作成)] を選択します。

通常のWebアプリケーションを作成

Auth0で通常のWebアプリケーション(RWA)を作成して、AzureのOAuth 2.0認可サーバーと通信する必要があります。
  1. [Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、 [Create Application(アプリケーションの作成)] ボタンを選択します。
  2. アプリケーションの [Name(名前)] を入力し、アプリケーションのタイプとして [Regular Web Applications(通常のWebアプリケーション)] を選択します。

接続を作成して有効化

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

ユーザーを作成

すでにユーザーセットがある場合は、ユーザーをインポートするか、カスタムデータベース接続を作成することができます。
認証と認可をテストするには、接続に少なくとも1人のユーザーが必要です。接続用の既存のユーザーセットがない場合は、手動で作成できます。
  1. [Auth0 Dashboard]>[User Management(ユーザー管理)]>[Users(ユーザー)]に移動して、 [Create User(ユーザーの作成)] を選択します。
  2. 電子メールパスワード を入力し、[ 接続 ]フィールドで、ステップ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プランでは、この統合が動作するのに十分な機能性が提供されていません。
  1. [Create(作成)] を選択してサービスのプロビジョニングを開始します(完了するまでに最大15分かかる場合があります)。

サンプルAPIのインポート

このチュートリアルでは、Microsoftが提供するBasic Calculator APIをインポートして使用します。詳細な手順については、Microsoftからの[Import and Publish Your First API(最初のAPIのインポートと公開)]を参照してください。 完了したら、 [Create(作成)] を選択してAPIをインポートします。APIが完全にインポートされると、概要ページにリダイレクトされます。

OAuth 2.0認可サーバーの設定

Auth0を使用してAzure APIをセキュリティで保護するには、Auth0をOAuth 2.0認可サーバーとして登録する必要があります。
  1. ナビゲーションバーの近くのAPI管理サービスインスタンスの OAuth 2.0 + OpenID Connect エリアを見つけます。 [OAuth 2.0] を選択し、 [Add(追加)] を選択します。
  2. [Add OAuth2 service(OAuth2サービスの構成の追加)] 構成画面に移動し、[Authorization Code grant type(認可コードの付与タイプ)]を選択します。
  3. 次のパラメーターを設定します。
パラメーター説明
Display name(表示名)Auth0など、認可サーバーのわかりやすい名前を入力します。
Idこのフィールドは入力した表示名に基づいて自動的に入力されます。
Description(説明)Auth0 API Authenticationなど、認可サーバーの説明を入力します。
Client registration page URL(クライアント登録ページのURL)placeholderとしてhttps://placeholder.contoso.comを入力します。
Authorization code grant types(認可コード付与タイプ)Authorization codeを選択します。
Authorization endpoint URL(認可エンドポイントURL)テナントのOIDCディスカバリーエンドポイントを参照してaudienceパラメーターを追加します。例:https://{yourDomain}/authorize?audience={API_AUDIENCE}
Authorization request method(認可要求メソッド)デフォルトはGETです。
Token endpoint URL(トークンエンドポイントURL)テナントのOIDCディスカバリーエンドポイントを参照します。
Client authentication methods(クライアントの認証方法)Basicを選択します。
Access Token sending method(アクセストークンの送信方法)Authorization headerを選択します。
Default scope(デフォルトのスコープ)必要ならば、デフォルトのを指定します。
  1. [Client Credentials(クライアント資格情報)] セクションで、 [Client Credentials(クライアントID)] フィールドにAuth0 ApplicationsクライアントIDと [Client secret(クライアントシークレット)] フィールドにクライアントシークレットを入力します。
  2. [Redirect URI(リダイレクトURI)] ビューに切り替え、 [Authorization code flow grant](認可コードフローの付与)] フィールドのURI値をコピーします。
  3. [Create(作成)] を選択します。

Auth0を使用するようにAzure APIを構成します

AzureでOAuth 2.0認可サーバーを作成したら、ユーザー認可にAuth0を使用するようにAzure APIを更新する必要があります。
  1. ナビゲーションの [API] セクションの下で、 API を選択します。
  2. Basic Calculator APIを選択し、 [Design(デザイン)] ビューに移動します。
  3. [Settings(設定)] ビューに切り替えます。
  4. セキュリティ セクションに移動し、 [ユーザー認可][OAuth 2.0] を選択します。
  5. [Authorization Server(認可サーバー)] フィールドの前のステップで構成したサーバーを選択します。
  6. [Save(保存)] をクリックします。

Auth0で許可されたCallbackURLを設定

Azure APIがプロビジョニングされ、ユーザー認可にAuth0を使用するように構成されたら、Auth0アプリケーションを更新する必要があります。
  1. [Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動します。
  2. アプリケーションを選択し、次に [Settings(設定)] ビューに切り替えます。
  3. [Allowed Callback URL(許可されたコールバックURL)] フィールドに入力します。
  4. [Save(保存)] をクリックします。

統合のテスト

Azure Portalで、API Management Serviceのインスタンスを開きます。
  1. [Developer Console(開発者コンソール)] を選択して、開発者向けのAPIを起動します。
  2. [API] > [Basic Calculator] に移動します。これにより、2つの整数を追加できる[GET] 呼び出しを行うことができるページが開きます。
  3. [Try It(試す)] を選択します。これにより、呼び出しのパラメーターを提供できるページが表示されます。
  4. [Authorization(認可)] セクションに移動し、 [Authorization Code(認可コード)]Auth0 フィールドの横)を選択します。
  5. Auth0ログインウィジェットがポップアップウィンドウに表示されます(表示されない場合は、ブラウザのpop-upブロック機能が無効になっていることを確認してください)。ステップ4で作成したAuth0ユーザーの資格情報を入力し、ログインします。
  6. 正常にログインできた場合は、APIの呼び出しに使用できるアクセストークンの有効期限を示すメッセージが表示されます。
  7. 下部に移動し、 [Send(送信)] を選択します。要求が成功すると、ページの下部にHTTP 200応答を含むメッセージが表示されます。

アクセストークンのJWT検証ポリシーを構成

前のステップでは、ユーザーが開発者コンソールから呼び出しを行おうとすると、サインインするように求められます。開発者コンソールは、API要求に含めるアクセストークンをユーザーの代わりに取得しようとします。すべてのアクセストークンは、Authorization(認可)ヘッダーを介してAPIに渡されます。 各要求に含まれるアクセストークンを検証する場合は、Validate JWT(JWTの検証)ポリシーを使用して行うことができます。setting an API Management policy(API管理ポリシーの設定)については、Microsoftのドキュメントを参照してください。
I