継続的アクセス評価(CAE)について

CAEの概要については、以下のページで説明しています。

本記事では、CAEがサポートされているクラウドアプリとリソースプロバイダなどについて深堀して説明します。

CAEがサポートされているクラウドアプリとリソースプロバイダ

https://learn.microsoft.com/ja-jp/entra/identity/conditional-access/concept-continuous-access-evaluation#conditional-access-policy-evaluation

基本的には、MS公式ページのこちらを確認いただくのが確実ですが、わかりにくいところがあるので補足します。

表の見方

①がリソースプロバイダです。具体的なデータの置き場をイメージしてください。

②がクライアントアプリです。①にアクセスするためのアプリのことであり、Webアプリ、デスクトップアプリ、スマホアプリがあります。

クライアントアプリが、Outlook系のパターン

Outlook系アプリ → SPO にアクセスするケースって、どんなケース?と思われるかと思います。

いくつかシナリオがありますが、代表的な例としては以下のようなシナリオがあります。

  • ユーザがOutlookで受け取った添付ファイルを「このコンピュータに保存」ではなく、SPOのライブラリに保存するシナリオ
  • SPOに保存されているファイルをOutlookのメールに添付するシナリオ(以下図)

クライアントアプリが、Office系のパターン

ここでは、Officeは、Word、Excel、PowerPoint を意味しています。以下の通り、ドキュメントにも明記されています。

Office系アプリ → SPOについてですが、Officeで作成したファイルをSPOに保存するときのアクセスとなります。

Office系アプリ → Exchange Online は以下のようなシナリオがあります。

  • Word から Copilot を使用して ExO に保存されたデータを参照するケース
  • PowerPoint の [最近使ったアイテム] や [自分と共有] からメールに添付されたドキュメントを直接参照するようなケース(以下)

クライアントアプリが、One Drive 系のパターン

OneDrive系のクライアントアプリからの接続先として、OneDrive for Businessがないことに違和感を持たれる方もいるかもしれませんが、SharePoint Onlineに、OneDrive for Businessが包含されていると理解ください。OneDrive for Businessは裏側でSPOが利用されています(OneDrive for Businessは、内部的にはSPOのサイトコレクション(ユーザ専用の個人サイト)として提供されています)

クライアントアプリが、Teams 系のパターン

Teams系アプリ → Exchange Onlineですが、Teams系アプリが、Exchange Onlineの予定表へアクセスするようなケースやTeams会議を開催する際のメール送信するケースとなります。

条件付きアクセスポリシー設定における「場所ポリシーを厳密に適用する (プレビュー) 」について

条件付きアクセスポリシーの設定において、「特定のIPアドレスからのアクセス以外はブロック」という設定があるとします。

その場合、CAEがサポートされているシナリオであれば、「許可されているIPアドレスで認証クリア」後に、「許可されていないIPアドレスへ移動しリソースへアクセス」した場合、ブロックされるはずです。

しかしながら、これがブロックされないシナリオが存在します。

たとえば、Entra IDへのアクセスは、許可されているIPアドレスを利用し、リソースへのアクセスは許可されていないIPアドレスを利用するようなケースです(セキュリティ的な理由により、Entra IDへのアクセスだけはクラウドプロキシ経由にするようなケースです

このシナリオにおいて、Entra IDからトークンを受領し、そのトークンを利用し、リソースへアクセスする際、CAEは同一の場所からのアクセスだと判断し、リソースへのアクセスをブロックしません(CAEの理屈からすれば、ブロックされるはずだが、例外的にブロックされないシナリオがあるということです)。

この通信を、ブロックさせたい場合に、条件付きアクセスポリシーにおいて「場所ポリシーを厳密に適用する (プレビュー) 」を有効にします(例外を作らず、許可されていないIPアドレスからのリソースへのアクセスを確実にブロックしたい場合に、この機能を使います)

(公開情報)

https://learn.microsoft.com/ja-jp/entra/identity/conditional-access/concept-continuous-access-evaluation#exception-for-ip-address-variations-and-how-to-turn-off-the-exception

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

上記の手順 8 で、Microsoft Entra が条件を再評価すると、Microsoft Entra によって検出された新しい場所が許可される IP 範囲外であるため、アクセスは拒否されます。 これが常に当てはまるわけではありません。 一部の 複雑なネットワーク トポロジが原因で、リソース プロバイダーが受信したアクセス要求が許可されていない IP アドレスから到着した後であっても、認証要求は許可されたエグレス IP アドレスから到着する可能性があります。 これらの条件下で、Microsoft Entra は、クライアントが引き続き許可される場所に存在し、アクセスを許可される必要があると解釈します。 そのため、Microsoft Entra は 1 時間のトークンを発行し、トークンの有効期限が切れるまでリソースでの IP アドレス チェックが中断されます。 Microsoft Entra は引き続き IP アドレス チェックを適用します。

条件付きアクセスポリシーを変更してから、CAEに反映されるまでのタイムラグについて

CAEに対応しているリソースプロバイダは、ユーザからアクセスがあるたびに、条件付きアクセスポリシーの情報を参照するためにEntra IDへアクセスしている訳ではありません。Entra IDの条件付きアクセスポリシーが、定期的にリソースプロバイダに同期され、リソースプロバイダはその情報を参照しています。

参考 : ユーザー状態変更のフロー
/////一部抜粋/////

6.リソース プロバイダーは、トークンの有効性を評価し、Microsoft Entra から同期された場所のポリシーを確認します。
/////一部抜粋/////

では、Entra ID側で条件付きアクセスポリシーが変更された場合、CAEに対応しているリソースプロバイダ側に変更情報が同期されるまで、どの程度タイムラグがあるのでしょうか。

結論として、ポリシーの変更が反映されるまでには最大 1 日を要する可能性があります。。
なお、一部シナリオにおいては、遅延が 2 時間に短縮される可能性もありますが、基本的には変更の反映までに最大 1 日を要する可能性があると認識しておくのがよいと思います。

参考 : グループ メンバーシップとポリシー更新が有効になる時間
/////一部抜粋/////
管条件付きアクセスポリシーとグループ メンバーシップに管理者が加えた変更内容は、有効になるまでに最大 1 日かかることがあります。 この遅延は、Microsoft Entra とリソース プロバイダー (Exchange Online や SharePoint Online など) との間のレプリケーションによるものです。 ポリシーの更新に対して一部の最適化が行われ、遅延が 2 時間に短縮されます。 ただし、まだすべてのシナリオに対応しているわけではありません。

条件付きアクセス ポリシーまたはグループ メンバーシップの変更内容をすぐに特定のユーザーに適用する必要がある場合は、2 つのオプションがあります。
•       revoke-mgusersign PowerShell コマンドを実行して、指定したユーザーのすべての更新トークンを取り消します。
•       ユーザー プロファイル ページで “セッションの取り消し" を選択してユーザーのセッションを取り消し、更新したポリシーが直ちに適用されるようにします。
/////一部抜粋/////

アクセストークンの有効期限について

「CAE セッションでは、トークンの有効期間は最大 28 時間まで延長されます」と以下の記事に記載されています。 詳細について追加で確認をしてみました。

https://learn.microsoft.com/ja-jp/entra/identity/conditional-access/concept-continuous-access-evaluation#conditional-access-policy-evaluation

継続的アクセス評価 (CAE) に対応しているリソース (SharePoint Online、Exchange Online、Teams サービス、Microsoft Graph) に対してアクセス トークンを要求している状況であり、かつ、クライアント アプリが CAE に対応している場合のみ、アクセス トークンの有効期限が最大で 28 時間になります。

サードパーティのクライアントアプリでもCAEは成立するのか

ここでいう「クライアントアプリ」については、Outlook等のMS製品に限らず、サードパーティのクライアントアプリも含まれます。

ただし、サードパーティのクラウドアプリで CAE へ対応するには、実装が追加で必要であり、MSサポート曰く、ほとんど存在しないとのことでした。

ちなみに、サードパーティのクライアントアプリでCAEに対応させる方法は以下の記事が参考になります。

(公開情報)継続的アクセス評価が有効になった API をアプリケーションで使用する方法

https://learn.microsoft.com/ja-jp/entra/identity-platform/app-resilience-continuous-access-evaluation?tabs=dotnet

少しまとめとなりますが、サードパーティのクライアントアプリ利用時にCAE が成立する前提としては、サードパーティのクライアントアプリが自体がCAE に対応しており、かつそのサードパーティのクライアントアプリが CAE に対応するリソース (SharePoint Online、Exchange Online、Teams サービス、Microsoft Graph) に対するアクセス トークンを要求する場合のみ、ということになります。

CAEが成立しないシナリオにおけるアクセストークンの有効時間

 60 分から 90 分 (平均 75 分) の範囲のランダムな値が割り当てられます(MSサポート情報)