セキュリティの観点から、Microsoft/Office365テナントへのアクセスを自社テナントのみ
に制限する方法として「テナント制限」機能があります。
この機能は、許可されているテナント以外へのアクセスを禁止することで、
ユーザの個人アカウントや他社テナントへの接続を制限することが出来るものになります。
現時点で2パターンの方法があり、それぞれバージョン1/v1、バージョン2/v2と呼ばれており
今回はバージョン1の方法におけるポイントを記載したいと思います。
テナント制限(バージョン1、v1)におけるポイント
プロキシサーバを用意し、特定のURLに対してHTTPヘッダーの挿入を行いテナント制限を実現します。
挿入するHTTPヘッダーは「アクセスを許可するテナント」を記述しますが、
実際の動作も踏まえると下記のような3つのポイントがあります。
- アクセスを許可するテナントはカンマ区切りで複数記述可能
- 「Restrict-Access-To-Tenants」というヘッダーにアクセス許可するテナントを追記していきますが
example.com,example.co.jp,test.jp
という形で複数ドメインを記述可能です。
Microsoft/Office365に登録しているカスタムドメインも問題なく対応可能です。
- 「Restrict-Access-To-Tenants」というヘッダーにアクセス許可するテナントを追記していきますが
- テナント制限設定を判断するテナントはMicrosoft Entra IDのP1またはP2ライセンスが必須
- 「Restrict-Access-Context」というヘッダーに設定されたディレクトリ/テナントIDの
Microsoft Entra IDに対してテナント制限設定の確認を行います。
テスト環境などでP1/P2ではないMicrosoft Entra IDのディレクトリ/テナントIDを設定してしまうと
Restrict-Access-To-Tenantsを設定していたとしても無視されます。
- 「Restrict-Access-Context」というヘッダーに設定されたディレクトリ/テナントIDの
- 実際は「アクセス許可されたテナント以外へのサインインを禁止する」挙動になる
- アクセス許可されていないテナント側で、ドキュメントの共有リンク等が発行された場合は
直接URLアクセスでアクセス可能な場合があります。
これは、「あくまでサインインを禁止している機能」であるためこのようなことが発生します。
サインインを挟まないプロセスだと、アクセス許可していなくても
アクセス可能となるので、ユーザの操作ログ取得などの別の仕組みを検討する必要があります。
- アクセス許可されていないテナント側で、ドキュメントの共有リンク等が発行された場合は
以上の3点を踏まえて実際の導入、運用を検討していくのが良いと思われます。
参考情報
https://learn.microsoft.com/ja-jp/entra/identity/enterprise-apps/tenant-restrictions