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

Overview

重要なコンセプト

  • 手順に従ってアプリケーションをEntra IDに登録し、Auth0インスタンスに接続する

  • 構成を本番環境で運用する前に、接続をテストする

  • トラブルシューティングのヒントを確認する

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

  • 自分や自社が管理するMicrosoft Entra IDにあるアプリケーションを、自社内部から使用する

  • 他社のMicrosoft Entra IDからアプリケーションを使用する(外部ディレクトリは別の接続として構成することをお勧めします)。

手順

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

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

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

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

  4. 接続をテストする

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

アプリをMicrosoft Entra IDに登録するには、Microsoftドキュメントの「クイックスタート:Microsoft IDプラットフォームにアプリケーションを登録する」を参照してください。

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

オプション 設定
サポートされているアカウントタイプ このディレクトリからSCIMベースのユーザープロビジョニングを有効にするには、[この組織ディレクトリのみに含まれるアカウント(シングルテナント)]を選択します。外部組織(他のEntraディレクトリなど)のユーザーを許可するには、適切なマルチテナントオプションを選択します。次のようなマルチテナントオプションがあります:[任意の組織のディレクトリ内のアカウント(任意のMicrosoft Entraディレクトリ - マルチテナント]
[リダイレクトURI] WebのリダイレクトURIのタイプを選択し、コールバック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」になります。

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

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

クライアントシークレットを作成するには、Microsoftドキュメントの「クイックスタート:Web API にアクセスするようにクライアントアプリケーションを構成する」の「資格情報をWebアプリケーションに追加する」を参照してください。

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

アクセス許可を追加する

アクセス許可を追加するには、Microsoftドキュメントの「クイックスタート:Web APIにアクセスするようにクライアントアプリケーションを構成する」の「Web APIにアクセスするためのアクセス許可を追加する」を参照してください。

アクセス許可を設定する際には、以下を考慮してください。

拡張された属性(Extended ProfileSecurity Groupsなど)を有効にする場合には、その後、Microsoft Graph APIで以下の権限を構成する必要があります。

委任権限 説明
Users > User.Read アプリがユーザーをサインインして、サインインしたユーザーのプロファイルを読み取れるようにします。
Directory > Directory.Read.All アプリがサインインしたユーザーの代理としてディレクトリデータを読み取れるようにします。

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

Auth0でMicrosoft Entra IDエンタープライズ接続を作成して構成します。Microsoft Azureポータルでアプリをセットアップする際に、[Application (client) ID(アプリケーション(クライアント)ID)]Client secret(クライアントシークレット)]が生成されていることを確認してください。

  1. [Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、[Microsoft Entra ID]を見つけ、その[+]を選択します。

    Dashboard - 接続 -エンタープライズ
  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プラットフォーム」に記載の2種類のサポートされたIDタイプに対応しています。
    Use common endpoint(共通のエンドポイントの使用) (任意)有効にすると、アプリケーションは新しいディレクトリからユーザーを動的に受け入れます。通常、Microsoft Entra IDに登録したアプリケーションでサポートされているアカウントタイプにマルチテナントオプションを選択した場合に有効になります。Auth0はユーザーをAzureの共通ログインエンドポイントにリダイレクトし、Azureはユーザーのメールアドレスのドメインに基づいてホーム領域検出を実行します。
    Identity API(アイデンティティAPI) Auth0がMicrosoft Entra IDエンドポイントと対話するために使用するAPI。動作の違いについては、MicrosoftのMicrosoft IDプラットフォーム(v2.0)に更新する理由ドキュメントをご覧ください。
    Attributes(属性) アプリがアクセスできるサインイン済みユーザーの基本属性。Auth0ユーザープロファイルにどの程度情報を保管したいかを示します。
    Extended Attributes(拡張属性)(任意) アプリがアクセスできるサインイン済みユーザーの拡張属性。
    Auth0 API(任意) 選択すると、Microsoft Entra ID APIへの呼び出しを行う機能が必要であることを示します。これにより、Auth0にログインしたことがないユーザーでも、Microsoft Entra ID Graphでユーザーを検索できます。
    Email Verification(メール確認) Auth0がユーザープロファイルのemail_verifiedフィールドを設定する方法を選択します。詳細については、「Azure ADとADFSのメール検証」を参照してください。

    Microsoft Entra ID接続を新規作成する

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

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

  4. [Login Experience(ログインエクスペリエンス)]ビューでこの接続でのユーザーログインの方法を構成することができます。

    フィールド 説明
    ホームレルムディスカバリー ユーザーのメールドメインを、指定されたIDプロバイダードメインと比較します。詳細については、[識別子優先認証の構成]を参照してください。(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の四角で画像を表示します。

  5. 適切なMicrosoft Entra ID管理者権限を持っていて、ユーザーログインに必要なアプリケーションへの同意ができる場合には、[Continue(続行)]をクリックします。Microsoft Entra IDアカウントにログインして同意することが求められます。管理者権限を持っていない場合には、提示されたURLを管理者に提供して同意してもらってください。

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

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

接続のテスト

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

トラブルシューティング

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

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

アプリを間違って別のMicrosoft Entra IDディレクトリに登録した(または、アプリを登録する前にMicrosoft Entra IDディレクトリを作成しなかった)可能性があります。一番簡単なのは、アプリをMicrosoft Entra IDに登録し直すことです。アプリの登録時に正しいディレクトリを使用していることを確認します。Microsoft Entra IDディレクトリを作成する必要がある場合には、Microsoftドキュメント「クイックスタート:Microsoft Entra IDで新しいテナントを作成する」の「組織の新しいテナントを作成する」に従ってください。

「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 access token(アクセストークンの取得失敗)」というメッセージを受け取ります。

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

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

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

セキュリティ上の理由により、Microsoft Entra IDの署名鍵は定期的にロールオーバーされます。この場合、何も対処する必要はありません。Auth0は自動的に新しい鍵を使用します。

未検証ラベルを削除する

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

  1. Auth0アプリケーションのドメインを検証するMicrosoft Entra IDポータルを使用してカスタムドメイン名を追加する

  2. 検証したドメインをAuth0アプリケーションに割り当てるアプリの発行元ドメインを構成する

次の手順