NPS Extension for Azure MFAはEntra ID認証方法ポリシーを無視する?Citrix RADIUSでTOTPが許可外でも通る理由と対策

Citrix のログインを RADIUS + NPS Extension for Azure MFA で保護していると、Entra ID の「認証方法ポリシー」で TOTP を特定グループのみに許可したつもりでも、グループ外ユーザーが Microsoft Authenticator の確認コード(TOTP)で通ってしまうことがあります。本記事では、この挙動の理由を「どこで何が判定されているのか」という視点で分解し、短期対処と中長期の移行判断まで整理します。

目次

NPS Extension for Azure MFA と Entra ID 認証方法ポリシーは、そもそも“守備範囲”が違う

最初に押さえるべきは、Citrix + RADIUS + NPS Extension の構成は、SAML/OIDC のような「Entra ID がサインイン全体を主導する構成」ではない、という点です。RADIUS は古典的なプロトコルで、NPS は Windows Server 上の認証基盤、NPS Extension は「NPS が“二段階目”を実施できるようにするアダプター」です。結果として、Entra ID の認証方法ポリシー(Authentication Methods Policy)が提供する“きめ細かい許可/除外”と、NPS 経由の MFA で実際に行われる“二段階目の成立条件”が一致しないケースが発生します。

要素役割何を根拠に判定するか今回の論点との関係
Citrix(Gateway/ADC/StoreFront 等)ログイン受付・RADIUS クライアントRADIUS 応答(Accept/Reject)「TOTP を許可する/しない」を直接は判断しない
NPS(Windows Server)一次認証(AD DS)と RADIUS ポリシーAD の資格情報 + NPS ポリシー条件MFA を“必要にするか”は決められても、MFA 手段の細かい制御は難しい
NPS Extension for Azure MFA二次認証(MFA)をクラウドに委譲ユーザーに「登録済み」の強固な方法があるか等認証方法ポリシーのスコープを強制しない挙動が問題になる
Entra ID 認証方法ポリシーユーザー/グループごとに利用可能な方法を管理ポリシー(含める/除外/設定)“本来ここで制御したい”のに、NPS 経由にはそのまま効かないことがある

つまり今回の事象は、「ポリシーが壊れている」というより“評価している場所が違う”ことに起因します。以降は、その評価ポイントを、Microsoft の説明に沿って明確化します。

結論:NPS Extension は「認証方法ポリシー」のスコープを評価・強制しない

Microsoft Learn の Q&A(Citrix を RADIUS + NPS Extension で保護している、ほぼ同一の前提の質問)では、次の趣旨が明確に回答されています。

  • NPS Extension は現時点で Authentication Methods Policy のスコープ(含める/除外するグループ等)を強制しない
  • 参照しているのは、ユーザーに保存されている従来の MFA 登録情報(Security Info に相当する登録データ)
  • よって、ポリシー上は TOTP を許可していないユーザーでも、すでに TOTP が登録されていれば、その TOTP で通ってしまう
  • さらに、将来的に NPS Extension が認証方法ポリシーを尊重するという確定ロードマップは公開されていない

この回答が重要なのは、現場で起きている「グループ外ユーザーでも TOTP が通る」を、“仕様として説明できる形”に落とし込める点です。運用ドキュメントに残すなら、「NPS Extension は認証方法ポリシーではなく登録済み方法(Security Info)を根拠に二次認証を成立させる」という一文が核になります。

実際に何を見ているのか:NPS Extension がチェックするのは「登録済み MFA 方法」

NPS Extension の基本動作は、公式ドキュメント上も「既存の認証フローに電話/SMS/アプリなどの追加認証を足す」「RADIUS とクラウド MFA のアダプター」という位置づけで説明されています。MFA の二段目はクラウド側で実施されますが、そこで使われるのは“ユーザーに構成されている(登録されている)検証方法”です。

特に押さえておきたいのが、NPS Extension の最近の挙動です。Microsoft のドキュメントでは、一定バージョン以降の NPS Extension では、RADIUS 接続時に TOTP を優先する(TOTP に寄せる)動きが明記されています。

  • NPS は number matching をサポートしない
  • 一方で、最新の NPS Extension は Microsoft Authenticator の TOTP など、TOTP 方式をサポートする
  • そして「RADIUS 接続 + 一定バージョン以降」では、ユーザーに TOTP が登録されていれば TOTP でのサインインが促される

ここで重要なのは、“ユーザーが TOTP を登録しているか”が分岐条件になっている点です。認証方法ポリシーのスコープではなく、「登録済みかどうか」が前に出てきます。

なぜ「許可していないはずのユーザー」が TOTP を使えてしまうのか

現象だけを見ると混乱しがちですが、認証フローに沿って分解するとシンプルです。

ステップ処理の主体実際に起きていること“ポリシーが効かない”と見える理由
一次認証NPS(AD DS)ユーザー名/パスワードの妥当性確認ここでは MFA 手段の可否は判断しない
二次認証要求NPS Extensionクラウド MFA を呼び出して追加認証を要求認証方法ポリシーのスコープを参照しない
二次認証の成立クラウド MFAユーザーに紐づく登録済み方法(TOTP 等)で検証「登録済み」が残っている限り、グループ外でも成立しうる

Microsoft Learn Q&A の説明もこの筋道に沿っています。NPS Extension は Authentication Methods Policy を強制せず、ユーザーに登録されている強固な方法があるか(Registered)を確認してプロンプトを出す、という整理です。

つまり、現場で起きる“すり抜け”は次のどちらか、または複合です。

  • 過去に登録した TOTP が Security Info 側に残っている(ポリシーで後から絞っても、NPS 経由では参照されない)
  • 「どの TOTP を制御しているのか」が想定とズレている(Authenticator OTP と、第三者ソフトウェア OATH などの区分)

「Microsoft Authenticator の確認コード」と「ソフトウェア OATH トークン」は、設定上の区分がズレやすい

Entra ID の認証方法ポリシーは、いわゆる “OTP/TOTP” を 1 つの塊として扱うのではなく、種類ごとにコントロールが分かれています。Microsoft の移行ガイドでも、OATH トークンについて「Microsoft Authenticator の OTP」「第三者ソフトウェア」「ハードウェア」などが分割管理であることが説明されています。

ここで起きがちな誤解は、「ソフトウェア OATH トークンを特定グループだけ許可」にしたつもりでも、実際には“Microsoft Authenticator の OTP を別枠で許可していた”、あるいは“旧来登録(Security Info)を NPS が参照しているため、そもそもポリシーの許可/不許可と関係なく通る”という二重構造です。

社内向けに説明するときは、次のように言い換えると伝わりやすいです。

  • 認証方法ポリシーは「クラウドサインイン時に、そのユーザーに何を使わせるか」を管理するための仕組み
  • NPS Extension は「オンプレ RADIUS の二段目を成立させる」ために、ユーザーの“登録済み”情報を見にいく仕組み
  • このため、ポリシーを絞っても、登録が残っていると NPS 側では TOTP が使えてしまうことがある

切り分けチェックリスト:原因を最短で特定する

「グループ外ユーザーでも TOTP が使える」を調査するときは、闇雲にポリシーをいじるより、次の順で“事実確認”をすると収束が速いです。

確認ポイント見る場所分かること次のアクション
ユーザーに TOTP が登録されているかEntra 管理センターのユーザー認証方法/登録情報「登録済み」なら NPS 経由で通る余地が高い不要なら登録情報の棚卸・削除を検討
NPS Extension の挙動が TOTP 優先になっていないかNPS Extension のバージョン/設計条件により TOTP を促す仕様がある“想定したユーザー体験”を見直す(Approve/Deny 前提は危険)
認証方法ポリシーで何を制御しているつもりかAuthentication methods policyAuthenticator OTP と OATH の区分・対象グループ意図した方法のみ許可/除外を再設計
Conditional Access で制御できていると思い込んでいないかCA ポリシー設計NPS 経由は CA の評価対象になりにくい“NPS 側で制御”するか、“ネイティブ連携へ寄せる”

特に 4 行目は盲点になりやすいポイントです。Microsoft Learn Q&A でも「NPS Extension は Conditional Access ポリシーを見ない(相互作用しない)」旨が明示されています。NPS を通す時点で、CA の“場所/デバイス/リスク”などの文脈評価は期待しづらく、「NPS が二段階目をやったかどうか」だけが結果として扱われる、という整理になります。

短期の対処:RADIUS + NPS Extension を維持したまま、事故を減らす現実解

「すぐに SAML/OIDC へ移行できない」ことは珍しくありません。短期は、割り切りと運用統制で被害を抑えるのが現実的です。

登録情報(Security Info)を“棚卸して消す”という発想を持つ

NPS Extension が参照するのが認証方法ポリシーではなく登録情報である以上、「許可されていないのに登録が残っている」状態が最大のリスクです。運用としては次の 2 点がセットになります。

  • 許可対象外ユーザーの登録情報(TOTP 等)を棚卸し、不要なら削除する
  • 同時に、認証方法ポリシー側も整備し、対象外ユーザーが再登録できない状態を作る(ただし NPS 経由では強制材料になりにくい点は理解した上で)

“登録情報の棚卸”をやらないままポリシーだけ絞ると、「ポリシー上は許可していないのに使える」という矛盾が温存され、監査・説明コストが増えます。

「TOTP を禁止したい」よりも「どういう第二要素を標準にするか」を先に決める

RADIUS/NPS の世界では、SAML/OIDC のように “認証強度” を細かく揃えるのが難しくなります。さらに NPS Extension は、状況によって TOTP を促す仕様が記載されています。したがって、短期の落としどころは次のどちらかになりがちです。

  • TOTP を標準(推奨)として受け入れ、登録・配布・紛失時の再登録手順を固める
  • どうしても TOTP を使わせたくない事情があるなら、“NPS Extension で何ができて何ができないか”を前提に要件を調整する(例:RADIUS 経由では方法制御を諦め、利用者層や接続元の統制に寄せる)

どちらを選ぶにしても、「認証方法ポリシーで TOTP を絞れば RADIUS でも同じように絞れるはず」という期待を捨てるのが重要です。

“やれる制御”は NPS 側に寄る(例:誰に MFA を要求するか)

Microsoft Learn の回答でも「NPS Extension 経由で利用される認証方法の制御は Entra 側ではなく NPS 側」という趣旨が示されています。裏を返すと、RADIUS の世界で現実的にできるのは、次のようなネットワークポリシー/到達経路の設計です。

  • 特定の RADIUS クライアント(Citrix Gateway など)だけ MFA を必須にする
  • 管理者/特権ユーザーの接続経路と一般ユーザーの接続経路を分ける
  • 必要なら、MFA を要求する NPS と要求しない NPS を分ける(構成分離で制御)

“認証方法そのものの粒度”は難しくても、「誰が」「どこから」「どの経路で」は、RADIUS/NPS の得意領域として設計できます。

中長期の推奨:認証方法ポリシーや CA を活かすなら、Citrix を Entra ネイティブ連携へ寄せる

認証方法ポリシーで「グループ単位の許可/除外」「優先順位」「新しい認証(パスキー等)」まで活かしたい場合、RADIUS + NPS Extension は構造的に不利です。Microsoft Learn Q&A でも、NPS Extension が Conditional Access を見ない設計であることが明言されており、クラウド主導の統制に寄せるには限界が出ます。

そのため中長期では、Citrix 側を次のいずれか(または組み合わせ)に寄せる判断が現実的です。

  • Citrix と Entra ID を SAML で連携し、Entra 側で MFA・条件付きアクセス・認証方法の制御を完結させる
  • OIDC などのモダン認証に寄せる(Citrix の提供形態や要件による)
  • 「社外からのアクセスだけ厳格に」などの要件は、条件付きアクセスの設計に寄せて運用を単純化する
観点RADIUS + NPS ExtensionSAML/OIDC + 条件付きアクセス
認証方法ポリシー(グループスコープ)期待どおりに効かないことがある(登録情報ベース)Entra サインインの文脈で適用しやすい
Conditional Access「見ない」設計のため統制が難しい場所/デバイス/リスクなどの制御が可能
監査・説明“なぜ許可外で通るのか”の説明が必要になりがちポリシー=挙動になりやすく説明が簡単
移行コスト現状維持は容易設計・検証・切替のプロジェクトが必要

ポイントは、「今すぐ NPS を捨てる」ではなく、将来やりたい統制(方法制御/認証強度/リスクベース)に対して、RADIUS 方式がどこまで追随できるかを軸に意思決定することです。NPS Extension が認証方法ポリシーを尊重するようになる確定情報がない以上、“いつか改善される前提”で待つのはリスクになります。

社内ドキュメントにそのまま書ける要点

  • NPS Extension for Azure MFA は、Entra ID の Authentication Methods Policy(認証方法ポリシー)のスコープを現時点で強制しない。
  • NPS 経由の MFA で参照されるのは、ユーザーの登録済み MFA 方法(Security Info 相当)であり、登録が残っている限り TOTP が成立しうる。
  • そのため「認証方法ポリシーでグループ外を除外したのに TOTP が通る」は仕様として説明可能。
  • 認証方法ポリシー/Conditional Access による厳密な方法制御を実現したい場合は、Citrix 側を SAML/OIDC など Entra ネイティブ連携へ移行する検討が必要。

この要点を前提に、短期は「登録情報の棚卸と運用統制」、中長期は「モダン認証への寄せ」を計画すると、監査・障害対応・利用者体験のいずれも破綻しにくくなります。

よくある質問

認証方法ポリシーで TOTP を許可していないのに、Citrix(NPS)では使えてしまうのはバグ?

同様の事象に対し、Microsoft Learn の Q&A では「NPS Extension は認証方法ポリシーのスコープを強制せず、登録済みの方法(Security Info)を参照する」趣旨が回答されています。したがって、少なくとも現時点では“設計上起こりうる挙動”として整理するのが安全です。

「ユーザーの Security Info に登録がある限り通る」なら、ポリシーでの制御は無意味?

無意味ではありません。SAML/OIDC など Entra が主導するサインインでは、認証方法ポリシーでの制御が効く場面が増えます。また、再登録を抑止する目的でもポリシー整備は重要です。ただし RADIUS + NPS Extension という経路に限っては、挙動が一致しない前提で説明・運用する必要があります。

将来的に NPS Extension は認証方法ポリシーを尊重するようになる?

Microsoft Learn の Q&A では「確定したロードマップはない」趣旨が回答されています。よって、ロードマップ待ちを前提に設計するのではなく、必要な統制がある場合は SAML/OIDC + 条件付きアクセスへの寄せを中長期計画に含めるのが現実的です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次