[Q]
複数のテナントのユーザーから 1 つのアプリに認証させる手順を教えてください。
[A]
複数のテナントのユーザーから 1 つのアプリに認証させたい場合、以下の 2 つの方法が考えられます。
- 方法 1) B 社のテナントで構築した Web アプリをシングル テナント アプリとして構成し、Azure AD B2B ゲスト招待を使用して A 社のユーザーを B 社テナントに招待する。
- 方法 2) B 社のテナントで構築した Web アプリをマルチ テナント アプリに変更し、A 社ユーザーは B 社のアプリに直接アクセスする。
▼ 方法 1: Azure AD B2B ゲスト招待を使用する方法
まず、上記方法 1 は、Azure AD B2B と呼ばれる他テナントのユーザーをゲストとして招待する機能を使用した方法です。この機能を利用すると、他テナントのユーザーをゲストとして自テナントに招待し、組織間の連携を図ることが可能です。B 社テナントに対して A 社のユーザーをゲストとして招待することになります。これにより、A 社のユーザーは、B 社テナントのリソース (Web アプリ) にサインイン可能となります。
この時、A 社のテナントに存在するどのユーザーを B 社に招待するかは B 社側から制御が可能です。また、現在 B 社テナントで構築されている Web アプリに追加の構成変更は必要ありません (現在該当の Web アプリはシングル テナント アプリとして構成されている前提)。アプリの変更は基本的に必要なく、B テナントに A テナントのユーザーを招待するだけでご要望が実現すると考えられます。
Azure Active Directory B2B のゲスト ユーザー アクセスとは
https://docs.microsoft.com/ja-jp/azure/active-directory/external-identities/what-is-b2b
▼ 方法 2: Web アプリをマルチ テナント アプリとして Azure AD に構成する方法
方法 2 は、B 社のテナントで構築している Web アプリをマルチ テナント アプリという形式に変更する方法です。マルチ テナント アプリは、自社以外のテナントにもアプリを公開したいお客様が利用する構成です。Web アプリをマルチ テナント アプリに変更することで、B 社以外のユーザーもこのアプリにサインインすることが可能となります。
しかしこの場合、以下のような点で考慮が必要です。
- アプリが使用するサインイン エンドポイントをマルチ テナント アプリ用に変更する必要があり、アプリ側の変更が必要となる。
- A 社テナント以外のユーザーも B 社のアプリにアクセス可能となる。
上記 1 については、以下の資料に大まかな対応方法が記載されております。Azure AD 側とアプリ側でそれぞれ構成変更が必要となります。
すべての Azure Active Directory ユーザーがマルチテナント アプリケーション パターンを使用してサインインする
https://docs.microsoft.com/ja-jp/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant
上記 2 についても、もし利用対象のテナントおよびユーザーに制限を設ける場合には、アプリ側の変更が必要となります。具体的には、アプリにサインインしたユーザーのユーザー情報を確認し、利用が許可されていないテナントまたはユーザーの場合には別途エラーページを表示するなどのような処理を作りこむ必要がございます。
[更新日]
Update:202010