Microsoft Entra ID の テナント間アクセス設定とテナント制限

# Microsoft Entra ID のテナント間アクセス設定とは
数年前から Microsoft Entra ID もマルチテナント環境における安全な ID 連携機能を拡充しています。その一つが**テナント間アクセス設定**で2022年7月に一般公開しています。そして、その設定項目に現在プレビュー中の**テナントの制限**が追加されました。

:::note info
私自身、何となく設定していたのですが、ちゃんと理解していない部分もあり整理してみました。\:thinking_face: 
:::

Entra ID の管理画面上では、テナント間アクセス設定は **External Identities** 配下で設定項目として **受信アクセスの設定**、**送信アクセスの設定**、**テナントの制限(プレビュー)** の三つがあります。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/fef85d3d-fce9-1693-01ee-4a0a700679d0.png)


以下のイメージのようにホームテナント(contoso.com)から見て外部のテナント(woodgrove.com, fabrikam.com)のアプリやサービスに対してアクセスを制御します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/f88188d9-6cfe-926b-90a5-6d53e5dec4b3.png)

「テナント間アクセス設定」は設定できる機能面から以下の二つに分けられます。

1. **「受信アクセスの設定」と「送信アクセスの設定」**
1. **「テナントの制限(プレビュー)」**

## 「受信アクセスの設定」と「送信アクセスの設定」は B2B コラボレーションを制御
「受信アクセスの設定」と「送信アクセスの設定」は B2B コラボレーションの設定項目です。以下の機能を使用する場合にテナント間のアクセスを制御します。

1. **B2B コラボレーション**：ユーザーは外部テナントのユーザーをゲストとしてホームテナントのリソースへのアクセスできるように招待することできます。例えば、contoso.com テナントの teams のチャンネルにアクセスできるように fabrikam.comテナントのユーザーを招待してアクセスを許可することが可能です

1. **テナント間同期**：テナント管理者によってホームテナントのユーザーをリソーステナント(外部テナント)へ自動的にユーザーを同期させます。同期されたユーザーは、ホームテナントのアカウントで同期先のテナントのリソースにアクセスすることが可能になります
1. **B2B 直接接続**：テナント間で信頼関係を設定し、シームレスにアクセスを実現する接続になります。上の二つとは大きく異ななり、現時点でこの接続が利用できるのは Teams 共有チャネルのみです

上記の３つのどれも、以下のイメージのように、ユーザー(alice@contoso.com)は必ずホームテナント(contoso.com)で認証後にゲスト招待された(またはテナント同期された)リソーステナント(fabrikam.com)へアクセスします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/09ac1b6f-b029-0684-9bf3-f4854474c90b.png)


「送信アクセスの設定」は認証を行うホームテナント側で設定します。ホームテナントの内部ユーザーや内部グループに対してリソーステナント(外部テナント)のアプリに対しアクセスを許可(またはブロック)するように設定します。また、「受信アクセスの設定」は、リソーステナントから見て外部になるホームテナントのユーザーやグループからリソーステナント(内部アプリ)へのアクセスを許可(またはブロック)します。

さらに「受信アクセスの設定」ではユーザーがアクセス元(ホームテナント)で認証時に実施した**多要素認証**、**遵守デバイス**、**Entra ハイブリッド参加デバイス** を信頼するかどうかを設定します。多要素認証を信頼するとリソーステナント側での多要素認証をバイパスすることができます。それとは逆に信頼しない場合はリソーステナント側で多要素認証を求められます。

テナント間アクセスの設定については以下を参照ください。

https://learn.microsoft.com/ja-jp/entra/external-id/cross-tenant-access-overview


# テナント制限
「テナントの制限」は「送信アクセスの設定」と「受信アクセスの設定」とは制御する部分が異なっています。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/98a76c44-eb5b-a17e-51c4-0944f9eb6f15.png)


上のイメージのようにユーザーの Alice が二つ以上の異なる Entra ID テナントのアカウントを持っている場合にアクセスを制御する機能です。Alice は、Contoso社の環境(Contoso管理デバイスやContoso社のネットワーク環境)においてアカウントをホームテナントの alice@contoso.com から alice@fabrikam.com へ切り替えて fabrikam.com のリソースへアクセスしようとします。テナント制限を使用することでそのアクセスをブロックすることが可能です。この例のように contoso 社の環境から外部テナントへログインして外部リソースへアクセスを制御する機能がテナント制限です。最新のテナント制限は**テナント制限V2**で、「テナント間アクセス設定」の「テナントの制限」で設定することが可能です。

# テナント制限V2 実現方法
テナント制限は管理ポータルで設定しただけでは機能しません。以下の3つの方法のいずれかを構成する必要があります。

-  **ユニバーサル テナント制限**: Global Secure Access (プレビュー) を使用して、すべてのトラフィックにタグを付けます。 これにより、テナント制限を実現します
:::note info
ユニバーサルテナント制限は前回の Global Secure Access の記事内でも取り上げています。https://qiita.com/hiyoshino/items/4786dee656adfe11c237
:::
-  **企業プロキシ**: 企業プロキシをデプロイし、Microsoft Entra ID および Microsoft アカウント (MSA) へのすべてのトラフィックに対してテナント制限 v2 シグナルを設定するようにプロキシを構成することでテナント制限を実現します
-  **Windows GPO**: 会社所有の Windows デバイスに対しては、グループポリシーを適用することでデバイスによるテナント制限を実現します

:::note warn
テナント制限v2 の構成方法は上記の三つがありますが、**制御できる部分に違い** があります。構成方法や違いの詳細は以下をご参照ください。
https://learn.microsoft.com/ja-jp/entra/external-id/tenant-restrictions-v2

:::

# まとめ
テナント間アクセス設定の **「送信アクセスの設定」** と **「受信アクセスの設定」** は B2Bコラボレーションのアクセス制御を行います。ユーザーはホームテナントで認証し、**ホームテナントのアカウントで外部テナントのアプリにアクセス** します。以下のイメージのようにそれぞれのテナントで設定を行い、アクセスを制御します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/7118d79f-f7df-7663-2938-7cbc75d0e93b.png)


それに対し、**テナント制限** はホームテナントの **ユーザーが外部テナントのアカウントへ切り替えて外部テナントのアプリへのアクセス**を制御します。設定と構成はホームテナント側の環境で行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2265935/ade54f05-d4b0-99e4-26bc-1bdb2ea13120.png)

テナント間アクセス設定の **「送信アクセスの設定」** と **「受信アクセスの設定」**、**「テナント制限」** をどう使うかについては、 テナント制限V2のサイトに以下の記述があります。
https://learn.microsoft.com/ja-jp/entra/external-id/tenant-restrictions-v2

>内部のユーザーが外部の組織やアプリにアクセスする必要がある場合は、テナント制限を有効にして外部アカウントをブロックし、代わりに B2B コラボレーションを使うことをお勧めします。 B2B コラボレーションを使うと、次の機能を利用できます。
>- 条件付きアクセスを使って、B2B コラボレーション ユーザーに多要素認証を強制します
>- 受信アクセスと送信アクセスを管理します
>- B2B コラボレーション ユーザーの雇用状態が変更された場合、または資格情報が侵害された場合にセッションと資格情報を終了します
>- サインイン ログを使用して、B2B コラボレーション ユーザーに関する詳細を表示します

外部アプリへのアクセスはアカウントを外部アカウントに切り替えるのではなく、B2B コラボレーションがお勧めです。（アカウントを切り替えると問題発生時の対応も煩雑になりますしね。）

:::note info
イベントのお知らせです。
**Microsoft Security Forum 2024 Online ― AI 時代のセキュリティガバナンス**
日付・時間：2024年4月23日 (火) 12:00-17:30 公開後はOnDemand配信
参加：事前登録制（参加登録無料）お申込みは以下リンクよりお願い致します。
https://info.microsoft.com/JA-DAT-CATALOG-FY24-04Apr-23-MicrosoftSecurityForum2024OnlineTrackA-SREVM36119_Catalog-Display-Page.html

:::

:::note info
投稿内容は私個人の意見であり、所属企業・部門とは関係ありません。また、いかなる保証を与えるものでもありません
:::