はじめに
この記事は、以下のサイト「Microsoft Entra テナント制限v2 で 外部テナントへのアクセスをブロックする」という記事の参照先になっています。
まず、以下のサイトを初めに参照ください。
テナント制限v2 の使用時に、「Microsoftエンドポイントのファイアウォール保護」を有効にすると、すべてのアプリが Microsoftエンドポイントへのアクセス時に ファイアウォールでブロックされてしまい、何もできません。
この記事では、WDACポリシー を使って Edgeなどの Microsoftアプリ だけを除外対象にして 利用できるようにする手順を紹介しています。
※除外している目的は、テナント制限v2 に対応しているアプリだけを使えるようにし、 それ以外のアプリは 引き続きブロック するようにして、テナント制限 の完全性を満たすことです。
(Chrome、Firefox、および PowerShell などの .NET アプリケーションをブロックする)
★前提として、テナント制限v2 で制御可能なのは Edgeや Officeアプリなどであり、他社製アプリは制御できません。
https://learn.microsoft.com/ja-jp/azure/active-directory/external-identities/tenant-restrictions-v2#block-chrome-firefox-and-net-applications-like-powershell
この記事を書くことになったのは、上記の公開情報が あまりにも分かりづらかったからです。
PowerShell を除外する説明はあっても、じゃあ Edge や Officeアプリがブロックされてしまうのは、どうやって解除すれば良いのか分からないからです。
設定の Before / After
ファイアウォール保護:無効
左:Edge 右:Chrome
テナント制限が、Edge でしか機能しない。Chrome では外部テナントにサインイン可
この状態だと、Edge は希望通りの動作なのですが、Chrome を使って外部アクセスできてしまうので、セキュリティ要件を満たせません。
ファイアウォール保護:有効、WDACポリシー適用前
左:Edge 右:Chrome
両ブラウザとも、Office365や Azure Portal などの Microsoftサービスを利用できない。
この状態だと、Microsoft 365 や、Azure Portal のほか、Microsoft Entra アカウントで認証するサービスが一切使えません。
ファイアウォール保護:有効、WDACポリシー適用後
左:Edge 右:Chrome
Edge は、Microsoftサービス を利用できるようになり テナント制限も有効
Chrome は、Microsoftサービス を利用できない。
この状態が 理想です。
では、次章から この構成を行うための手順を紹介していきます。
構成手順
1. ポリシーファイル (.csp) の作成
1-1. 事前準備(資材の入手)
1.任意の Windowws 10 マシンで 以下のサイトからダウンロードした WDAC ウィザードをインストールします。
(WDAC Policy Wizard)
https://webapp-wdac-wizard.azurewebsites.net/
2.同じマシンで、以下のサイトから RefreshPolicy ツールをダウンロードします。
(Refresh WDAC Policy)
https://www.microsoft.com/en-us/download/details.aspx?id=102925
1-2. WDAC タグ付けの構成
資材を入手した Windows 10 上で作業を続けます。
- WDAC 構成ウィザードを起動し、[Policy Creator] を選択します。
- [Base Policy] を選択します。
- [Default Windows Mode] を選択します。
- 既定値のまま「Next」
- 既定値のまま「Next」
- ポリシーの作成が完了。赤下線部のパスを 確認します。
- PowerShell を 管理者モードで開き、上記の画面で 赤下線部に記載されていたパスへ 移動します。(C:\Users<ユーザー名>\Documents)
- メモ帳で XML ファイルを開きます。
notepad .\WindowsWorks<日付>.xml
- "SigningScenrios" セクショングループ内の "SigningScenario" セクションのうち Value=131 が登録されているセクション全体を削除して、上書き保存します。
- 以下のコマンドを実行して「M365ResourceAccessEnforcement」というタグ名で タグ付けを行う。
Set-CIPolicyIdInfo -ResetPolicyID -FilePath .\WindowsWorks<日付>.xml -AppIdTaggingPolicy -AppIdTaggingKey "M365ResourceAccessEnforcement" -AppIdTaggingValue "True"
- 出力結果として、緑下線部のように 新しいポリシーID が表示されるので、コピーしてください。
PolicyID = {ポリシーID}
1-3. バイナリファイルへの変換 (xml → cip)
- 以下のコマンドを実行して XML のポリシーファイルをバイナリファイルに変換します。
Convertfrom-CIPolicy .\WindowsWorks<日付>.xml ".\{ポリシーID}.cip"
※控えたポリシーID を利用
- dirコマンドで バイナリ変換されたファイルがあることを確認します。
2. ローカル PC へ WDAC ポリシーの適用
2.事前にダウンロードした RefreshPolicy ツールを実行する
& '.\RefreshPolicy(AMD64).exe'
別の端末に cipファイルを コピーした場合は、 RefreshPolicy ツール をインストールして 上記と同じコマンドを実行することで、ポリシーを その端末へ適用できます。
3. Microsoftエンドポイントのファイアウォール保護を有効にする
- ローカル PC で「グループポリシーの管理」ツールを開きます。
- 左ペインのメニューから、以下を辿って開きます。
[コンピューターの構成]
[ポリシー]
[管理用テンプレート]
[Windowsコンポーネント]
[テナント制限]
[クラウドポリシーの詳細]
3.「クラウドポリシーの詳細」を開いたら、下図の通りに入力します。
- 緑枠 = テナント制限v2 の テナント ID の情報から転記
- 青枠 = テナント制限v2 の ポリシー ID の情報から転記
- 「Microsoftエンドポイントのファイアウォール保護を有効にする」にチェックを入れる
4.gpupdate /force コマンドを実行します。
動作確認
以下の通り、Edge(左側)は Microsoft 365 にアクセスでき、Chrome(右側)は サインイン画面に入る事ができなくなった事が確認できます。
WDACポリシー を複数のデバイスへ展開するには
以下の公開情報を参考に、WDACポリシー (cipファイル) を端末に配布して 展開が可能です。
Intune で展開する(検証済み)
以下の記事で説明しています。
私の方でも、検証済みで おススメの方法です。
Intune 以外の方法は、私も未検証で、仕組みの紹介レベルです。ご注意ください。
ツールを導入して GPO で有効化する
展開する 全VM に WDACポリシー更新ツール をインストールして、コマンドでアクティブ化します。
ツールの展開は、アプリケーションの配布機能などを使う必要があります。
コマンドは、GPO を使って スクリプトを配布&実行させれば良さそうです。
これは、前章で ローカルで実行したことと、基本的には同じ手順です。ツールの配布が面倒ですが、この方法は 理解しやすいですし、手動で成功している方法なので、確実性が高そうです。
(Windows 11、Windows 10 バージョン 1903 以降、および Windows Server 2022 以降のポリシーの展開)
https://learn.microsoft.com/ja-jp/windows/security/application-security/application-control/windows-defender-application-control/deployment/deploy-wdac-policies-with-script#deploying-policies-for-windows-11-windows-10-version-1903-and-above-and-windows-server-2022-and-above
WMI スクリプトで展開する
WDAC ポリシーを GPO などで配りさえすれば、あとは スクリプトで有効化できそうです。
(スクリプトを使用して WDAC ポリシーをデプロイする -
- 他のすべてのバージョンの Windows および Windows Server のポリシーの展開)
https://learn.microsoft.com/ja-jp/windows/security/application-security/application-control/windows-defender-application-control/deployment/deploy-wdac-policies-with-script#deploying-policies-for-all-other-versions-of-windows-and-windows-server
GPO で展開する
GPOで展開する方法です。しかし「メモリ整合性」を理解していないといけなさそうです。トラブっても 解析が難しいと思います。
(Windows Defender アプリケーション制御 (WDAC) ポリシーの展開)
https://learn.microsoft.com/ja-jp/windows/security/application-security/application-control/windows-defender-application-control/deployment/wdac-deployment-guide
(グループ ポリシーを使用してアプリケーション制御ポリシー Windows Defender展開する)
https://learn.microsoft.com/ja-jp/windows/security/application-security/application-control/windows-defender-application-control/deployment/deploy-wdac-policies-using-group-policy