> ## 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 に接続する

<Card title="概要">
  主なポイント

  * 手順に従って Azure AD にアプリケーションを登録し、Auth0 インスタンスに接続します。
  * 構成を本番環境に移行する前に、接続をテストします。
  * トラブルシューティングのヒントを確認します。
</Card>

<Warning>
  **重要:** Azure Active Directory (v1) 接続の拡張属性 Microsoft により Azure AD Graph API の非推奨化と廃止が進められているため、Azure Active Directory (v1) Identity API を使用する接続では、Get extended profile、Get user groups、Get nested groups (`options.ext_profile`、`options.ext_groups`、`options.ext_nested_groups`) を新たに有効にできなくなりました。既存の v1 接続では、これらのオプションはすでに有効になっている場合に限り引き続き利用できますが、Microsoft の Graph API の廃止が 2025 年に完了すると、完全に機能しなくなります。拡張属性は、Microsoft Graph を利用し、委任された権限 `User.Read` と `Directory.Read.All` を必要とする Microsoft Identity Platform (v2) Identity API を使用する接続では、引き続きサポート対象です。
</Warning>

Microsoft Azure Active Directory (AD) と連携すると、ユーザーに次のことを許可できます。

* 自社のユーザーが、自分または組織で管理している Azure AD を使ってアプリケーションを利用すること。
* 他社の Azure AD を使ってユーザーがアプリケーションを利用すること。 (外部ディレクトリは別々の接続として構成することをお勧めします。)

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Azure AD のエンタープライズ接続から返されるクレームは固定されており、カスタムクレームやオプションのクレームはユーザープロファイルに含まれません。ユーザープロファイルにカスタムクレームまたはオプションのクレームを含める必要がある場合は、代わりに SAML または OIDC 接続を使用してください。
</Callout>

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

アプリケーションを Azure AD に接続するには、次の手順を行います。

1. [Azure AD にアプリを登録する](#register-your-app-with-azure-ad)
2. [Auth0 でエンタープライズ接続を作成する](#create-an-enterprise-connection-in-auth0)
3. [Auth0 アプリケーションでエンタープライズ接続を有効にする](#enable-the-enterprise-connection-for-your-auth0-application)
4. [接続をテストする](#test-the-connection)

<div id="register-your-app-with-azure-ad">
  ### Azure AD にアプリを登録する
</div>

Azure AD にアプリを登録するには、Microsoft の [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 のディレクトリが複数ある場合は、Auth0 で使用するアプリを登録する際に、正しいディレクトリを選択していることを確認してください。
</Warning>

登録時に、次の設定を行います。

| Option                      | Setting                                                                                                                                                                                                                                                                                               |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Supported account types** | このディレクトリから SCIM ベースのユーザープロビジョニングを有効にするには、**Accounts in this organizational directory only (Single tenant)** を選択します。外部組織 (他の Azure AD ディレクトリなど) のユーザーも許可する場合は、適切なマルチテナント オプションを選択します。マルチテナント オプションには、たとえば次のものがあります。**Accounts in any organizational directory (Any Azure AD directory - Multitenant)** |
| **Redirect URI**            | 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="create-a-client-secret">
  #### クライアントシークレットを作成する
</div>

<Tooltip tip="Client Secret: クライアント（アプリケーション）が認可サーバーに対して認証を行うために使用するシークレット。これはクライアントと認可サーバーだけが知っている必要があり、推測されないよう十分にランダムでなければなりません。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=client+secret">クライアントシークレット</Tooltip>を作成するには、Microsoft の [Microsoft's Add and manage application credentials in Microsoft Entra ID - Add a Client Secret](https://learn.microsoft.com/en-us/entra/identity-platform/how-to-add-credentials?source=recommendations\&tabs=client-secret) を参照してください。

生成したら、**この値は必ず控えておいてください**。

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

<div id="add-permissions">
  #### 権限を追加
</div>

権限を追加するには、Microsoft の [Quickstart: Configure a client application to access web APIs - Add permissions to access web APIs](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-configure-app-access-web-apis#add-permissions-to-access-web-apis) を参照してください。

権限を設定する際は、次の点に注意してください。

拡張属性 (**Extended Profile** や **Security Groups** など) を有効にする場合は、**Microsoft Graph API** に対して次の権限を設定する必要があります。

| 委任された権限                            | 説明                                                |
| ---------------------------------- | ------------------------------------------------- |
| **Users > User.Read**              | アプリでユーザーをサインインさせ、サインイン中のユーザーのプロファイルを読み取れるようにするため。 |
| **Directory > Directory.Read.All** | アプリがサインイン中のユーザーに代わってディレクトリ データを読み取れるようにするため。      |

<div id="create-an-enterprise-connection-in-auth0">
  ### Auth0 でエンタープライズ接続を作成する
</div>

Auth0 で Azure AD エンタープライズ接続を作成して設定します。Microsoft Azure portal でアプリを設定する際に生成された **Application (client) ID** と **クライアントシークレット** を必ず用意してください。

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 portal の Azure AD ディレクトリの概要ページで確認できます。                                                                                                                                                                                                                         |
| **Client ID**                      | 登録した Azure AD アプリケーションの一意の識別子です。Azure AD で登録したアプリの **Application (client) ID** の保存済みの値を入力します。                                                                                                                                                                                                    |
| **Client Secret**                  | 登録した Azure AD アプリケーションへのアクセスに使用する文字列です。Azure AD で登録したアプリの **クライアントシークレット** の保存済みの値を入力します。                                                                                                                                                                                                        |
| **User ID Attribute Type**         | Auth0 の user\_id プロパティにマッピングされる ID トークン内の属性です。オプションは、Microsoft のドキュメントで説明されている 2 つのサポート対象 ID タイプに対応しています: [ID token claims reference - Microsoft identity platform](https://learn.microsoft.com/en-us/entra/identity-platform/id-token-claims-reference#use-claims-to-reliably-identify-a-user)。 |
| **Use common endpoint**            | (任意) 有効にすると、アプリケーションは新しいディレクトリのユーザーを動的に受け入れられるようになります。通常は、Azure AD で登録したアプリケーションの supported account types でマルチテナント オプションを選択した場合に有効にします。Auth0 はユーザーを Azure の common ログイン エンドポイントにリダイレクトし、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) ドキュメントを参照してください。                                                          |
| **Attributes**                     | サインインしたユーザーについて、アプリがアクセスできる基本属性です。Auth0 ユーザープロファイルにどの程度の情報を保存するかを示します。                                                                                                                                                                                                                           |
| **Extended Attributes** (optional) | サインインしたユーザーについて、アプリがアクセスできる拡張属性です。                                                                                                                                                                                                                                                               |
| **Auth0 APIs** (optional)          | 選択すると、Azure AD API を呼び出す機能が必要であることを示します。これにより、ユーザーが Auth0 に一度もログインしていなくても、Azure AD Graph でユーザーを検索できます。                                                                                                                                                                                           |
| **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) を参照してください。                                                                |
| **Purpose**                        | 認証、Connected Accounts for Token Vault、またはその両方のためにこの接続を有効にします。詳しくは、[User authentication vs Connected Accounts](/docs/ja-jp/secure/tokens/token-vault/connected-accounts-for-token-vault#user-authentication-vs-connected-accounts) を参照してください。                                                     |

3. **Provisioning** ビューでは、Auth0 でユーザープロファイルをどのように作成および更新するかを設定できます。

| Field                                          | Description                                                                                                                                             |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Sync user profile attributes at each login** | 有効にすると、Auth0 はユーザーがログインするたびにユーザープロファイルデータを自動的に同期し、接続元で行われた変更が Auth0 に自動的に反映されるようにします。                                                                   |
| **Sync user profiles using SCIM**              | 有効にすると、Auth0 は SCIM を使用したユーザープロファイルデータの同期を許可します。詳細は、[Configure Inbound SCIM](/docs/ja-jp/authenticate/protocols/scim/configure-inbound-scim) を参照してください。 |

4. **Login Experience** ビューでは、この接続を使ったユーザーのログイン方法を設定できます。

| フィールド              | 説明                                                                                                                                                                       |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **ホームレルムディスカバリー**  | ユーザーのメールドメインを、指定されたアイデンティティプロバイダーのドメインと照合します。詳しくは、[Identifier First Authentication を設定する](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first)をご覧ください。 |
| **接続ボタンを表示**       | このオプションを選択すると、アプリケーションの接続ボタンをカスタマイズするための以下の項目が表示されます。                                                                                                                    |
| **ボタンの表示名** (任意)   | Universal Login のログインボタンをカスタマイズするためのテキストです。設定すると、ボタンには「\{Button display name} で続行」と表示されます。                                                                               |
| **ボタンロゴ URL** (任意) | Universal Login のログインボタンをカスタマイズするための画像 URL です。設定すると、Universal Login のログインボタンにその画像が 20px × 20px の正方形で表示されます。                                                              |

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  任意項目は Universal Login でのみ使用できます。クラシックログインを使用している場合、Add ボタン、ボタンの表示名、ボタンロゴ URL は表示されません。
</Callout>

5. ユーザーがログインできるよう、アプリケーションへの同意を付与するための適切な Azure AD 管理者権限を持っている場合は、**Continue** をクリックします。
   [Azure AD アカウントにログイン](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#requesting-consent-for-an-entire-tenant)して、同意を付与するよう求められます。そうでない場合は、表示された URL を管理者に渡し、管理者が同意を付与できるようにしてください。

<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="troubleshooting">
  ## トラブルシューティング
</div>

トラブルシューティングのヒントをいくつか紹介します。

**Azure AD にアプリケーションを登録したのに、Azure Active Directory の \[App registrations] に戻っても自分のアプリケーションが表示されません。**

誤って別の Azure AD ディレクトリにアプリを登録してしまった可能性があります (あるいは、アプリを登録する前に Azure AD ディレクトリを作成していなかった可能性があります) 。通常は、Azure AD でアプリを登録し直すのが最も簡単です。アプリを登録する際は、正しいディレクトリを選択していることを確認してください。Azure AD ディレクトリを作成する必要がある場合は、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) を参照してください。

**次のエラーメッセージが表示されます: "Access cannot be granted to this service because the service listing is not properly configured by the publisher".**

この問題を解決するには、登録済みの Azure AD アプリの **Supported account types** を変更してみてください。Azure AD アプリの Authentication 設定で、適切なマルチテナント オプションを選択していることを確認してください。マルチテナント オプションには、次のものがあります: **Accounts in any organizational directory (Any Azure AD directory - Multitenant)**。

**ユーザーがログインしようとすると、次のエラーメッセージが表示されます: "invalid\_request; failed to obtain <Tooltip tip="Access Token: API にアクセスするために使用される認可資格情報で、不透明な文字列または JWT の形式を取ります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=access+token">access token</Tooltip>".**

このエラーの最も可能性が高い原因は、Azure AD の **クライアントシークレット** が無効か期限切れになっていることです。これを解決するには、Azure AD でアプリ用の新しい **クライアントシークレット** を生成し、Auth0 で設定したエンタープライズ接続の **Client Secret** を更新してください。

<div id="signing-key-rollover-in-azure-ad">
  ## Azure AD における署名鍵のロールオーバー
</div>

署名鍵は、<Tooltip tip="アイデンティティプロバイダー（IdP）: デジタルIDを保存および管理するサービス。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=identity+provider">アイデンティティプロバイダー</Tooltip>が発行する認証トークンに署名するために使用され、利用側のアプリケーション (この場合は Auth0) では、生成されたトークンが真正なものかどうかを検証するために使用されます。

セキュリティ上の理由から、Azure AD の署名鍵は[定期的にロールオーバーされます](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-signing-key-rollover)。この場合でも、**特に対応は必要ありません**。Auth0 は新しいキーを自動的に使用します。

<div id="remove-unverified-label">
  ## 未確認ラベルを削除する
</div>

<Tooltip tip="カスタムドメイン: 特殊な、いわゆるバニティ名を持つサードパーティのドメイン。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=custom+domain">カスタムドメイン</Tooltip>を使用している場合、Azure AD ログインのアプリケーションの同意プロンプトで、ドメインに「未確認」というラベルが表示されることがあります。未確認ラベルを削除するには、次の手順に従います。

1. Auth0アプリケーションのドメインを検証します: [Azure Active Directory ポータルを使用してカスタム ドメイン名を追加する](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/add-custom-domain#add-your-custom-domain-name-to-azure-ad)。
2. 検証済みドメインを Auth0アプリケーションに割り当てます: [方法: アプリケーションのパブリッシャー ドメインを構成する](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-configure-publisher-domain#configure-publisher-domain-using-the-azure-portal)。

<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)
