Microsoft Entra アプリを管理し、監視する
初めての Microsoft Entra 統合アプリケーションを実装したので、管理とメンテナンス タスクに焦点を当てた機能のより詳細な側面について調べる予定です。 マルチテナント アプリケーションについて、他にも注意事項があれば、それらも洗い出したいと思います。
Microsoft Entra 統合アプリに関連する一般的な管理とメンテナンス タスクとは
Microsoft Entra 統合アプリの実装には、次の特別な考慮事項が含まれています。その一部には、追加の管理とメンテナンス タスクが必要になる場合があります。
アプリケーションに関連付けられているすべてのリダイレクト URI (Uniform Resource Identifier) を、対応するドメイン ネーム サービス (DNS) レコードを含め、常に把握します。
リダイレクト URI に対応するエンドポイントの暗号化を徹底することで Web アプリを保護します。
Web アプリ、Web API、デーモン アプリの資格情報を管理します。
シークレットを使用する際は、ローテーションを含め、その管理を自動化することを検討します。
アプリケーションのアクセス許可スコープを構成する際は、最小限の特権の原則を適用します。 アプリケーションは、必要なときにだけ別途アクセス許可を要求する必要があります。
可能な限り、アプリケーションのアクセス許可ではなく、委任されたアクセス許可を使用します。
開発時には、プロトコル (OAuth 2.0、Open ID など) に対して直接プログラミングするのではなく Microsoft Authentication Library を使用します。
Note
Microsoft Authentication Library には、条件付きアクセス、デバイス全体のシングル サインオン (SSO)、トークンのキャッシュなど、多様な認証シナリオを実現する使いやすいアプローチが用意されています。
Note
このモジュールは、クラウドネイティブ アプリケーションと Microsoft Entra ID の統合に関する完全なガイダンスとベスト プラクティスを提供することを目的としたものではなく、Microsoft Entra 認証とマルチテナントの概念を紹介することを目的としています。
マルチテナント Microsoft Entra 統合アプリに関連するその他の考慮事項とは
Microsoft Entra マルチテナント シナリオを実装する場合は、任意の Microsoft Entra テナントからのサインインを受け入れるようにアプリケーションを構成する必要があります。 そうしたテナントのユーザーがアプリにアクセスできるようになるのは、アプリによって要求された適切な同意がそのユーザーから得られた後になります。
マルチテナント アプリを実装する過程で必要となる要素としては主に次の 4 つがあります。
- マルチテナント型となるようにアプリを登録する
- /common エンドポイントに要求を送信するようにアプリを構成する
- 複数の issuer 値を管理するためのコードを追加する
- ユーザーと管理者の同意に応答するためのプロビジョニングを組み込む
マルチテナント型となるようにアプリを登録する
アプリをマルチテナントとして登録するには:
[リソース、サービス、ドキュメントの検索] テキスト ボックスを使用して、「アプリの登録」を検索し、結果のリスト内の [Azure サービス] セクションから [アプリの登録] を選択します。
[すべての登録] を選択してから、[cna-app] を選択します。
[サポートされているアカウントの種類] オプションを選び、[サポートされているアカウントの種類] [任意の組織ディレクトリ内のアカウント (任意の Microsoft Entra ディレクトリ - マルチテナント)] で、[保存] を選択します。
Microsoft Entra ID では、アプリの [アプリケーション ID/URI] がグローバルで一意になっている必要があります。 シングルテナント アプリの場合、[アプリケーション ID/URI] は、そのテナント内で一意であることが必要です。 マルチテナント アプリの場合は、グローバルに一意である必要があります。 この要件を満たすためには、[アプリケーション ID/URI] のホスト名が、Microsoft Entra テナントの確認済みのドメインと一致する必要があります。
/common エンドポイントに要求を送信するようにアプリを構成する
シングルテナント アプリでは、サインイン要求はテナントのサインイン エンドポイントに送信されます。 たとえば、contoso.com では、対応するエンドポイントが https://login.microsoftonline.com/contoso.com
になります。 実質的に、そのエンドポイントを対象とする要求では、対応する Microsoft Entra テナントへのユーザーまたはゲストのサインインが許可されます。 マルチテナント アプリでは、どのテナントが使用されるのかを事前に判断できないので、すべての Microsoft Entra テナントを扱う https://login.microsoftonline.com/common
エンドポイントを使用します。
複数の issuer 値を管理するためのコードを追加する
Web アプリケーションと Web API は、Microsoft ID プラットフォームからのトークンを検証できなければなりません。 そのためには、どの issuer 値が有効で、どの issuer 値が有効でないかを、issuer 値のテナント ID 部分に基づいて判断するロジックを実装する必要があります。 詳細については、このコースの「まとめ」ユニットで言及されているドキュメントを参照してください。
ユーザーと管理者の同意に応答するためのプロビジョニングを組み込む
マルチテナント アプリケーションの場合、アプリの初期登録は、アプリ開発者が使用する Microsoft Entra テナントで行われます。 異なる Microsoft Entra テナントから個々のユーザーが初めてアプリにサインインするとき、各ユーザーは、アプリケーションによって要求されたアクセス許可への同意を求められます。 そうして、それぞれのテナントにサービス プリンシパルが作成されることとなります。 この要件に対応するためのプロビジョニングの詳細については、このコースの「まとめ」ユニットで言及されているドキュメントを参照してください。