テナント間で可能な限りシームレスにTeamsとSharePointを使う

Microsoft 365は基本的に１つの組織では単一のテナントで使用することを推奨されていますが、会社間の関係によっては別テナントか単一テナントか迷う場面があります。

そこで第三の選択肢として[テナント間同期](https://learn.microsoft.com/ja-jp/entra/identity/multi-tenant-organizations/overview)（マルチテナント組織）が用意されていますが、これが単一テナントと比較してどこまでシームレスにコミュニケーションできるのかを確認してみました。

# テナント間同期の動作
テナント間同期の動作については[こちら](https://qiita.com/fue_tatsuya/items/9b3af60c28041dedb9f9)でも書かせていただきました。

https://qiita.com/fue_tatsuya/items/9b3af60c28041dedb9f9

テナント間同期を設定すると別テナント側に種別が「メンバー」である外部ユーザーが作成されます。

# 種別「ゲスト」と「メンバー」の比較
Microsoft Learnでの記述は以下となっています。

[B2B ゲスト ユーザーのプロパティを理解して管理する](https://learn.microsoft.com/ja-jp/entra/external-id/user-properties)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2511911/311f2f0b-6b21-21d2-bf5d-ab6e9eedaff2.png)

1. **外部ゲスト**: 一般に外部ユーザーまたはゲストと見なされるほとんどのユーザーは、このカテゴリに分類されます。 この B2B コラボレーション ユーザーは、外部 Microsoft Entra 組織または外部 ID プロバイダー (ソーシャル ID など) にアカウントを持ち、リソースの組織内でゲストレベルのアクセス許可を持っています。 リソース Microsoft Entra ディレクトリに作成されるユーザー オブジェクトの UserType は "ゲスト" です。
2. **外部メンバー**: この B2B コラボレーション ユーザーは、外部 Microsoft Entra 組織または外部 ID プロバイダー (ソーシャル ID など) にアカウントを持ち、組織内のリソースに対するメンバーレベルのアクセス許可を持っています。 このシナリオがよく見られるのは、複数のテナントで構成される組織において、ユーザーが大規模な組織の一部と見なされ、組織のほかのテナント内のリソースに対するメンバーレベルのアクセスを必要とする場合です。 リソース Microsoft Entra ディレクトリに作成されるユーザー オブジェクトの UserType は "メンバー" です。
3. **内部ゲスト**: Microsoft Entra B2B コラボレーションが利用できるようになる前は、販売代理店、仕入先、製造元、およびその他のユーザーと共同作業を行うために、これらのユーザーの内部資格情報を設定し、ユーザー オブジェクトの UserType を "ゲスト" に設定することでゲストとして指定するのが一般的でした。 このような内部ゲスト ユーザーがいる場合は、代わりに B2B コラボレーションを使用して自身の資格情報を使用できるように招待できます。これにより、外部 ID プロバイダーが認証とアカウントのライフサイクルを管理できるようになります。
4. **内部メンバー**: 一般に、これらのユーザーは組織の従業員と見なされます。 ユーザーは、Microsoft Entra ID を介して内部的に認証を行い、リソース Microsoft Entra ディレクトリ内に作成されるユーザー オブジェクトの UserType は "メンバー" になります。

また、別にゲストユーザーのアクセス権を制限する機能がEntra IDにはあります。

https://learn.microsoft.com/ja-jp/entra/identity/users/users-restrict-guest-permissions

こちらのFAQにて以下のような記述がありました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2511911/448ae426-2ebb-ff63-eb9c-f45b279425f2.png)
つまりこのゲストアクセスで特に影響が出るのはOutlook、Teams、SharePointということになります。
ここではこの３つのアプリケーションでどのような動作になるのかを具体的に検証してみたいと思います。

# 具体的にできること
それでは実際にどのような動作になるのか検証してみます。

# Outlook
Outlookのオートコンプリートで出てきたゲストユーザーに対してメールを送信してみると送信元に対して配信不能のメールが返ってきます。
次にメンバーに対して送ってみると、無事に配信されることを確認できました。

## Teams
外部ユーザーがゲストとして相手のテナントにアクセスする場合、
メンバーにすることによってアクセスにすることによってMS365グループの管理者として追加することが可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2511911/1e7d4b8b-6ab7-74e3-ea19-298d39df5bb4.png)

ただし、ゲストユーザーから相手のテナント上にMicrosoft365チームを作成することはできないようです。

チャットについてはあまり変わらないようです。
上部のグローバル検索ではゲスト、メンバー関係なく検索されます。
細かい点としては、メンバーの場合は「（ゲスト）」という文字が無くなります。

同じくゲストユーザーには通常OneDriveは割り当てられないので、個別チャットではファイルを直接添付することはできません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2511911/32c35c1e-9e3c-b85e-eddb-bc050dbf26a7.png)

※あくまで個人的な見解ですが、これは既存のOneDrive共有機能を利用して将来的に解決されそうな感じがします。

## SharePoint
ゲストユーザーはSharePoint 管理センターで設定可能な制限を受けます。
[Microsoft 365 ゲストの共有設定のリファレンス](https://learn.microsoft.com/ja-jp/microsoft-365/solutions/microsoft-365-guest-settings?view=o365-worldwide)

逆に言うと、メンバーに設定された外部ユーザーはこれらの制約を受けないことになります。

SharePointのファイル共有先設定にあたっては内部ユーザーと同様にユーザーとして追加することが可能です。また、SharePointサイト作成時にも内部メンバーと同様の操作で追加できます。

リンクの共有時、共有範囲を組織内のメンバーとした場合も無事に開けます。

ゲストの場合はアクセス権が付与されず、はじかれてしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2511911/2ca04a55-71a8-0202-b397-780aa0344b0b.png)

## Forms
SharePointでFormsを作成した時、外部組織の回答者からメールアドレスを取得することはできるでしょうか。

Formsで回答者のメールアドレス収集、または回答を1度だけに制限したい場合、組織内のユーザーのみに限定する必要がありますが、**な ん と**「組織内のユーザーのみ」または「組織内の特定のユーザー」で指定したとしても回答できないことを確認しました。

これは非常に不本意ですね。

色々試してみたものの打つ手なしです。
ここはおとなしく各テナントでフォームを作成することになりそうです。

# 結論
見てきた通り、同一テナントのユーザーと比べてしまうとそれなりにできないことが多めな気がします。
逆にB2Bコラボレーションにおけるゲストアクセスに比べれば、ゲストアクセスの制御に関連する細々とした制約を受けなくなるため管理上は楽になるかもしれません。
最終的に単一テナントに統合するのか、テナント同期でお茶を濁すのかは状況によって異なるかと思いますが、ゲストアクセスは絶妙に使いずらい状態のため、今後より改善されることを祈ります。