> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> リソース所有者フローを使用するエンタープライズ接続で、アプリを Microsoft Azure Active Directory に接続する方法を説明します。

# リソース所有者を使用してネイティブアプリを Microsoft Azure Active Directory に接続する

WS-Federation および <Tooltip tip="OpenID: アプリケーションがログイン情報を収集・保存することなく、ユーザーの本人確認を行えるようにする認証のためのオープン標準です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=OpenID">OpenID</Tooltip> Connect フローに加えて、Azure AD では [リソース所有者](/docs/ja-jp/get-started/authentication-and-authorization-flow/resource-owner-password-flow)フローを使用することもできます。このフローでは、Azure AD のログインページを表示する代わりに、ユーザーの資格情報 (メールアドレスとパスワード) を取得して検証できます。セキュリティと <Tooltip tip="Single Sign-On (SSO): ユーザーが 1 つのアプリケーションにログインすると、他のアプリケーションにも自動的にログインできるようにするサービスです。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Single+Sign-on">Single Sign-on</Tooltip> (SSO) の観点から、この方法は推奨されませんが、<Tooltip tip="Resource Owner: 保護されたリソースへのアクセスを許可できるエンティティ（ユーザーやアプリケーションなど）です。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Resource+Owner">リソース所有者</Tooltip>フローは、ネイティブモバイルのシナリオや Azure AD で認証を一括処理する場合に役立つことがあります。

この構成には 2 つのアプリケーションが必要です。Web アプリケーションおよび/または Web API と、ネイティブアプリケーションです。Azure AD の観点では、ユーザーは Web アプリケーションおよび/または Web API へのアクセスを取得するために、ネイティブアプリケーションを使って認証されます。

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/6Uy9Q35rn0d9rankvlJuBT/6a5fa5175db76fd1cab35b79f0a213ea/azure-ad-native-app.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=2bdb3fb3a9253b3305d36ef28ac7ec34" alt="リソース所有者フローを使用する Azure AD アプリの概要図" width="537" height="254" data-path="docs/images/cdy7uua7fh8z/6Uy9Q35rn0d9rankvlJuBT/6a5fa5175db76fd1cab35b79f0a213ea/azure-ad-native-app.png" />
</Frame>

<div id="prerequisites">
  ## 前提条件
</div>

[Auth0 にアプリケーションを登録する](/docs/ja-jp/get-started/auth0-overview/create-applications):

1. **Application Type** で **Native** を選択します。
2. **Allowed Callback URL** を追加します。コールバック URL の形式はプラットフォームによって異なります。お使いのプラットフォームでの形式の詳細については、[Native Quickstarts](/docs/ja-jp/quickstart/native) を参照してください。
3. アプリケーションの [Grant Types](/docs/ja-jp/get-started/applications/update-grant-types) に、適切なフローが含まれていることを確認します。

<div id="steps">
  ## 手順
</div>

リソース所有者フローを使用してアプリケーションを接続するには、次の手順を行う必要があります。

1. [Microsoft Azure ポータルでアプリケーションを設定する](#set-up-your-applications-in-the-microsoft-azure-portal)。
2. [Auth0 でエンタープライズ接続を作成する](#create-an-enterprise-connection-in-auth0)。
3. [Auth0 アプリケーションでエンタープライズ接続を有効にする](#enable-the-enterprise-connection-for-your-auth0-application)。
4. [接続をテストする](#test-the-connection)。

<Card title="Microsoft Azure アカウント">
  先に進む前に、有効な Microsoft Azure アカウントが必要です。また、**ご自身が**グローバル管理者である Microsoft Azure AD ディレクトリを所有している必要があります。

  Microsoft Azure アカウントをお持ちでない場合は、[無料でサインアップ](https://azure.microsoft.com/en-us/free)できます。必要に応じて、Microsoft の [Quickstart: Azure Active Directory で新しいテナントを作成する - organization 用に新しいテナントを作成する](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-access-create-new-tenant#create-a-new-tenant-for-your-organization) に従って Azure AD ディレクトリを設定してください。

  また、Office 365 アカウントをお持ちの場合は、新しく作成する代わりに、そのアカウントの Azure AD インスタンスを使用できます。Office 365 アカウントの Azure AD インスタンスにアクセスするには、次の手順を実行します。

  1. [Office 365 にサインイン](https://portal.office.com)し、[Office 365 管理センター](https://portal.office.com/adminportal/home#/homepage)に移動します。
  2. 左側のメニューにある **Admin centers** メニュードロワーを開き、**Azure AD** をクリックします。
</Card>

<div id="set-up-your-applications-in-the-microsoft-azure-portal">
  ## Microsoft Azure ポータルでアプリケーションを設定する
</div>

<Warning>
  先に進む前に、グローバル管理者であるご自身が管理する Microsoft Azure AD ディレクトリが、あらかじめ設定済みである必要があります。手順については、Microsoft の [Quickstart: Create a new tenant in Azure Active Directory - 組織用の新しいテナントを作成する](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-access-create-new-tenant#create-a-new-tenant-for-your-organization) を参照してください。
</Warning>

<div id="register-a-new-web-application">
  ### 新しいWebアプリケーションを登録する
</div>

Azure AD へのアプリケーションの登録方法については、[Quickstart: Microsoft Docs の Microsoft identity platform でアプリケーションを登録する](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app)を参照してください。

<Warning>
  Azure AD ディレクトリが複数ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
</Warning>

アプリケーションを設定する際は、必ず次の設定を使用してください。

* 外部の組織 (他の Azure AD ディレクトリなど) のユーザーにもアクセスを許可する場合は、**Supported account types** の設定で **Accounts in any organizational directory (Any Azure AD directory - Multitenant)** を選択します。
* **Redirect URI** の設定を求められたら、**Web** を選択し、コールバック URL として `https://{yourDomain}/login/callback` を入力します。

<Card title="リダイレクト用の Auth0 ドメイン名を確認する">
  上記に Auth0 ドメイン名が表示されておらず、[カスタムドメイン](/docs/ja-jp/customize/custom-domains) 機能も使用していない場合、ドメイン名はテナント名、リージョンのサブドメイン、`auth0.com` をドット (`.`) でつないだ形式になります。

  たとえば、テナント名が `exampleco-enterprises` で、テナントが US リージョンにある場合、Auth0 ドメイン名は `exampleco-enterprises.us.auth0.com` となり、**Redirect URI** は `https://exampleco-enterprises.us.auth0.com/login/callback` になります。

  ただし、テナントが US リージョンにあり、2020 年 6 月以前に作成されている場合、Auth0 ドメイン名は `exampleco-enterprises.auth0.com` となり、**Redirect URI** は `https://exampleco-enterprises.auth0.com/login/callback` になります。

  [カスタムドメイン](/docs/ja-jp/customize/custom-domains) を使用している場合、**Redirect URI** は `https://<YOUR CUSTOM DOMAIN>/login/callback` になります。
</Card>

このプロセスの間に、Microsoft がアプリケーション用に生成する **Application (client) ID** を控えておいてください (アプリケーションの **Overview** 画面で確認できます) 。これはチュートリアルの後半で必要になります。

<div id="configure-your-web-application-to-expose-an-api">
  ### API を公開するように Web アプリケーションを構成する
</div>

Azure AD で API を公開するように Web アプリケーションを構成する方法については、[Quickstart: Microsoft Docs の「アプリケーションを構成して Web API を公開する」](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-expose-web-apis)を参照してください。

アプリを構成する際は、必ず次の設定を使用してください。

* **Scope name** の入力を求められたら、`API.Access` と入力します。

この手順の途中で、Microsoft によってアプリケーション用に生成される **Application ID URI** を控えておいてください。チュートリアルの後半で必要になります。

<div id="register-a-new-native-application">
  ### 新しいネイティブアプリケーションを登録する
</div>

Azure でネイティブアプリケーションを登録する方法については、[Microsoft Docs の Quickstart: Register an application with the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app)を参照してください。

<Warning>
  Azure AD ディレクトリが複数ある場合は、アプリを登録する際に正しいディレクトリを選択していることを確認してください。
</Warning>

アプリを設定する際は、必ず次の設定を使用してください。

* 外部の組織 (他の 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](/docs/ja-jp/quickstart/native)を参照してください。

この手順の中で、Microsoft がアプリケーション用に生成する **Application (client) ID** を控えておいてください (アプリケーションの **Overview** 画面で確認できます) 。これは、このチュートリアルの後の手順で必要になります。

<div id="create-a-client-secret-for-your-native-application">
  ### ネイティブアプリケーションのClient Secretを作成する
</div>

<Tooltip tip="Client Secret: クライアント（アプリケーション）がAuthorization Serverで認証を行うために使用するSecretです。これはクライアントとAuthorization Serverだけが知っているべきもので、推測されないよう十分にランダムである必要があります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=client+secret">client secret</Tooltip> の作成方法については、[Quickstart: Configure a client application to access web APIs - Add Credentials to your web application (Microsoft Docs) ](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-access-web-apis#add-credentials-to-your-web-application)を参照してください。

**Client secret** を生成し、その値を記録してください。後ほどこのチュートリアルで使用します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  有効期限付きのSecretを設定する場合は、**有効期限を必ず記録してください**。サービスの中断を避けるため、その日までにキーを更新する必要があります。
</Callout>

<div id="add-permissions-for-your-native-application">
  ### ネイティブ アプリケーションの権限を追加する
</div>

**Native** アプリケーションに権限を追加する方法については、[Quickstart: クライアント アプリケーションが Web API にアクセスするための構成 - Web API にアクセスする権限を追加する (Microsoft Docs) ](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-access-web-apis#add-permissions-to-access-web-apis)を参照してください。

Auth0 では、この構成を正しく機能させるために、必要最小限の権限 (Microsoft Graph API 用、および API を公開するよう構成した Web アプリケーション用) を有効にする必要があります。Microsoft Graph API の権限の詳細については、[Microsoft Docs の Microsoft Graph permissions reference](https://learn.microsoft.com/en-us/graph/permissions-reference)を参照してください。

権限を設定する際は、Microsoft Graph API に対して次の設定を使用してください。

* 権限の種類を求められたら、**Delegated permissions** を選択します。

  * **User** で **User.Read** を選択すると、アプリでユーザーをサインインさせ、サインインしているユーザーのプロファイルを読み取れるようになります。
  * **Directory** で **Directory.Read.All** を選択すると、アプリでサインインしているユーザーに代わってディレクトリ データを読み取れるようになります。

API を公開するように構成した Web アプリについては、次の設定を使用してください。

* 権限の種類を求められたら、**Delegated permissions** を選択します。

  * **API** で **API.Access** を選択すると、アプリでユーザーに代わって API にアクセスできるようになります。

<div id="configure-the-connection-in-auth0">
  ## Auth0 で接続を設定する
</div>

Azure AD で両方のアプリケーションを作成したら、Auth0 の接続を設定できます。

1. [Auth0 Dashboard > Authentication > Enterprise](https://manage.auth0.com/#/connections/enterprise) に移動し、**Microsoft Azure AD** を見つけて、追加 (**+**) ボタンを選択します。

   <Frame>
     <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/b3454e60a4463e99353603fd11a71983/Enterprise_Connections_-_EN.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=d70364390d8c16ca8efe20e3e1795db4" alt="Dashboard - Connections - Enterprise" width="600" height="561" data-path="docs/images/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/b3454e60a4463e99353603fd11a71983/Enterprise_Connections_-_EN.png" />
   </Frame>
2. 接続の詳細を入力し、**Create** を選択します。

| Field                                          | Description                                                                                                                                                                                                                                                                                                                                                              |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Connection name**                            | 接続の論理識別子です。テナント内で一意である必要があります。いったん設定すると、この名前は変更できません。                                                                                                                                                                                                                                                                                                                    |
| **Microsoft Azure AD Domain**                  | Azure AD のドメイン名です。Microsoft Azure ポータルの Azure AD ディレクトリの概要ページで確認できます。                                                                                                                                                                                                                                                                                                    |
| **Client ID**                                  | 登録した Azure AD アプリケーションの一意の識別子です。Azure AD で登録した Native application の **Application (client) ID** の保存済みの値を入力します。                                                                                                                                                                                                                                                           |
| **Client Secret**                              | 登録した Azure AD アプリケーションへのアクセスに使用する文字列です。Azure AD で登録した Native app の **Client secret** の保存済みの値を入力します。                                                                                                                                                                                                                                                                      |
| **Use common endpoint** (optional)             | 有効にすると、アプリケーションは新しいディレクトリのユーザーを動的に受け入れられるようになります。通常は、Azure AD で登録したアプリケーションの **Supported account types** でマルチテナント オプションを選択した場合に有効にします。有効にすると、Auth0 はユーザーを Azure の共通ログイン エンドポイントにリダイレクトし、Azure がユーザーのメールアドレスのドメインに基づいて *ホームレルムディスカバリー* を実行します。                                                                                                                            |
| **Identity API**                               | Auth0 が Azure AD のエンドポイントとやり取りするために使用する API です。動作の違いについては、Microsoft の [Why update to Microsoft identity platform (v2.0)](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison) ドキュメントを参照してください。`Azure Active Directory (v1)` を選択し、**App ID URI** には、Web アプリケーション で API を公開するよう設定したときに作成された **Application ID URI** の保存済みの値を入力します。 |
| **Attributes**                                 | アプリがアクセスできる、サインイン中のユーザーの基本属性です。Auth0 のユーザープロファイルに保存する情報量を指定します。                                                                                                                                                                                                                                                                                                          |
| **Extended Attributes** (optional)             | アプリがアクセスできる、サインイン中のユーザーの拡張属性です。                                                                                                                                                                                                                                                                                                                                          |
| **Auth0 APIs** (optional)                      | 選択すると、Azure AD Users API を呼び出す機能が必要であることを示します。                                                                                                                                                                                                                                                                                                                           |
| **Sync user profile attributes at each login** | 有効にすると、Auth0 はユーザーのログイン時に毎回ユーザープロファイル データを自動的に同期し、接続元で行われた変更が Auth0 に自動的に反映されるようにします。                                                                                                                                                                                                                                                                                    |
| **Email Verification**                         | Auth0 がユーザープロファイルの `email_verified` フィールドをどのように設定するかを選択します。詳しくは、[Email Verification for Azure AD and ADFS](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/azuread-adfs-email-verification) を参照してください。                                                                                                                                         |

<Frame>
  <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1r6WTgLJUlbiV9jligIwER/55904e9d3c1eec62c2e8421b71cff94b/Enterprise_Connection_-_MSFT_-_English.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=463c1e0b4e99c6555a3c2586542a4f42" alt="Create new Azure AD connection" width="1002" height="1860" data-path="docs/images/cdy7uua7fh8z/1r6WTgLJUlbiV9jligIwER/55904e9d3c1eec62c2e8421b71cff94b/Enterprise_Connection_-_MSFT_-_English.png" />
</Frame>

<div id="enable-the-enterprise-connection-for-your-auth0-application">
  ## Auth0アプリケーションでエンタープライズ接続を有効にする
</div>

新しい Azure AD エンタープライズ接続を使用するには、Auth0のアプリケーションで[接続を有効にする](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/enable-enterprise-connections)必要があります。

<div id="test-the-connection">
  ## 接続をテストする
</div>

これで、[接続をテストする](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/test-enterprise-connections)準備ができました。

<div id="group-memberships-and-advanced-profile-information">
  ## グループメンバーシップと高度なプロファイル情報
</div>

このネイティブフローでは、Auth0 は Azure AD から、Azure AD Web アプリケーション向けに発行された<Tooltip tip="アクセストークン: API へのアクセスに使用される認可資格情報で、不透明な文字列または JWT の形式を取ります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Access+Token">アクセストークン</Tooltip>を受け取ります。その結果、グループメンバーシップや高度なプロファイル情報の読み込みなどの機能は動作しなくなります。これは、Azure AD から受け取ったアクセストークンを、こうした追加情報を取得するために Azure AD Graph API へ問い合わせる用途に使えなくなるためです。

ただし、グループメンバーシップや高度なプロファイル情報が必要な場合は、要件に合わせて設定を変更できます。

1. Azure で、Microsoft Graph API に対する追加の権限を使用するようネイティブアプリケーションを設定します。

   * 権限の種類を尋ねられたら、**Delegated permissions** を選択します。

     * **Directory** で **Directory.AccessAsUser.All** を選択すると、アプリがサインイン中のユーザーとしてディレクトリにアクセスできるようになります。
2. Auth0 で、Azure AD のエンタープライズ接続を変更します。

   * **Identity API** で `Azure Active Directory (v1)` を選択し、**App ID URI** には Azure AD Graph API の URI を入力します。

     ```text lines theme={null}
     https://graph.windows.net
     ```

<div id="next-steps">
  ## 次のステップ
</div>

* [いずれかのライブラリを使用してAuth0を統合する](/docs/ja-jp/libraries)
* [Authentication APIを使用してAuth0を統合する](https://auth0.com/docs/api/authentication)
* [認証フローの詳細を確認する](/docs/ja-jp/get-started/authentication-and-authorization-flow)
* [IDプロバイダーに追加のパラメーターを渡す](/docs/ja-jp/authenticate/identity-providers/pass-parameters-to-idps)
* [権限の再承認をユーザーに求める](/docs/ja-jp/authenticate/identity-providers/social-identity-providers/reprompt-permissions)
