皆さんこんにちは。国井です。
今日はAzure AD改めMicrosoft Entra IDに実装されているテナント間同期という機能についてです。
Office 365を利用する企業も増え、同じ企業でも複数のテナントを持つことも増えてきました。こうしたケースではユーザーの並行利用や移行、統合などのニーズがあるかと思います。こうしたときにテナント間同期は役立ちます。そこでいったいどんな機能なのか、Microsoft Learnの内容をAskYourPDFで読み込ませてChatGPTに聞いてみましょう。
“テナント間同期”は、組織内のテナント間で Azure AD B2B コラボレーション ユーザーの作成、更新、削除を自動化する機能です。これにより、ユーザーはアプリケーションにアクセスし、テナント間で共同作業を行いながら、組織を進化させることができます。主な目標は以下の通りです:
– マルチテナント組織のシームレスなコラボレーション
– マルチテナント組織での B2B コラボレーション ユーザーのライフサイクル管理を自動化する
– ユーザーが組織を離れたときに B2B アカウントを自動的に削除する
テナント間同期を使用すると、B2B コラボレーション ユーザーの作成、更新、削除が自動化されます。テナント間同期を使用して作成されたユーザーは、アプリが統合されているテナントに関係なく、Microsoft アプリケーション (Teams や SharePoint など) と Microsoft 以外のアプリケーション (ServiceNow、Adobe など) の両方にアクセスできます。
以上、https://learn.microsoft.com/ja-jp/azure/active-directory/multi-tenant-organizations/cross-tenant-synchronization-configure をもとにChatGPTに問い合わせた結果より
なるほど。設定方法は.. って書こうと思ったら既に書いている方がいらしたのでリンクを貼っておきます。
機能概要と設定方法が確認できたら、よく出てくるであろう疑問点を確認しながらその特徴を確認していきましょう。
作られるユーザーはどんな特徴がある?
ChatGPTの説明にあったように同期によって作られるユーザーはゲストユーザーです。
下の画面は同期を行ったユーザーのプロパティです。これを見るとわかると思いますが、同期されたユーザーはゲストユーザーとしてではなくメンバーとしてユーザーが作られます。
外部で作られたユーザー(同期元テナントのユーザー)が同期して、ゲストではなくメンバーとしてユーザーが作られることでゲストユーザーには禁止されているMicrosoft Entra管理センターへのアクセスが認められるようになります。つまり同期されたユーザーからほかのユーザーのプロパティが参照できるようになるのです。
これはテナント間同期を使う時点で資本関係のある会社間でのやり取りだから通常のゲストよりも高い権限を上げてしまおうという発想なのだと思います。
内部/外部とメンバー/ゲスト
Microsoft Learnサイトにも記載があるのですが、Microsoft Entra IDに作られるユーザーには以下の種類があります。
・社内ユーザー:そのテナントに直接作られたユーザー
・社外ユーザー:別のテナントまたはMSアカウントなどで作られたユーザー・メンバー:テナント内のユーザーとして識別されたユーザー
・ゲスト:テナント外のユーザーとして識別されたユーザー簡単に言えば、社内/社外はユーザーが作られたテナント、メンバー/ゲストはユーザーの区分(属性)を表すものです。
そのため次のように分類することができます。・社内ユーザー x メンバー
・社内ユーザー x ゲスト
・社外ユーザー x メンバー
・社外ユーザー x ゲスト通常、Microsoft Entra IDからゲストを作成する場合、テナントAの社内ユーザー x メンバーのユーザーからテナントBの社外ユーザー x ゲストを作成するという要領になりますが、
テナント間同期の場合はテナントAの社内ユーザー x メンバーのユーザーを同期してテナントBの社外ユーザー xメンバーを作成することになります。
同期ユーザーのメンバーの属性はゲスト属性に変えられる?
可能です。メンバーにしてしまうと権限を与えすぎだという考えもあるでしょうからその時は属性を変更しましょう。変更方法はこちらで紹介しています。
どのくらいの間隔で同期される?
40分間隔です。Azure AD Connectよりもちょっと長い間隔です。
ただしオンデマンドプロビジョニング(要求時にプロビジョニング)という設定があり、特定のユーザーやグループを指定した場合、そのオブジェクトだけが今すぐ同期されるという機能があります。
同期対象は変更できる?
Azure AD ConnectだとSynchronization Rules Editorを使ったカスタマイズをしていましたが、テナント間同期の場合、テナント間同期の構成画面から[ユーザーとグループ]メニューで同期対象ユーザー/グループを指定できます。
また、テナント間同期の構成画面から[プロビジョニング]-[マッピング]から
[ソース オブジェクト スコープ]という設定を使って、条件式に基づく同期対象の定義ができます。
ゲストユーザーに持たせる属性は変更できる?
もちろん可能です。
テナント間同期の構成画面から[プロビジョニング]-[マッピング]から、こんな感じで同期元テナントの属性と同期先テナントの属性をそれぞれ定義できます。
また、Azure AD ConnectでおなじみのIIF関数を使った式での属性マッピングも可能です。
デフォルト設定ではusageLocation属性は同期されないので、新しい属性マッピングを作成し、移行元テナントユーザーのusageLocation属性にJPという値が入っていたらusageLocation属性を移行先テナントのusageLocation属性へ、JPではない場合はcountry属性をusageLocation属性へ同期するように設定してみました(ユースケースとしてはなさそうな設定でごめんなさい)。
なお、IIF関数を使った条件指定はややこしくなるので、[式ビルダー]という設定を使って式を事前に作成し、テストすることができます。画面では見切れてしまっているのですが、[式のテスト]ボタンを押すとyoshiユーザーの場合の値として何が返ってくるかが確認できます。
Azure AD Connectで魔改造をした経験のある人なら腕が鳴る機能ですねw
あ、そうそう、このあたりのカスタマイズ方法についてはAzure AD Connectを利用したトレーニングコースとしてリクエストベースで提供しておりますので、お気軽にご相談ください。
同期不可能な属性としてPhoto, Manager属性、それとカスタムセキュリティ属性があります。同期先テナントで同じ情報を維持できるとは限らない属性は使えないってことですね。
一意と判定する属性は?
UPNって言いたいところなのですが、違います。
属性マッピングの画面でも確認できるように同期元はAltSecIdFromNetid (LiveID) 属性、同期先ではalternativeSecurityIds属性となっています。
このあたりはanbutterさんの説明が詳しいのでご覧いただくと良いと思います(というか、この説明読めば私のブログ要らないんじゃないといま気が付きました)。
移行先テナントでゲストユーザーが削除されたらどうなる?
次の同期のタイミングで復活します。ユーザーは削除するとごみ箱に入りますが、同期の際にごみ箱に入ったユーザーと移行元テナントのユーザーをマッピングさせ、ごみ箱から復活させるような動きをします。
■ ■ ■
以上になります。
そのほか、ご質問などいただいたりとかしたら追記していこうと思います。