HONDA LABO

本田研究室

Office365のテナント制限をしてみる

会社の環境からは、会社以外のOffice365テナントにアクセスさせたくないというケースがあると思います。例えば、会社から個人用のテナントにアクセス出来てしまうことによる情報漏洩を気にするケース等です。

https://docs.microsoft.com/ja-jp/archive/blogs/office365-tech-japan/tenant-restrictions

この場合はテナント制限を行うことで要件を実現することが可能です。今回はこのテナント制限について書こうと思います。

 

テナント制限の仕組み

テナント制限の仕組みについては、以下のサイトが分かりやすいです。

自社テナント以外へのアクセス制御 - "テナントの制限" 機能 (Tenant Restrictions) | Microsoft Docs

プロキシなど、途中のネットワーク経路でヘッダーを挿入して、AzureADへ認証に行き、ヘッダーが存在する場合はそのテナント以外にはログインできないように制限するという仕組みです。

https://docs.microsoft.com/ja-jp/archive/blogs/office365-tech-japan/tenant-restrictions

 

テナント制御の難しいところ

テナント制御の難しいところとしては、仕組み上どうしてもヘッダー挿入が必要になるので、ネットワーク経路上にヘッダー挿入をする何か(プロキシサーバーやSASEなど)が必要になることです。認証の通信経路が、ヘッダー挿入しない経路となる場合には、テナント制限は効きません。テナント制限を強制したい場合には、SASEやVPNの強制などで、必ずヘッダー挿入をする経路を通す必要があります。

また、最近は取引先とのコミュニケーションのために、他のテナントにゲスト招待される場合があると思います。この場合は、テナント制御に引っかかってしまうので、テナント制限の許可対象に追加する必要があります(ここの運用の考慮が必要です)

その他、注意しないといけない点として、以下のサイトが勉強になりました。

テナント制限について | Japan Azure Identity Support Blog

 

テナント制限の挙動確認

テナント制限の挙動確認をしてみたいと思います。使うのは、Fiddlerというフリーソフトです。詳細はこちらが参照可能です。

  1. テナント制限を使用して SaaS アプリへのアクセスを管理する - Microsoft Entra | Microsoft Docs
  2. AVDでAzureADテナント制限を試す!

上記2.のくらう道さんのサイトでは、プロキシサーバを専用に立てていましたが、より簡単にするために、今回挙動を確認するクライアントOSのWindows11上にFiddlerをインストールして、インターネットオプションでローカルのプロキシを経由させるようにしました(とはいってもFiddlerをインストールしたら、勝手にインターネットオプションに追加されました)

Fiddlerインストール後、自動で上記が設定されていました

さて、検証にあたって、Fiddlerにする設定は、SSL複合の設定と、ヘッダー挿入の2つです。手順としては、くらう道さんのページの通りにするだけです(くらう道さん、いつも本当にありがとうございます!)

Fiddlerインストールの際に、Fiddlerのダウンロードページで、Fiddler Classicのほうをダウンロードすることに注意しましょう。インストールはポチポチでいけます。

https://www.telerik.com/fiddler

手順の中で、Fiddlerの[Rules]ー[Customize Rules]を編集して、テナントIDなどを追記する必要がありますが、テナントIDの見つけ方はこちら(Microsoft 365 テナント ID を見つける - OneDrive | Microsoft Docs)の通りです。

試しにFiddlerの[Rules]ー[Customize Rules]で、テナント名とIDを自分のテナントのものではなく適当なもので設定してアクセスしてみるとO365へのログインができません。

ちなみに、Azure Active Directoryー[概要]ー[その他の機能]ー[テナントの制限]を見ると、テナント制限によるアクセス拒否のログが記録されます。

また、テナント制限を行うと、個人用(https://login.live.com/ など)にもアクセス出来なくなります。

テナント制限が想定通り動いていることが確認できました。

お手軽なテナント制限?(個人用アカウントの利用禁止)

テナント制限で組織が許可したテナントや、個人用アカウントへのログインを禁止できることがわかりました。さて、次に考えたいのは、組織アカウントは別として、もっと簡単に個人用のアカウントの利用を制限する方法はないのか?ということです。

ぼくも個人用アカウントの認証(login.live.com)をブロックすれば良いので、login.live.comをURLフィルターで禁止すれば良いのでは?と思ったのですが、これはDocsに微妙な方法だというのが書いてありました。

一部の組織では、個人用アカウントの認証をブロックするために login.live.com をブロックして、これを解決しようとします。 これには、いくつかの欠点があります。

  1. login.live.com をブロックすると、B2B ゲストシナリオでの個人アカウントの使用がブロックされ、訪問者やコラボレーションに侵入する場合があります。
  2. 展開するには、オートパイロットで login.live.com を使用する必要があります。 login.live.com がブロックされると、Intune およびオートパイロットのシナリオは失敗するおそれがあります。
  3. デバイス ID を login.live.com サービスに依存する組織のテレメトリと Windows 更新プログラムは機能しなくなります。

参照:テナント制限を使用して SaaS アプリへのアクセスを管理する - Microsoft Entra | Microsoft Docs

Microsoftとしては代表的なものとしては上の3点があるけど、その他何があるかわからないから、URLフィルターではなくてテナント制限してくださいね、ということなんだと思います。