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

前提条件

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

手順

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

Microsoft Azure アカウント

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

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

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

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

Azure AD にアプリケーションを登録する方法については、クイックスタート: Microsoft Docs の Microsoft アイデンティティ プラットフォームにアプリケーションを登録するを参照してください。
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 で Web アプリケーションを構成して API を公開する方法については、クイックスタート: Configure an application to expose web APIs on Microsoft Docs を参照してください。 アプリを構成する際は、必ず次の設定を使用してください。
  • Scope name の入力を求められたら、API.Access と入力します。
この手順の途中で、Microsoft によってアプリケーション用に生成される Application ID URI を控えておいてください。これはこのチュートリアルの後の手順で必要になります。

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

Azure でネイティブアプリケーションを登録する方法については、クイックスタート: Microsoft Docs の Microsoft アイデンティティ プラットフォームにアプリケーションを登録するを参照してください。
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 の形式はプラットフォームによって異なります。お使いのプラットフォームでの形式の詳細については、ネイティブ クイックスタートを参照してください。
この手順の途中で、Microsoft がアプリケーション用に生成する Application (client) ID を控えておいてください (アプリケーションの Overview 画面で確認できます) 。このチュートリアルの後の手順で必要になります。

ネイティブアプリケーションのクライアントシークレットを作成する

の作成方法については、クイックスタート: Microsoft Docs の「クライアント アプリケーションが Web API にアクセスするように構成する - Web アプリケーションに認証情報を追加する」を参照してください。 クライアントシークレット を生成し、その値を記録してください。このチュートリアルの後半で必要になります。
有効期限付きのシークレットを構成する場合は、有効期限を必ず記録してください。サービスの中断を避けるため、その日までにキーを更新する必要があります。

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

Native アプリケーションに権限を追加する方法については、クイックスタート: Configure a client application to access web APIs - Add permissions to access web APIs on Microsoft Docs を参照してください。 この構成を正しく機能させるには、必要最小限の権限 (Microsoft Graph API と、API を公開するように構成した Web アプリケーションの両方) を有効にする必要があります。Microsoft Graph API の権限の詳細については、Microsoft Graph permissions reference on Microsoft Docs を参照してください。 権限を設定する際は、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 - 接続 - Enterprise
  2. 接続の詳細を入力し、Create を選択します。
フィールド説明
接続名接続の論理識別子です。テナント内で一意である必要があります。設定後、この名前は変更できません。
Microsoft Azure AD DomainAzure AD のドメイン名です。Microsoft Azure ポータルにある Azure AD ディレクトリの概要ページで確認できます。
クライアントID登録した Azure AD アプリケーションの一意の識別子です。Azure AD で登録したネイティブアプリケーションの Application (client) ID に保存した値を入力します。
クライアントシークレット登録した Azure AD アプリケーションへのアクセスに使用する文字列です。Azure AD で登録したネイティブアプリの Client secret に保存した値を入力します。
Use common endpoint (任意)有効にすると、アプリケーションは新しいディレクトリのユーザーを動的に受け入れられるようになります。通常は、Azure AD で登録したアプリケーションの Supported account types でマルチテナント オプションを選択した場合に有効にします。有効にすると、Auth0 はユーザーを Azure の共通ログイン エンドポイントにリダイレクトし、Azure はユーザーのメールアドレスのドメインに基づいて Home Realm Discovery を実行します。
Identity APIAuth0 が Azure AD のエンドポイントとやり取りするために使用する API です。動作の違いについては、Microsoft の Why update to Microsoft identity platform (v2.0) を参照してください。Azure Active Directory (v1) を選択し、App ID URI には、Web アプリケーションで API を公開するよう設定したときに作成された Application ID URI に保存した値を入力します。
Attributesサインインしたユーザーについて、アプリがアクセスできる基本属性です。Auth0 ユーザープロフィールに保存する情報の範囲を示します。
Extended Attributes (任意)サインインしたユーザーについて、アプリがアクセスできる拡張属性です。
Auth0 APIs (任意)選択すると、Azure AD Users API を呼び出す機能が必要であることを示します。
Sync user profile attributes at each login有効にすると、Auth0 はユーザーがログインするたびにユーザープロフィールデータを自動的に同期し、接続元で行われた変更が Auth0 に自動的に反映されるようにします。
メールアドレス確認Auth0 がユーザープロフィールの email_verified フィールドをどのように設定するかを選択します。詳しくは、Email Verification for Azure AD and ADFS を参照してください。
新しい Azure AD 接続を作成

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

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

接続をテストする

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

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

このネイティブフローでは、Auth0 は Azure AD Web アプリケーション用に発行された Azure AD の を受け取ります。そのため、グループメンバーシップや高度なユーザープロファイル情報の読み込みなどの機能は動作しなくなります。これは、Azure AD から受け取るアクセストークンを、この追加情報を取得するために Azure AD Graph API へ照会する用途に使えなくなるためです。 ただし、グループメンバーシップや高度なユーザープロファイル情報が必要な場合は、要件に合わせて構成を変更できます。
  1. Azure で、Native アプリケーションに 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 を入力します。
      https://graph.windows.net
      

次のステップ