Office 365への条件付きアクセス設定

皆さんこんにちは。国井です。
2020年5月28日にMicrosoft 365 Virtual Marathonが開催され、私も条件付きアクセスのセッションを受け持たせていただきました。

その中でOffice 365に対する条件付きアクセスを設定する場合は個別のサービスではなく、Office 365全体に対してアクセス制御を行うようにポリシーを作るべきだという話をしました。理由はOffice 365で提供するサービスには依存関係が存在するからで、有名なところではMicrosoft TeamsがバックグラウンドでExchange OnlineやSharePoint Onlineを使うなどの依存関係があります。

こうした依存関係はOffice 365のあらゆるところに張り巡らされていて、それを踏まえて条件付きアクセスを設定するのが難しいからです。だって、Microsoft FormsがExchange Onlineに依存したサービスだなんて想像もできないですよね?

なのでOffice 365の個別のサービスに対して条件付きアクセスを設定するときは、マイクロソフトのWebサイトで依存関係を解説しているドキュメントがあるので、事前に確認しておくことをお勧めします。

先ほど例でMicrosoft FormsがExchange Onlineに依存したサービスだという話をしましたが、条件付きアクセスでExchange Onlineをブロックするように設定すると、Microsoft Formsは使えなくなります。
※そういえばVirtual Marathonのセッションのとき、「Formsの条件付きアクセスポリシーを作るとExchangeにアクセスできなくなる」って言いましたが、正しくは「Exchangeの条件付きアクセスポリシーを作るとFormsにアクセスできなくなる」でしたね。

じゃあ、Exchange Onlineを条件付きアクセスポリシーでブロックするように設定したら、オンライン予約のサービスであるBookingsがブロックされるかというと、そうじゃなかったりするんですね(Bookingsって思いっきりExchange Onlineの予定表使ってるのに!)。
こんな感じで自分の勘を頼りにしていると痛い目を見させられたりするのです..
だから公式ドキュメントって大事ですね!

あ、あと、依存関係のドキュメントの中に「事前バインディング」と「遅延バインディング」というのがあります。これはいつの時点で条件付きアクセスによるアクセス制御が行われるか?ということを表しています。条件付きアクセスはAzure  ADからサービスにアクセスするためのトークン(アクセス トークン)が発行されるタイミングでチェックを行います。

条件付きアクセスポリシーでExchange Onlineへのアクセスをブロックしているケースで考えてみます。

Microsoft Teamsにアクセスするときは、TeamsにアクセスしたタイミングでExchange Onlineにアクセスするときのトークンをもらいに行きます。つまり、Teamsにアクセスしたタイミングで条件付きアクセスを使ってTeamsとExchangeの両方にアクセスできるかを確認します(これを事前バインディングと言います)。

それに対して、Office 365のポータルサイト (https://portal.office.com) にアクセスすると、Exchange Onlineのアイコンが表示されますが、実際にExchange Onlineにアクセスするまではトークンを取得しに行きません。つまり、Exchange Onlineへのアクセスをブロックするように条件付きアクセスが設定してあったとしても、Office 365のポータルサイトへのアクセスは問題なくできるのです(これを遅延バインディングと言います)。

■ ■ ■

最近ではSharePoint Onlineの設定とのコラボでファイルのダウンロードを禁止するポリシーを作ったりすることもできるので、個別のポリシーを禁止するのやめましょうとは言い切れない部分もあるのですが、少なくとも依存関係はきちんと理解しておく必要があります。