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

# Microsoft Entra IDにアプリを接続する

> エンタープライズ接続を使ってMicrosoft Entra IDにアプリを接続する方法について説明します。

<Card title="概要">
  重要なコンセプト

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

Microsoft Entra IDと統合すると、ユーザーは以下を行えるようになります。

* 自分や自社が管理するMicrosoft Entra IDにあるアプリケーションを、自社内部から使用する
* 他社のMicrosoft Entra IDからアプリケーションを使用する（外部ディレクトリは別の接続として構成することをお勧めします）。

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

## 手順

アプリケーションをMicrosoft Entra IDに接続するには、以下を行う必要があります。

1. [アプリをMicrosoft Entra IDに登録する](#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)

### アプリをMicrosoft Entra IDに登録する

アプリをMicrosoft Entra IDに登録するには、Microsoftドキュメントの「[クイックスタート：Microsoft IDプラットフォームにアプリケーションを登録する](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app)」を参照してください。

<Warning>
  Entra IDディレクトリが2つ以上ある場合は、Auth0で使用したいアプリを登録する際に正しいディレクトリを選択していることを確認してください。
</Warning>

登録の際に次の設定を構成します。

| オプション                 | 設定                                                                                                                                                                                                                              |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **サポートされているアカウントタイプ** | このディレクトリからSCIMベースのユーザープロビジョニングを有効にするには、**［この組織ディレクトリのみに含まれるアカウント（シングルテナント）］**を選択します。外部組織（他のEntraディレクトリなど）のユーザーを許可するには、適切なマルチテナントオプションを選択します。次のようなマルチテナントオプションがあります：**［任意の組織のディレクトリ内のアカウント（任意のMicrosoft Entraディレクトリ - マルチテナント］** |
| **［リダイレクトURI］**       | **Web**のリダイレクトURIのタイプを選択し、コールバックURLを入力します：`https://{yourDomain}/login/callback`                                                                                                                                                 |

<Card title="リダイレクト用のAuth0ドメイン名を見つける">
  上記で、 [カスタムドメイン](/docs/ja-jp/customize/custom-domains)機能を使っていないのに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`」になります。

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

このプロセス中、Microsoftはアプリケーション用の **アプリケーション（クライアント）ID** を生成します。このIDはアプリの **［Overview（概要）］** 画面に表示されます。 **これらの値をメモします。**

#### クライアントシークレットを作成する

クライアントシークレットを作成するには、Microsoftドキュメントの「[クイックスタート：Web API にアクセスするようにクライアントアプリケーションを構成する」の「資格情報をWebアプリケーションに追加する」](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app#add-credentials)を参照してください。

生成したら、 **これらの値をメモします** 。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  有効期限のあるシークレットを構成する場合は、必ず **有効期限を記録** してください。期限が切れる前にキーを更新して、サービスの中断を避ける必要があります。
</Callout>

#### アクセス許可を追加する

アクセス許可を追加するには、Microsoftドキュメントの「[クイックスタート：Web APIにアクセスするようにクライアントアプリケーションを構成する」の「Web APIにアクセスするためのアクセス許可を追加する」](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** | アプリがサインインしたユーザーの代理としてディレクトリデータを読み取れるようにします。      |

### Auth0でエンタープライズ接続を作成する

Auth0でMicrosoft Entra IDエンタープライズ接続を作成して構成します。Microsoft Azureポータルでアプリをセットアップする際に、 **［Application (client) ID（アプリケーション（クライアント）ID）］** と **［<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=client-secret" tip="クライアントシークレット: クライアント（アプリケーション）が認可サーバーで認証するために使用するシークレット。これはクライアントと認可サーバーだけが知っているものであり、推測できないように十分にランダムである必要があります。" cta="用語集の表示">Client secret</Tooltip>（クライアントシークレット）］** が生成されていることを確認してください。

1. [［Auth0 Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］](https://manage.auth0.com/#/connections/enterprise)に移動し、 **［Microsoft Entra ID］** を見つけ、その［`+`］を選択します。

   <Frame>
     <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/ja-jp/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/101fc19f62d82b5c7b13d88f3a0a8e96/Enterprise_Connections_-_JP.png" alt="Dashboard - 接続 -エンタープライズ" />
   </Frame>

2. 接続の詳細を入力し、 **［Create（作成）］** を選択します。

   | フィールド                                                 | 説明                                                                                                                                                                                                                                                                     |
   | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Connection name（接続名）**                              | 接続の論理識別子。テナントに対して一意である必要があります。一度設定すると、この名前は変更できません。                                                                                                                                                                                                                    |
   | **Microsoft Entra ID Domain（Microsoft Entra IDドメイン）** | Microsoft 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（クライアントシークレット）］** の保存値を入力します。                                                                                                                                                |
   | **User ID Attribute Type（ユーザーID属性タイプ）**               | Auth0のuser\_idプロパティにマッピングされるIDトークンの属性。このオプションは、Microsoftのドキュメント、「[IDトークンのクレームのリファレンス - Microsoft IDプラットフォーム](https://learn.microsoft.com/en-us/entra/identity-platform/id-token-claims-reference#use-claims-to-reliably-identify-a-user)」に記載の2種類のサポートされたIDタイプに対応しています。 |
   | **Use common endpoint（共通のエンドポイントの使用）**                | （任意）有効にすると、アプリケーションは新しいディレクトリからユーザーを動的に受け入れます。通常、Microsoft Entra IDに登録したアプリケーションでサポートされているアカウントタイプにマルチテナントオプションを選択した場合に有効になります。Auth0はユーザーをAzureの共通ログインエンドポイントにリダイレクトし、Azureはユーザーのメールアドレスのドメインに基づいてホーム領域検出を実行します。                                                       |
   | **Identity API（アイデンティティAPI）**                         | Auth0がMicrosoft Entra IDエンドポイントと対話するために使用するAPI。動作の違いについては、Microsoftの[Microsoft IDプラットフォーム（v2.0）に更新する理由](https://docs.microsoft.com/en-us/azure/active-directory/develop/azure-ad-endpoint-comparison)ドキュメントをご覧ください。                                                    |
   | **Attributes（属性）**                                    | アプリがアクセスできるサインイン済みユーザーの基本属性。Auth0ユーザープロファイルにどの程度情報を保管したいかを示します。                                                                                                                                                                                                        |
   | **Extended Attributes（拡張属性）**（任意）                     | アプリがアクセスできるサインイン済みユーザーの拡張属性。                                                                                                                                                                                                                                           |
   | **Auth0 API**（任意）                                     | 選択すると、Microsoft Entra ID APIへの呼び出しを行う機能が必要であることを示します。これにより、Auth0にログインしたことがないユーザーでも、Microsoft Entra ID Graphでユーザーを検索できます。                                                                                                                                               |
   | **Email Verification（メール確認）**                         | Auth0がユーザープロファイルの`email_verified`フィールドを設定する方法を選択します。詳細については、「[Azure ADとADFSのメール検証](/docs/ja-jp/connections/azuread-adfs-email-verification)」を参照してください。                                                                                                                 |

   <Frame>
     <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/ja-jp/cdy7uua7fh8z/1r6WTgLJUlbiV9jligIwER/f9862dd5ba92afa7d977134b5628ff09/Enterprise_Connection_-_MSFT_-_Japanese.png" alt="Microsoft Entra ID接続を新規作成する" />
   </Frame>

3. **［Provisioning（プロビジョニング）］** ビューでユーザープロファイルがAuth0で作成および更新される方法を構成することができます。

   | フィールド                                                                    | 説明                                                                                                                                                             |
   | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Sync user profile attributes at each login（ログインごとにユーザープロファイル属性を同期する）** | 有効な場合、ユーザーがログインするたびにユーザープロファイルデータを自動的に同期するため、接続ソースで加えられた変更はAuth0で自動的に更新されます。                                                                                   |
   | **Sync user profiles using SCIM（SCIMを使ってユーザープロファイルを同期する）**               | 有効な場合、SCIMを使ってユーザープロファイルデータを同期することができます。詳細については、「[インバウンドSCIMを構成する](https://auth0.com/docs/ja-jp/authenticate/protocols/scim/configure-inbound-scim)」を参照してください。 |

4. **［Login Experience（ログインエクスペリエンス）］** ビューでこの接続でのユーザーログインの方法を構成することができます。

   | フィールド                                   | 説明                                                                                                                                                                                                                                                       |
   | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **ホームレルムディスカバリー**                       | ユーザーのメールドメインを、指定されたIDプロバイダードメインと比較します。詳細については、\[識別子優先認証の構成]を参照してください。（[https://auth0.com/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first）](https://auth0.com/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first）) |
   | **接続ボタンを表示**                            | このオプションでは、アプリケーションの接続ボタンをカスタマイズするため次の選択肢が表示されます。                                                                                                                                                                                                         |
   | **Button display name（ボタン表示名）** （オプション） | ユニバーサルログインのログインボタンをカスタマイズするために使用されるテキスト。設定されるとボタンは以下を読み取ります："Continue with `{Button display name}`"                                                                                                                                                      |
   | **Button logo（ボタンロゴ）URL** （任意）          | ユニバーサルログインのログインボタンをカスタマイズするために使用される画像のURL。設定されると、ユニバーサルログインのログインボタンは、20px×20pxの四角で画像を表示します。                                                                                                                                                              |

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     任意のフィールドは、New Universal Loginでのみ使用することができます。Classic Loginを使用している場合、［Add（追加）］ボタン、ボタンの表示名、ボタンロゴのURLは表示されません。
   </Callout>

5. 適切なMicrosoft Entra ID管理者権限を持っていて、ユーザーログインに必要なアプリケーションへの同意ができる場合には、 **［Continue（続行）］** をクリックします。[Microsoft Entra IDアカウントにログイン](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#requesting-consent-for-an-entire-tenant)して同意することが求められます。管理者権限を持っていない場合には、提示されたURLを管理者に提供して同意してもらってください。

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

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

### 接続のテスト

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

## トラブルシューティング

以下は問題を解決するためのヒントの一部です。

**アプリケーションをMicrosoft Entra IDに登録しましたが、Microsoft Entra IDで［アプリの登録］に戻ったらアプリケーションが見あたりません。**

アプリを間違って別のMicrosoft Entra IDディレクトリに登録した（または、アプリを登録する前にMicrosoft Entra IDディレクトリを作成しなかった）可能性があります。一番簡単なのは、アプリをMicrosoft Entra IDに登録し直すことです。アプリの登録時に正しいディレクトリを使用していることを確認します。Microsoft Entra IDディレクトリを作成する必要がある場合には、Microsoftドキュメント「[クイックスタート：Microsoft Entra IDで新しいテナントを作成する」の「組織の新しいテナントを作成する」](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.（サービスリスティングがパブリッシャーによって適切に構成されていないため、このサービスへのアクセスは付与できません。）」というエラーメッセージを受け取りました。**

この問題を解決するには、登録したEntra IDアプリで **［Supported account types（サポートされているアカウントの種類）］** を変更してみてください。Microsoft Entra IDアプリの認証設定で、適切なマルチテナントオプションが選択されていることを確認します。次のようなマルチテナントオプションがあります： **任意の組織ディレクトリ内のアカウント（任意のMicrosoft Entra IDディレクトリ - マルチテナント）**

**ユーザーがログインしようとすると、「invalid\_request; failed to obtain <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=access-token" tip="アクセストークン: APIへのアクセスに使用される、不透明な文字列またはJWT形式の認可資格情報。" cta="用語集の表示">access token</Tooltip>（アクセストークンの取得失敗）」というメッセージを受け取ります。**

このエラーが起きる理由として最も可能性が高いのは、Microsoft Entra IDの **クライアントシークレット** が無効か期限切れであることです。この問題を解決するには、Microsoft Entra IDでアプリ用に新しい **クライアントシークレット** を生成し、Auth0で構成されたエンタープライズ接続で **クライアントシークレット** を更新します。

## Microsoft Entra IDで署名鍵をロールオーバーする

署名鍵は、IDプロバイダーが自ら発行した認証トークンに署名するために使用されます。そして、コンシューマーアプリケーション（この場合はAuth0）が生成されたトークンの真正性を検証するのに使用されます。

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

## 未検証ラベルを削除する

カスタムドメインを使用している場合には、Microsoft Entra IDログインのアプリケーション同意プロンプトで、ドメインに「unverified（未検証）」のラベルが表示されることがあります。未検証ラベルを削除するには以下のMicrosoftドキュメントを参照してください。

1. Auth0アプリケーションのドメインを検証する[Microsoft Entra IDポータルを使用してカスタムドメイン名を追加する](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)

## 次の手順

* [Auth0のライブラリーを使ってAuth0を統合する](/docs/ja-jp/libraries)
* [Authentication APIを使ってAuth0を統合する](/docs/ja-jp/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)
