メインコンテンツへスキップ
WSフェデレーションと Connectフローに加えて、Microsoft Entra IDでリソース所有者フローを使用することもできます。このフローでは、Microsoft Entra IDのログインページを表示するのでなく、ユーザーの資格情報(メールとパスワード)をキャプチャして検証することができます。セキュリティ上およびシングルサインオン()上の理由から、このアプローチは推奨されません。ただし、リソース所有者フローは、ネイティブモバイルシナリオ、またはMicrosoft Entra IDとの一括処理認証に役立つことがあります。 この構成には、WebアプリケーションとWeb API、ネイティブアプリケーションという2つのアプリケーションが必要です。Microsoft Entra IDの観点からすれば、ユーザーはネイティブアプリケーションによる認証を通じて、WebアプリケーションとWeb APIにアクセスします。
リソース所有者フローを使用するAzure ADアプリの概要図

前提条件

Auth0にアプリケーションを登録する
  1. アプリケーションタイプ として [Native(ネイティブ)] を選択します。
  2. [Allowed Callback URL(許可されているコールバックURL)] を追加します。コールバックURLの形式は、使用しているプラットフォームによって異なります。使用しているプラットフォームの形式の詳細については、「ネイティブクイックスタート」を参照してください。
  3. アプリケーションの[Grant Types(付与タイプ)]に適切なフローが必ず含まれていることを確認してください。

ステップ

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

Microsoft Entraアカウント

事前に、有効なMicrosoft Entraアカウントと、グローバル管理者として 独自に所有 しているMicrosoft Azure ADディレクトリが必要です。Microsoft Entraアカウントがない場合は無料で作成し、必要であれば、Microsoftの「クイックスタート:Microsoft Entra IDで新しいテナントを作成する - 組織の新しいテナントを作成する」に従ってAzure ADディレクトリをセットアップします。Office 365アカウントをお持ちの場合は、新しく作成する代わりにそのアカウントのEntra IDを使用することもできます。Office 365アカウントのEntra IDにアクセスするには:
  1. Office 365にサインインしてから、Office 365管理センターに移動します。
  2. 管理センター の左メニューから「** Microsoft Entra**」を選択します。

Microsoft Azureポータルでアプリケーションをセットアップする

事前に、自身がグローバル管理者となっている 独自 のMicrosoft Entra IDディレクトリがセットアップされている必要があります。設定方法については、Microsoftの「Quickstart:Microsoft Entra IDで新しいテナントを作成する」にある「組織の新しいテナントを作成する」の手順に従ってください。

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

Microsoft Entra IDでアプリケーションを登録する方法については、Microsoft Docsの「クイックスタート:Microsoft IDプラットフォームにアプリケーションを登録する」を参照してください。
Entra IDディレクトリが2つ以上ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
アプリケーションのセットアップ中に、以下の設定を必ず使用してください。
  • 外部組織(他のEntra IDディレクトリなど)からユーザーを許可したい場合は、[Supported account types(サポートされているアカウントの種類)] の設定時に、** [Accounts in any organizational directory (Any Azure AD directory - Multitenant)(任意の組織ディレクトリ内のアカウント(任意のMicrosoft Entra ID - マルチテナント))]** を選択します。
  • [Redirect URI(リダイレクトURI)] を設定するよう求められたら、** [Web]** を選択し、フィールドにコールバックURL:https://{yourDomain}/login/callbackを入力します。

リダイレクト用のAuth0ドメイン名を見つける

上記で、 カスタムドメイン機能を使っていないのにAuth0ドメイン名が表示されない場合は、ドメイン名がテナント名、地域のサブドメイン、および「auth0.com」をドット記号(「.」)で区切って連結したものだからです。たとえば、テナント名が「exampleco-enterprises」でテナントがUS地域にある場合、Auth0ドメイン名は「exampleco-enterprises.us.auth0.com」、Redirect URI(リダイレクトURI) は「https://exampleco-enterprises.us.auth0.com/login/callback」になります。ただし、テナントがUS地域にあり、2020年6月よりも前に作成された場合、Auth0ドメイン名は「exampleco-enterprises.auth0.com 」、Redirect URI(リダイレクトURI) は「https://exampleco-enterprises.auth0.com/login/callback」になります。カスタムドメインを使っている場合、Redirect URI(リダイレクトURI) は「https://<YOUR CUSTOM DOMAIN>/login/callback」になります。
このプロセス中に、後のチュートリアルで必要になるため、アプリケーション用に生成される [Application (client) ID(アプリケーション(クライアント)ID)] を記録しておきます(このIDは、アプリケーションの [Overview(概要)] 画面に表示されます)。

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

Entra IDでAPIを公開するためにWebアプリケーションを構成する方法については、Microsoft Docsの「クイックスタート:APIを公開するためにWebアプリケーションを構成する」を参照してください。 アプリの構成中に、以下の設定を必ず使用してください。
  • [Scope name(スコープ名)] を設定するよう求められたら、API.Accessと入力します。
このプロセス中に、後のチュートリアルで必要になるため、アプリケーション用に生成される [Application ID URI(アプリケーションID URI)] を記録しておきます。

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

Azureでネイティブアプリケーションを登録する方法については、Microsoft Docsの「クイックスタート:Microsoft IDプラットフォームにアプリケーションを登録する」を参照してください。
Entra IDディレクトリが2つ以上ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
アプリのセットアップ中は、以下の設定を必ず使用してください。
  • 外部組織(他のEntra IDディレクトリなど)からユーザーを許可したい場合は、[Supported account types(サポートされているアカウントの種類)] の設定時に、** [Accounts in any organizational directory (Any Azure AD directory - Multitenant)(任意の組織ディレクトリ内のアカウント(任意のMicrosoft Entra ID - マルチテナント))]** を選択します。
  • [Redirect URI(リダイレクトURI)] を設定するよう求められたら、[Public client/native (mobile & desktop)(パブリッククライアント/ネイティブ(モバイルとデスクトップ))]を選択し、コールバックURLを入力します。コールバックURLの形式は、使用しているプラットフォームによって異なります。使用しているプラットフォームの形式の詳細については、「ネイティブクイックスタート」をお読みください。
このプロセス中に、後のチュートリアルで必要になるため、アプリケーション用に生成される [Application (client) ID(アプリケーション(クライアント)ID)] を記録しておきます(このIDは、アプリケーションの [Overview(概要)] 画面に表示されます)。

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

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

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

ネイティブ アプリケーションの権限を追加する方法については、Microsoft Docsの「クイックスタート:Web APIにアクセスするようにクライアントアプリケーションを構成する」の「Web APIにアクセスするための権限を追加する」を参照してください。 Auth0では、この構成が正常に機能するために(Microsoft Graph APIとAPIを公開するように構成したWebアプリケーションに)必要な最小特権アクセス許可を有効にする必要があります。Microsoft Graph APIのアクセス許可の詳細については、Microsoft Docsの「Microsoft Graphのアクセス許可のリファレンス」をお読みください。 アクセス許可のセットアップ中は、Microsoft Graph APIに以下の設定を必ず使用してください。
  • アクセス許可の種類を求められたら、[Delegated permissions(委任されたアクセス許可)] を選択します。
    • [User(ユーザー)][User.Read] を選択し、ユーザーをアプリにサインインさせ、サインインしたユーザーのプロファイルを読み取れるようにします。
    • [Directory(ディレクトリ)][Directory.Read.All] を選択し、アプリがサインインしたユーザーの代理としてディレクトリデータを読み取れるようにします。
APIを公開するように構成したWebアプリに対しては、以下の設定を必ず使用してください。
  • アクセス許可の種類を求められたら、[Delegated permissions(委任されたアクセス許可)] を選択します。
    • [API][API.Access] を選択し、アプリがユーザーの代理としてAPIにアクセスできるようにします。

Auth0で接続を構成する

Microsoft Entra IDで両方のアプリケーションを作成したら、Auth0の接続を構成することができます。
  1. [Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、[Microsoft Entra ID] を見つけ、追加(** +**)ボタンを選択します。
    Dashboard - 接続 -エンタープライズ
  2. 接続の詳細を入力し、 [Create(作成)] をクリックします。
    フィールド説明
    Connection name(接続名)接続の論理識別子。テナントに対して一意でなければなりません。一度設定すると、この名前は変更できません。
    Microsoft Entra ID DomainMicrosoft Entra IDドメイン名。これは、Microsoft AzureポータルのMicrosoft Entra IDディレクトリの概要ページで確認できます。
    Client ID(クライアントID)登録済みMicrosoft Entra IDアプリケーションの一意の識別子。Microsoft Entra IDで登録したネイティブアプリケーションについて Application (client) ID(アプリケーション(クライアント)ID) の保存された値を入力します。
    Client Secret(クライアントシークレット)登録済みMicrosoft Entra IDアプリケーションにアクセスするために使用される文字列。Microsoft Entra IDで登録したネイティブアプリケーションについて ** Client secret(クライアントシークレット)** の保存された値を入力します。
    Use common endpoint(共通のエンドポイントの使用) (任意)有効にすると、アプリケーションは新しいディレクトリからユーザーを動的に受け入れます。一般的に、Microsoft Entra IDに登録したアプリケーションの Supported account types(サポートされているアカウントの種類) に対して複数テナントのオプションを選択した場合は、有効にします。有効にした場合、Auth0は、ユーザーをAzureの共通のログインエンドポイントにリダイレクトし、Azureは、ユーザーのメールアドレスのドメインに基づいて、ホーム領域検出を行います。
    Identity API(アイデンティティAPI)Microsoft Entra IDエンドポイントとやり取りするためのAuth0が使用するAPI。動作の違いについては、Microsoftの[Microsoft IDプラットフォーム(v2.0)に更新する理由](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison)ドキュメントをご覧ください。`Azure Active Directory (v1)`を選択し、App ID URIについては、APIに公開するためにWebアプリケーションを構成した時に作成されたApplication ID URIの保存された値を入力します。
    Attributes(属性)アプリがアクセスできるサインインしたユーザーの基本属性。Auth0ユーザープロファイルにどの程度情報を保管したいかを示します。
    Extended Attributes(拡張属性) (任意)アプリがアクセスできるサインインしたユーザーの拡張属性。
    Auth0 APIs (任意)選択されると、Microsoft Entra IDユーザーAPIを呼び出す権限が必要なことを示します。
    Sync user profile attributes at each login(ログインの度にユーザープロファイル属性を同期する)有効にすると、Auth0はユーザープロファイルデータと各ユーザーログインを自動的に同期するため、接続ソースでの変更が、自動的にAuth0で更新されるようになります。
    Email Verification(メール検証)Auth0がユーザープロファイルでemail_verifiedフィールドを設定する方法を選択します。詳細については、Microsoft Entra IDとADFSのメール検証をご覧ください。
    Microsoft Entra ID接続を新規作成する

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

新たなMicrosoft Entra IDエンタープライズ接続を使用するには、Auth0アプリケーションの接続を有効にする必要があります。

接続をテストする

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

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

このネイティブフローでは、Auth0は、Microsoft Entra IDからアクセストークンを受け取ります。このトークンは、Microsoft Entra IDのWebアプリケーション用に発行されたものです。この結果、グループメンバーシップや詳細なプロファイル情報の読み込みなどの機能は機能しなくなります。これは、Microsoft Entra IDから受け取ったアクセストークンを使って、Microsoft Entra ID Graph APIからこの追加情報を照会できなくなるためです。 ただし、グループメンバーシップと詳細なプロファイル情報を使用している場合は、ニーズに合わせて構成を変更することができます。
  1. Azureでは、Microsoft Graph APIの追加アクセス許可を使ってネイティブアプリケーションを構成します。
    • アクセス許可の種類を求められたら、[Delegated permissions(委任されたアクセス許可)] を選択します。
      • [Directory(ディレクトリ)][Directory.AccessAsUser.All] を選択し、アプリがサインインしたユーザーとしてディレクトリにアクセスできるようにします。
  2. Auth0で、Microsoft Entra IDエンタープライズ接続を変更します。
    • [Identity API][Microsoft Entra ID (v1)] を選択します。** [App ID URI(アプリIDのURI)]** には、Microsoft Entra ID Graph APIのURIを入力します。
      https://graph.windows.net
      

次の手順

I