Skip to main content
WS-Federation および Connect フローに加えて、Azure AD では リソース所有者フローを使用することもできます。このフローでは、Azure AD のログインページを表示する代わりに、ユーザーの資格情報 (メールアドレスとパスワード) を取得して検証できます。セキュリティと (SSO) の観点から、この方法は推奨されませんが、フローは、ネイティブモバイルのシナリオや Azure AD で認証を一括処理する場合に役立つことがあります。 この構成には 2 つのアプリケーションが必要です。Web アプリケーションおよび/または Web API と、ネイティブアプリケーションです。Azure AD の観点では、ユーザーは Web アプリケーションおよび/または Web API へのアクセスを取得するために、ネイティブアプリケーションを使って認証されます。
リソース所有者フローを使用する Azure AD アプリの概要図

前提条件

Auth0 にアプリケーションを登録する:
  1. Application TypeNative を選択します。
  2. Allowed Callback URL を追加します。コールバック URL の形式はプラットフォームによって異なります。お使いのプラットフォームでの形式の詳細については、Native Quickstarts を参照してください。
  3. アプリケーションの Grant Types に、適切なフローが含まれていることを確認します。

手順

リソース所有者フローを使用してアプリケーションを接続するには、次の手順を行う必要があります。
  1. Microsoft Azure ポータルでアプリケーションを設定する
  2. Auth0 でエンタープライズ接続を作成する
  3. Auth0 アプリケーションでエンタープライズ接続を有効にする
  4. 接続をテストする

Microsoft Azure アカウント

先に進む前に、有効な Microsoft Azure アカウントが必要です。また、ご自身がグローバル管理者である Microsoft Azure AD ディレクトリを所有している必要があります。Microsoft Azure アカウントをお持ちでない場合は、無料でサインアップできます。必要に応じて、Microsoft の Quickstart: Azure Active Directory で新しいテナントを作成する - organization 用に新しいテナントを作成する に従って Azure AD ディレクトリを設定してください。また、Office 365 アカウントをお持ちの場合は、新しく作成する代わりに、そのアカウントの Azure AD インスタンスを使用できます。Office 365 アカウントの Azure AD インスタンスにアクセスするには、次の手順を実行します。
  1. Office 365 にサインインし、Office 365 管理センターに移動します。
  2. 左側のメニューにある Admin centers メニュードロワーを開き、Azure AD をクリックします。

Microsoft Azure ポータルでアプリケーションを設定する

先に進む前に、グローバル管理者であるご自身が管理する Microsoft Azure AD ディレクトリが、あらかじめ設定済みである必要があります。手順については、Microsoft の Quickstart: Create a new tenant in Azure Active Directory - 組織用の新しいテナントを作成する を参照してください。

新しいWebアプリケーションを登録する

Azure AD へのアプリケーションの登録方法については、Quickstart: Microsoft Docs の Microsoft identity platform でアプリケーションを登録するを参照してください。
Azure AD ディレクトリが複数ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
アプリケーションを設定する際は、必ず次の設定を使用してください。
  • 外部の組織 (他の Azure AD ディレクトリなど) のユーザーにもアクセスを許可する場合は、Supported account types の設定で Accounts in any organizational directory (Any Azure AD directory - Multitenant) を選択します。
  • Redirect URI の設定を求められたら、Web を選択し、コールバック URL として https://{yourDomain}/login/callback を入力します。

リダイレクト用の Auth0 ドメイン名を確認する

上記に Auth0 ドメイン名が表示されておらず、カスタムドメイン 機能も使用していない場合、ドメイン名はテナント名、リージョンのサブドメイン、auth0.com をドット (.) でつないだ形式になります。たとえば、テナント名が exampleco-enterprises で、テナントが US リージョンにある場合、Auth0 ドメイン名は exampleco-enterprises.us.auth0.com となり、Redirect URIhttps://exampleco-enterprises.us.auth0.com/login/callback になります。ただし、テナントが US リージョンにあり、2020 年 6 月以前に作成されている場合、Auth0 ドメイン名は exampleco-enterprises.auth0.com となり、Redirect URIhttps://exampleco-enterprises.auth0.com/login/callback になります。カスタムドメイン を使用している場合、Redirect URIhttps://<YOUR CUSTOM DOMAIN>/login/callback になります。
このプロセスの間に、Microsoft がアプリケーション用に生成する Application (client) ID を控えておいてください (アプリケーションの Overview 画面で確認できます) 。これはチュートリアルの後半で必要になります。

API を公開するように Web アプリケーションを構成する

Azure AD で API を公開するように Web アプリケーションを構成する方法については、Quickstart: Microsoft Docs の「アプリケーションを構成して Web API を公開する」を参照してください。 アプリを構成する際は、必ず次の設定を使用してください。
  • Scope name の入力を求められたら、API.Access と入力します。
この手順の途中で、Microsoft によってアプリケーション用に生成される Application ID URI を控えておいてください。チュートリアルの後半で必要になります。

新しいネイティブアプリケーションを登録する

Azure でネイティブアプリケーションを登録する方法については、Microsoft Docs の Quickstart: Register an application with the Microsoft identity platformを参照してください。
Azure AD ディレクトリが複数ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
アプリを設定する際は、必ず次の設定を使用してください。
  • 外部の組織 (他の Azure AD ディレクトリなど) のユーザーによる利用を許可する場合は、Supported account types の設定で Accounts in any organizational directory (Any Azure AD directory - Multitenant) を選択します。
  • Redirect URI の設定を求められたら、Public client/native (mobile & desktop) を選択し、コールバック URL を入力します。コールバック URL の形式はプラットフォームによって異なります。ご利用のプラットフォームでの形式について詳しくは、Native Quickstartsを参照してください。
この手順の中で、Microsoft がアプリケーション用に生成する Application (client) ID を控えておいてください (アプリケーションの Overview 画面で確認できます) 。これは、このチュートリアルの後の手順で必要になります。

ネイティブアプリケーションのClient Secretを作成する

の作成方法については、Quickstart: Configure a client application to access web APIs - Add Credentials to your web application (Microsoft Docs) を参照してください。 Client secret を生成し、その値を記録してください。後ほどこのチュートリアルで使用します。
有効期限付きのSecretを設定する場合は、有効期限を必ず記録してください。サービスの中断を避けるため、その日までにキーを更新する必要があります。

ネイティブ アプリケーションの権限を追加する

Native アプリケーションに権限を追加する方法については、Quickstart: クライアント アプリケーションが Web API にアクセスするための構成 - Web API にアクセスする権限を追加する (Microsoft Docs) を参照してください。 Auth0 では、この構成を正しく機能させるために、必要最小限の権限 (Microsoft Graph API 用、および API を公開するよう構成した Web アプリケーション用) を有効にする必要があります。Microsoft Graph API の権限の詳細については、Microsoft Docs の Microsoft Graph permissions referenceを参照してください。 権限を設定する際は、Microsoft Graph API に対して次の設定を使用してください。
  • 権限の種類を求められたら、Delegated permissions を選択します。
    • UserUser.Read を選択すると、アプリでユーザーをサインインさせ、サインインしているユーザーのプロファイルを読み取れるようになります。
    • DirectoryDirectory.Read.All を選択すると、アプリでサインインしているユーザーに代わってディレクトリ データを読み取れるようになります。
API を公開するように構成した Web アプリについては、次の設定を使用してください。
  • 権限の種類を求められたら、Delegated permissions を選択します。
    • APIAPI.Access を選択すると、アプリでユーザーに代わって API にアクセスできるようになります。

Auth0 で接続を設定する

Azure AD で両方のアプリケーションを作成したら、Auth0 の接続を設定できます。
  1. Auth0 Dashboard > Authentication > Enterprise に移動し、Microsoft Azure AD を見つけて、追加 (+) ボタンを選択します。
    Dashboard - Connections - Enterprise
  2. 接続の詳細を入力し、Create を選択します。
Create new Azure AD connection

Auth0アプリケーションでエンタープライズ接続を有効にする

新しい Azure AD エンタープライズ接続を使用するには、Auth0のアプリケーションで接続を有効にする必要があります。

接続をテストする

これで、接続をテストする準備ができました。

グループメンバーシップと高度なプロファイル情報

このネイティブフローでは、Auth0 は Azure AD から、Azure AD Web アプリケーション向けに発行されたを受け取ります。その結果、グループメンバーシップや高度なプロファイル情報の読み込みなどの機能は動作しなくなります。これは、Azure AD から受け取ったアクセストークンを、こうした追加情報を取得するために Azure AD Graph API へ問い合わせる用途に使えなくなるためです。 ただし、グループメンバーシップや高度なプロファイル情報が必要な場合は、要件に合わせて設定を変更できます。
  1. Azure で、Microsoft Graph API に対する追加の権限を使用するようネイティブアプリケーションを設定します。
    • 権限の種類を尋ねられたら、Delegated permissions を選択します。
      • DirectoryDirectory.AccessAsUser.All を選択すると、アプリがサインイン中のユーザーとしてディレクトリにアクセスできるようになります。
  2. Auth0 で、Azure AD のエンタープライズ接続を変更します。
    • Identity APIAzure Active Directory (v1) を選択し、App ID URI には Azure AD Graph API の URI を入力します。

次のステップ