始める前に
Azure Portalにアクセス可能なMicrosoftアカウントが必要です。
Auth0を構成する
APIの作成
Azure API Management Serviceによって管理されるAPIを表すために、Auth0でAPIを作成する必要があります。詳細については、「APIを登録する」お読みください。- [Auth0 Dashboard]>[Applications(アプリケーション)]>[API]に移動して、 [Create API(APIの作成)] を選択します。
- 次のパラメーターを設定します。
フィールド | 値 |
---|---|
Name(名前) | Basic Calculator |
Identifier(識別子) | basic-calculator |
Signing Algorithm(署名アルゴリズム) | RS256 |
- [Create(作成)] を選択します。
通常のWebアプリケーションを作成
Auth0で通常のWebアプリケーション(RWA)を作成して、AzureのOAuth 2.0認可サーバーと通信する必要があります。- [Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、 [Create Application(アプリケーションの作成)] ボタンを選択します。
- アプリケーションの [Name(名前)] を入力し、アプリケーションのタイプとして [Regular Web Applications(通常のWebアプリケーション)] を選択します。
接続を作成して有効化
Auth0で接続を作成し、アプリケーション用に有効にする必要があります。- [Auth0 Dashboard] > [Authentication(認証)]> [Database(データベース)]に移動して、 [Create DB Connection(データベース接続を作成)] を選択します。
- 接続の [Name(名前)] を入力します。ユーザーのソースを反映する名前を選択することをお勧めします(たとえば、Facebook資格情報を使用するユーザーを含む接続の場合は
Facebook
、ユーザーがサイトにサインアップするデータベース接続の場合はsite-sign-ups
)。 - [Create(作成)] を選択します。
- 接続の [Settings(設定)] ページに移動します。
- [Applications(アプリケーション)] ビューに切り替えます。テナント上のすべてのアプリケーションの一覧が表示されます。
- 以前に作成したアプリケーションを切り替えて、接続用に有効にします。
ユーザーを作成
すでにユーザーセットがある場合は、ユーザーをインポートするか、カスタムデータベース接続を作成することができます。
- [Auth0 Dashboard]>[User Management(ユーザー管理)]>[Users(ユーザー)]に移動して、 [Create User(ユーザーの作成)] を選択します。
- 電子メール と パスワード を入力し、[ 接続 ]フィールドで、ステップ3で作成した接続を選択します。
- [Create(作成)] を選択します。
Azureを構成
Azure API Management Serviceの作成
APIを管理するには、AzureにAPI Management Serviceインスタンスを作成する必要があります。- ナビゲーションバーで、 [Create a resource(リソースの作成)] を選択します。
- リダイレクトされたら、 Web > API Management を選択します。
- 次の構成変数を指定します。
パラメーター | 説明 |
---|---|
Name | サービスの名前(サービスのアクセスに必要なURLの作成にも使用される) |
Subscription | サービスに使用するAzureサブスクリプションプラン |
Resource group | ライフサイクルや権限、ポリシーを共有するリソースのコレクション。既存のリソースグループを使用するか、新たに作成することができます(作成する場合はグループ名を提供する必要があります) |
Location | APIインスタンスをサービスする場所を選択 |
Organization name | 組織の名前 |
Administrator email | このインスタンスを管理する人のメールアドレス |
Pricing tier | 希望する価格レベル。これによって、API呼び出しの回数やデータ転送量の上限が決まります。Developerプラン以上を選択する必要があります。Consumptionプランでは、この統合が動作するのに十分な機能性が提供されていません。 |
- [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認可サーバーとして登録する必要があります。- ナビゲーションバーの近くのAPI管理サービスインスタンスの OAuth 2.0 + OpenID Connect エリアを見つけます。 [OAuth 2.0] を選択し、 [Add(追加)] を選択します。
- [Add OAuth2 service(OAuth2サービスの構成の追加)] 構成画面に移動し、[Authorization Code grant type(認可コードの付与タイプ)]を選択します。
- 次のパラメーターを設定します。
パラメーター | 説明 |
---|---|
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(デフォルトのスコープ) | 必要ならば、デフォルトのを指定します。 |
- [Client Credentials(クライアント資格情報)] セクションで、 [Client Credentials(クライアントID)] フィールドにAuth0 ApplicationsクライアントIDと [Client secret(クライアントシークレット)] フィールドにクライアントシークレットを入力します。
- [Redirect URI(リダイレクトURI)] ビューに切り替え、 [Authorization code flow grant](認可コードフローの付与)] フィールドのURI値をコピーします。
- [Create(作成)] を選択します。
Auth0を使用するようにAzure APIを構成します
AzureでOAuth 2.0認可サーバーを作成したら、ユーザー認可にAuth0を使用するようにAzure APIを更新する必要があります。- ナビゲーションの [API] セクションの下で、 API を選択します。
- Basic Calculator APIを選択し、 [Design(デザイン)] ビューに移動します。
- [Settings(設定)] ビューに切り替えます。
- セキュリティ セクションに移動し、 [ユーザー認可] で [OAuth 2.0] を選択します。
- [Authorization Server(認可サーバー)] フィールドの前のステップで構成したサーバーを選択します。
- [Save(保存)] をクリックします。
Auth0で許可されたCallbackURLを設定
Azure APIがプロビジョニングされ、ユーザー認可にAuth0を使用するように構成されたら、Auth0アプリケーションを更新する必要があります。- [Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動します。
- アプリケーションを選択し、次に [Settings(設定)] ビューに切り替えます。
- を [Allowed Callback URL(許可されたコールバックURL)] フィールドに入力します。
- [Save(保存)] をクリックします。
統合のテスト
Azure Portalで、API Management Serviceのインスタンスを開きます。- [Developer Console(開発者コンソール)] を選択して、開発者向けのAPIを起動します。
- [API] > [Basic Calculator] に移動します。これにより、2つの整数を追加できる
[GET]
呼び出しを行うことができるページが開きます。 - [Try It(試す)] を選択します。これにより、呼び出しのパラメーターを提供できるページが表示されます。
- [Authorization(認可)] セクションに移動し、 [Authorization Code(認可コード)] ( Auth0 フィールドの横)を選択します。
- Auth0ログインウィジェットがポップアップウィンドウに表示されます(表示されない場合は、ブラウザのpop-upブロック機能が無効になっていることを確認してください)。ステップ4で作成したAuth0ユーザーの資格情報を入力し、ログインします。
- 正常にログインできた場合は、APIの呼び出しに使用できるアクセストークンの有効期限を示すメッセージが表示されます。
- 下部に移動し、 [Send(送信)] を選択します。要求が成功すると、ページの下部に
HTTP 200
応答を含むメッセージが表示されます。
アクセストークンのJWT検証ポリシーを構成
前のステップでは、ユーザーが開発者コンソールから呼び出しを行おうとすると、サインインするように求められます。開発者コンソールは、API要求に含めるアクセストークンをユーザーの代わりに取得しようとします。すべてのアクセストークンは、Authorization(認可)
ヘッダーを介してAPIに渡されます。
各要求に含まれるアクセストークンを検証する場合は、Validate JWT(JWTの検証)ポリシーを使用して行うことができます。setting an API Management policy(API管理ポリシーの設定)については、Microsoftのドキュメントを参照してください。