Microsoft Entra ID の外部ユーザーで電話番号を使った多要素認証がどれくらい行われているかを確認する KQL クエリ例
はじめに
最近はテナント間同期の機能が一般公開されて、こちらの機能を利用したマルチ テナント構成のご相談が増えております。[1](ソース テナントもそちら側でのライセンスの要件があるので注意)
Microsoft Entra 外部 ID の課金モデルについては、月間アクティブユーザー(MAU)の課金となります。この課金モデルは 1 か月あたり最初の 50,000 人の MAU については無料となりますが、SMS / 電話ベースの多要素認証試行のたびに定額料金($0.03)[2]が請求されるようになります。
人数については 50,000 MAU を超える事はあまりないとは思いますし、どれくらいの数量になるか予想が比較的立てられやすいと思いますが、Microsoft Entra 外部 ID の課金モデルがまだ有効になっておらず、ゲスト ユーザーがいた際に、現状どの程度の SMS / 電話ベースの多要素認証が行われているか確認したいケースがあるかと思います。
SMS / 電話ベースの多要素認証のログ確認
Microsoft Entra ID のサインイン ログを使って確認をしていきます。今回は Microsoft Entra ID のサインログを Log Analytics に連携し、KQL クエリを実行し、直近30日間での外部ユーザーが SMS / 電話ベースの多要素認証が発生した件数を集計することとしました。Microsoft Entra ID のサインイン ログの Log Analytics への連携設定やクエリの実行などの操作方法は、公式のドキュメントを参照ください。
以下のクエリで今回取得したい件数を集計できるはずです。SigninLogs
| where TimeGenerated > ago(30d)
// HomeTenantId が AAD Tenant ID と一致していないのが外部ユーザー
//(Cross Tenant Sync 等ではユーザータイプが Guest にならないので、Guest を対象にするのは不適切)
| where HomeTenantId != AADTenantId
| where AuthenticationRequirement == "multiFactorAuthentication"
| extend AuthMethod=MfaDetail.authMethod
| where AuthMethod in ("Text message", "Phone call approval (Authentication phone)", "Phone call Approval", "Office Phone call Approval")
| summarize dcount(CorrelationId)
終わりに
Microsoft Entra 外部 ID での課金モデルの利用に際して、SMS / 電話ベースの多要素認証の件数がどの程度発生しているのか確認されたいと言うケースが有りましたので、上記のような確認方法について整理をしました。
ただし、SMS / 電話ベースの多要素認証については、最近では推奨されておりません。上述している通り、多要素認証の試行の度に課金されることもありますし、可能な限り Microsoft Authenticator などを使った、認証強度の高い他要素認証の要素を利用していくようにしていくのが推奨されております。
テナント間同期等を利用した Microsoft Entra ID のマルチテナント構成を考える場合に、参考にしていただければと思います。
-
ライセンスの課金ルールなどについて、厳密にはマイクロソフトの担当者に確認するようにしてください。 ↩︎
-
執筆時点のサイト掲載されている金額です。最新の情報は、公式サイトの情報を確認するようにしてください。https://azure.microsoft.com/ja-jp/pricing/details/active-directory-external-identities/ ↩︎
Discussion