Microsoft Entra MFA のネットワーク ポリシー サーバー (NPS) 拡張機能は、既存のサーバーを使用してクラウド ベースの MFA 機能を認証インフラストラクチャに追加します。 NPS 拡張機能を使用すると、新しいサーバーをインストール、構成、管理することなく、電話、テキスト メッセージ、またはモバイル アプリによる検証を既存の認証フローに追加できます。
NPS 拡張機能は、RADIUS とクラウド ベース Microsoft Entra MFA の間のアダプターとして機能し、認証の 2 番目の要素をフェデレーション ユーザーまたは同期済みユーザーに提供します。
NPS 拡張機能のしくみ
Microsoft Entra MFA の NPS 拡張機能を使用する場合、認証フローには次のコンポーネントが含まれます:
NAS/VPN サーバーは、 VPN クライアントから要求を受信し、NPS サーバーへの RADIUS 要求に変換します。
NPS サーバー は Active Directory Domain Services (AD DS) に接続して RADIUS 要求のプライマリ認証を実行し、成功すると、インストールされている拡張機能に要求を渡します。
NPS 拡張機能 は、セカンダリ認証の Microsoft Entra 多要素認証に対する要求をトリガーします。 応答を受信したら、MFA チャレンジが成功していた場合は、Azure STS が発行した MFA クレームを含むセキュリティ トークンを NPS サーバーに提供して認証要求を完了します。
注意
NPS では 番号の照合はサポートされていませんが、最新の NPS 拡張機能では、Microsoft Authenticator で使用できる TOTP などの時間ベースのワンタイム パスワード (TOTP) メソッドがサポートされています。 TOTP サインインは、代替の Approve/Deny エクスペリエンスよりも優れたセキュリティを提供します。
2023 年 5 月 8 日以降、すべてのユーザーに対して数値の一致が有効になっている場合、NPS 拡張機能バージョン 1.2.2216.1 以降との RADIUS 接続を実行するユーザーは、代わりに TOTP 方式でサインインするように求められます。 この動作を得るには、ユーザーは TOTP 認証方法を登録する必要があります。 TOTP メソッドが登録されていない場合、ユーザーは引き続き [承認/Deny] を表示します。
Microsoft Entra 多要素認証 は、Microsoft Entra ID と通信してユーザーの詳細を取得し、ユーザーに構成された検証方法を使用してセカンダリ認証を実行します。
次の図に、この認証要求フローの概要を示します。
RADIUS プロトコルの動作と NPS 拡張機能
RADIUS は UDP プロトコルであるため、送信側はパケット損失を想定し、応答を待機します。 一定の時間が経過すると、接続がタイムアウトする場合があります。その場合、送信側はパケットが送信先に届かなかったと想定してパケットを再送信します。 この記事の認証シナリオでは、VPN サーバーが要求を送信し、応答を待機します。 接続がタイムアウトした場合、VPN サーバーは要求を再度送信します。
NPS サーバーは、MFA 要求がまだ処理されている可能性があるため、接続がタイムアウトする前は、VPN サーバーの元の要求に応答できません。 ユーザーが MFA プロンプトに正常に応答しなかった可能性があります。そのため、Microsoft Entra MFA の NPS 拡張機能は、そのイベントが完了するのを待機しています。 この場合、NPS サーバーでは、追加の VPN サーバー要求が複製要求と識別されます。 NPS サーバーでは、これらの重複する VPN サーバー要求が破棄されます。
NPS サーバーのログを見ると、これらの追加の要求が破棄されている可能性があります。 この動作は、エンド ユーザーが 1 回の認証試行に対して複数の要求を取得できないようにするための仕様です。 NPS サーバーのイベント ログの破棄された要求は、NPS サーバーまたは Microsoft Entra MFA の NPS 拡張機能に問題があることを示すものではありません。
破棄される要求を最小限に抑えるには、VPN サーバーを少なくとも 60 秒のタイムアウトで構成することをお勧めします。 必要に応じて、またはイベント ログの破棄された要求を減らすために、VPN サーバーのタイムアウト値を 90 秒または 120 秒に増やすことができます。
この UDP プロトコルの動作により、NPS サーバーは、ユーザーが最初の要求に応答した後でも複製要求を受信し、別の MFA プロンプトを送信する可能性があります。 このタイミング条件を回避するために、Microsoft Entra MFA の NPS 拡張機能は、正常な応答が VPN サーバーに送信されてから最大 10 秒間、複製要求をフィルター処理して破棄し続けます。
この場合も、Microsoft Entra MFA プロンプトが正常に終了したにも関わらず、NPS サーバーのイベント ログには破棄された要求がある可能性があります。 これは予期される動作であり、NPS サーバーまたは Microsoft Entra MFA の NPS 拡張機能に問題があることを示すものではありません。
デプロイを計画する
NPS 拡張機能は、自動的に冗長性を処理するため、特別な構成は不要です。
Microsoft Entra MFA 対応の NPS サーバー を必要な数だけ作成できます。 複数のサーバーをインストールする場合、サーバーごとに異なるクライアント証明書を使用する必要があります。 サーバーごとに証明書を作成することは、各証明書を個別に更新でき、すべてのサーバー全体でのダウンタイムを心配しなくてもよいことを意味します。
VPN サーバーは認証要求をルーティングするため、新しい Microsoft Entra MFA 対応の NPS サーバーを認識する必要があります。
前提条件
NPS 拡張機能は、既存のインフラストラクチャで使用します。 開始する前に、以下の前提条件を確認してください。
ライセンス
Microsoft Entra 多要素認証の NPS 拡張機能は、 Microsoft Entra 多要素認証 (Microsoft Entra ID P1 および Premium P2 または Enterprise Mobility + Security に含まれる) のライセンスをお持ちのお客様が利用できます。 Microsoft Entra MFA の従量課金ベースのライセンス (ユーザーごとのライセンス、認証ごとのライセンスなど) は、NPS 拡張機能に対応していません。
ソフトウェア
Windows Server 2012 以降。 Windows Server 2012 はサポート終了に達しました。
Microsoft Graph PowerShell モジュールには、.NET Framework 4.7.2 以降が必要です。
PowerShell バージョン 5.1 以降。 PowerShell のバージョンを確認するには、次のコマンドを実行します。
PS C:\> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 5 1 16232 1000
ライブラリ
Visual Studio 2017 C++ 再頒布可能パッケージ (x64) は、NPS 拡張機能インストーラーによってインストールされます。
セットアップ プロセスの一環として実行する構成スクリプトによって、Microsoft Graph PowerShell もインストールされます (まだ存在しない場合)。 モジュールを事前にインストールする必要はありません。
ディレクトリ テナント ID を取得する
NPS 拡張機能の構成の一環として、管理者資格情報と Microsoft Entra テナントの ID を入力する必要があります。 テナント ID を取得するには、次の手順のようにします。
Microsoft Entra 管理センターにサインインします。
Entra ID>Overview>Properties に移動します。
ネットワークの要件
NPS サーバーは、TCP ポート 443 を使って次の URL と通信できる必要があります。
https://login.microsoftonline.com
https://login.microsoftonline.us (Azure Government)
https://login.chinacloudapi.cn (Microsoft Azure operated by 21Vianet)
https://credentials.azure.com
https://strongauthenticationservice.auth.microsoft.com
https://strongauthenticationservice.auth.microsoft.us (Azure Government)
https://strongauthenticationservice.auth.microsoft.cn (Microsoft Azure operated by 21Vianet)
https://adnotifications.windowsazure.com
https://adnotifications.windowsazure.us (Azure Government)
https://adnotifications.windowsazure.cn (Microsoft Azure operated by 21Vianet)
さらに、 提供された PowerShell スクリプトを使用してアダプターのセットアップを完了するには、次の URL への接続が必要です。
https://onegetcdn.azureedge.net
https://graph.microsoft.com
https://go.microsoft.com
https://provisioningapi.microsoftonline.com
https://www.powershellgallery.com
https://aadcdn.msauth.net
https://aadcdn.msftauthimages.net
次の表では、NPS 拡張機能に必要なポートとプロトコルについて説明します。 TCP 443 (受信および送信) は、NPS 拡張機能サーバーから Entra ID に必要な唯一のポートです。 アクセス ポイントと NPS 拡張サーバーの間には RADIUS ポートが必要です。
プロトコル | 港 / ポート | 説明 |
---|---|---|
HTTPS | 443 | Entra ID に対するユーザー認証を有効にします (拡張機能をインストールするときに必要) |
UDP(ユーザー・データグラム・プロトコル) | 1812 | NPS による RADIUS 認証の一般的なポート |
UDP(ユーザー・データグラム・プロトコル) | 1645 | NPS による RADIUS 認証の一般的でないポート |
UDP(ユーザー・データグラム・プロトコル) | 1813 | NPS による RADIUS アカウンティングの一般的なポート |
UDP(ユーザー・データグラム・プロトコル) | 1646 | NPS による RADIUS アカウンティングの一般的でないポート |
環境を準備する
NPS 拡張機能をインストールする前に、認証トラフィックを処理するように環境を準備してください。
ドメインに参加しているサーバーで NPS 役割を有効にする
NPS サーバーは、Microsoft Entra ID に接続し、MFA 要求を認証します。 この役割に対して 1 台のサーバーを選択します。 NPS 拡張機能は RADIUS でないすべての要求に対してエラーをスローするため、他のサービスからの要求を処理しないサーバーを選択することをお勧めします。 NPS サーバーを、環境のプライマリおよびセカンダリ認証サーバーとしてセットアップする必要があります。 別のサーバーに RADIUS 要求をプロキシすることはできません。
- サーバーで、 サーバー マネージャーを開きます。 [クイック スタート] メニューから [役割と機能の追加ウィザード] を選択します。
- インストールの種類として、[ ロールベース] または [機能ベースのインストール] を選択します。
- ネットワーク ポリシーと Access Services サーバーの役割を選択します。 ウィンドウがポップアップし、この役割を実行するために必要な追加機能が通知される場合があります。
- [確認] ページまでウィザードを続行します。 準備ができたら、[ インストール] を選択します。
NPS サーバーの役割のインストールには数分かかる場合があります。 完了したら次のセクションに進み、VPN ソリューションからの受信 RADIUS 要求を処理するようにこのサーバーを構成します。
NPS サーバーと通信するように VPN ソリューションを構成する
使用する VPN ソリューションに応じて、RADIUS 認証ポリシーを構成する手順は異なります。 RADIUS NPS サーバーをポイントするように VPN ポリシーを構成します。
クラウドにドメイン ユーザーを同期する
この手順は、テナントで既に完了している可能性がありますが、Microsoft Entra Connect が最近データベースを同期させたことを再確認することをお勧めします。
- Microsoft Entra 管理センターにハイブリッド ID 管理者としてサインインします。
- Entra ID>Entra Connect に移動します。
- 同期の状態が [有効] で、最後の同期が 1 時間以内であることを確認します。
新しい同期のラウンドを開始する必要がある場合は、「 Microsoft Entra Connect Sync: Scheduler」を参照してください。
ユーザーが使用できる認証方法を決定する
NPS 拡張機能のデプロイで使用できる認証方法に影響する 2 つの要素があります。
RADIUS クライアント (VPN、Netscaler サーバーなど) と NPS サーバー間で使用されるパスワードの暗号化アルゴリズム。
- PAP は、クラウドでの Microsoft Entra 多要素認証のすべての認証方法 (電話、一方向テキスト メッセージ、モバイル アプリ通知、OATH ハードウェア トークン、モバイル アプリ検証コード) をサポートしています。
- CHAPV2 と EAP は、電話呼び出しとモバイル アプリ通知をサポートします。
クライアント アプリケーション (VPN、Netscaler サーバーなど) が処理できる入力方式。 たとえば、VPN クライアントに、ユーザーがテキストまたはモバイル アプリから確認コードを入力できるようにするなんらかの手段があるかどうか。
Azure では 、サポートされていない認証方法を無効 にできます。
注意
使用されている認証プロトコル (PAP、CHAP、または EAP) に関係なく、MFA メソッドがテキストベース (SMS、モバイル アプリ確認コード、または OATH ハードウェア トークン) であり、ユーザーが VPN クライアントの UI 入力フィールドにコードまたはテキストを入力する必要がある場合は、認証が成功する可能性があります。 ただし、 ネットワーク アクセス ポリシーで構成されている RADIUS 属性は、RADIUS クライアント (VPN ゲートウェイなど、ネットワーク アクセス デバイス) に転送 されません 。 その結果、VPN クライアントが持つアクセス権は、必要以上に多くなったり、少なくなったり、なくなったりします。
回避策として、 CrpUsernameStuffing スクリプトを 実行して、ネットワーク アクセス ポリシーで構成されている RADIUS 属性を転送し、ユーザーの認証方法で SMS、Microsoft Authenticator パスコード、ハードウェア FOB などの One-Time パスコード (OTP) の使用が必要な場合に MFA を許可できます。
ユーザーを MFA に登録する
NPS 拡張機能を展開して使用する前に、Microsoft Entra MFA を実行する必要があるユーザーを MFA に登録する必要があります。 また、拡張機能をデプロイ時にテストするには、Microsoft Entra MFA に対して完全に登録されている少なくとも 1 つのテスト アカウントが必要です。
テスト アカウントを作成して構成する必要がある場合は、次の手順を使用します。
- テスト アカウントで https://aka.ms/mfasetup にサインインします。
- 表示されたメッセージに従って、確認方法を設定します。
- 少なくとも認証ポリシー管理者として Microsoft Entra 管理センターにサインインします。
- Entra ID>Multifactor 認証に移動し、テスト アカウントを有効にします。
重要
ユーザーが Microsoft Entra MFA に正常に登録されていることを確認します。 ユーザーが以前にセルフサービス パスワード リセット (SSPR) にのみ登録している場合は、自分のアカウントに対して StrongAuthenticationMethods が有効になります。 ユーザーが SSPR にのみ登録されている場合でも、 StrongAuthenticationMethods が構成されている場合は、Microsoft Entra 多要素認証が適用されます。
SSPR と Microsoft Entra MFA を同時に構成する、統合されたセキュリティ登録を有効にすることができます。 詳細については、「 Microsoft Entra ID で統合されたセキュリティ情報の登録を有効にする」を参照してください。
ユーザーが以前に SSPR のみを有効にしていた場合は、 認証方法を再登録するように強制 することもできます。
ユーザー名とパスワードを使用して NPS サーバーに接続するユーザーは、MFA プロンプトを完了する必要があります。
NPS 拡張機能のインストール
重要
VPN アクセス ポイントとは異なるサーバーに NPS 拡張機能をインストールします。
Microsoft Entra MFA 用の NPS 拡張機能をダウンロードしてインストールする
NPS 拡張機能をダウンロードしてインストールするには、次の手順を実行します。
- Microsoft ダウンロード センターから NPS 拡張機能をダウンロードします。
- 構成するネットワーク ポリシー サーバーにバイナリをコピーします。
- setup.exe 実行し、インストール手順に従います。 エラーが発生した場合は、 前提条件セクションのライブラリ が正常にインストールされていることを確認してください。
NPS 拡張機能のアップグレード
既存の NPS 拡張機能のインストールを後からアップグレードする場合は、基になるサーバーの再起動を回避するために、次の手順を行います。
- 既存のバージョンをアンインストールする。
- 新しいインストーラーを実行する。
- ネットワーク ポリシー サーバー (IAS) サービスを再起動します。
PowerShell スクリプトの実行
インストーラーによって、C:\Program Files\Microsoft\AzureMfa\Config
(C:\
はインストール先のドライブ) に PowerShell スクリプトが作成されます。 この PowerShell スクリプトは、実行されるたびに次のアクションを実行します。
- 自己署名証明書を作成する。
- Microsoft Entra ID のサービス プリンシパルに証明書の公開キーを関連付けます。
- ローカル コンピューターの証明書ストアに証明書を格納する。
- ネットワーク ユーザーに証明書の秘密キーへのアクセスを許可する。
- NPS サービスを再起動する。
(PowerShell スクリプトで生成される自己署名証明書ではなく) 独自の証明書を使用する場合を除き、PowerShell スクリプトを実行して NPS 拡張機能のインストールを完了します。 複数のサーバーに拡張機能をインストールする場合は、それぞれのサーバーに独自の証明書が必要です。
負荷分散機能または冗長性を提供するには、必要に応じて、追加の NPS サーバーで次の手順を繰り返します。
管理者として Windows PowerShell プロンプトを開きます。
インストーラーによって PowerShell スクリプトが作成されたディレクトリに移動します。
cd "C:\Program Files\Microsoft\AzureMfa\Config"
インストーラーによって作成された PowerShell スクリプトを実行します。
PowerShell を正常に接続してパッケージをダウンロードできるようにするには、まず TLS 1.2 を有効にする必要がある可能性があります。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
重要
21Vianet クラウドが運用する米国政府機関向け Azure または Azure を使用しているお客様の場合は、最初に AzureMfaNpsExtnConfigSetup.ps1 スクリプトを編集して、必要なクラウドの Environment パラメーターを含めます。 たとえば、 -Environment USGov または -Environment China を指定します。 環境オプション: USGov、USGovDoD、ドイツ、中国、グローバル。 例: Connect-MgGraph -Scopes Application.ReadWrite.All -Environment USGov -NoWelcome -Verbose -ErrorAction Stop。
.\AzureMfaNpsExtnConfigSetup.ps1
メッセージを表示したら、Microsoft Entra ID にサインインします。 この機能を管理するには、 全体管理者 が必要です。
PowerShell によって、テナント ID の入力が求められます。 前提条件セクションでコピーした テナント ID GUID を使用します。
スクリプトが終了すると、成功メッセージが表示されます。
以前のコンピューター証明書が期限切れになり、新しい証明書が生成された場合は、期限切れの証明書をすべて削除する必要があります。 期限切れの証明書があると、NPS 拡張機能の起動で問題が生じる可能性があります。
注意
PowerShell スクリプトで証明書を生成する代わりに独自の証明書を使用する場合は、クライアント認証の目的が含まれていることと、秘密キーにユーザー NETWORK SERVICE に対する READ アクセス許可が付与されていることを確認します。
バージョン 1.2.2893.1 以降を使用する場合は、証明書の拇印を使用して証明書を識別できます。 レジストリ設定のフィールドにHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa\CLIENT_CERT_IDENTIFIERをハッシュ値として設定します。 一部の証明書のサブジェクト名の参照に問題があります。 拇印を使用すると、この問題が回避されます。
バージョン 1.2.2677.2 以前を使用する場合、証明書は NPS の名前付け規則に従う必要があり、サブジェクト名は CN=<TenantID>,OU=Microsoft NPS 拡張機能である必要があります。
Microsoft Azure Government または 21Vianet によって運営される Microsoft Azure の場合の追加手順
Azure Government クラウドまたは 21Vianet によって運営される Azure クラウドを使用しているお客様の場合は、各 NPS サーバーで次の追加の構成手順を実行する必要があります。
重要
これらのレジストリ設定の構成は、Azure Government または 21Vianet によって運営される Azure を利用している場合のみ行ってください。
21Vianet のお客様が運用する Azure Government または Azure の場合は、NPS サーバーで レジストリ エディター を開きます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa
に移動します。Azure Government のお客様の場合は、次のキー値を設定します。
レジストリ キー 値 AZURE_MFA_HOSTNAME strongauthenticationservice.auth.microsoft.us AZURE_MFA_RESOURCE_HOSTNAME adnotifications.windowsazure.us STS_URL https://login.microsoftonline.us/ 21Vianet によって運営される Microsoft Azure のお客様の場合は、次のキー値を設定します。
レジストリ キー 値 AZURE_MFA_HOSTNAME strongauthenticationservice.auth.microsoft.cn AZURE_MFA_RESOURCE_HOSTNAME adnotifications.windowsazure.cn STS_URL https://login.chinacloudapi.cn/ 前の 2 つの手順を繰り返して、各 NPS サーバーのレジストリ キーの値を設定します。
NPS サーバーごとに NPS サービスを再起動します。
影響を最小限に抑えるには、各 NPS サーバーを 1 つずつ NLB ローテーションから外し、すべての接続がドレインされるのを待ちます。
証明書のロールオーバー
NPS 拡張機能のリリース 1.0.1.32 では、複数の証明書の読み取りがサポートされるようになりました。 この機能により、証明書の有効期限が切れる前のローリング アップデートが容易になります。 組織で以前のバージョンの NPS 拡張機能を実行している場合は、バージョン 1.0.1.32 以降にアップグレードします。
AzureMfaNpsExtnConfigSetup.ps1
スクリプトによって作成された証明書は、2 年間有効です。 証明書の有効期限を監視します。 NPS 拡張機能の証明書は、個人用のローカル コンピューター証明書ストアに配置され、インストール スクリプトに指定されたテナント ID に発行されます。
証明書の有効期限が近づいている場合は、置き換えるための新しい証明書を作成する必要があります。 このプロセスを完了するには、AzureMfaNpsExtnConfigSetup.ps1
を再度実行し、メッセージが表示されたら同じテナント ID を指定します。 このプロセスは、環境内の各 NPS サーバーで繰り返す必要があります。
NPS 拡張機能の構成
環境を準備し、必要なサーバーに NPS 拡張機能をインストールしたら、拡張機能を構成できます。
このセクションでは、NPS 拡張機能を正常にデプロイするために必要な設計上の考慮事項と提案を示します。
構成の制限
- Microsoft Entra MFA の NPS 拡張機能には、MFA サーバーからクラウドにユーザーと設定を移行するためのツールは含まれません。 このため、既存のデプロイではなく、新しいデプロイに拡張機能を使用することをお勧めします。 既存のデプロイで拡張機能を使用する場合、ユーザーはクラウドに MFA の詳細を設定するために、再度セキュリティ確認を実行する必要があります。
- NPS 拡張機能は、電話通話設定で構成されたカスタム電話通話をサポートしていません。 既定の通話言語 (EN-US) が使用されます。
- NPS 拡張機能は、オンプレミスの AD DS 環境の UPN を使用して Microsoft Entra MFA のユーザーを識別し、セカンダリ認証を行います。代替ログイン ID やカスタム AD DS フィールドなど、UPN 以外の識別子を使用するように NPS 拡張機能を構成することができます。 詳細については、 多要素認証用の NPS 拡張機能の詳細な構成オプションに関する記事を参照してください。
- すべての暗号化プロトコルで、すべての検証メソッドがサポートされるわけではありません。
- PAP では、電話、一方向のテキスト メッセージ、モバイル アプリ通知、モバイル アプリ検証コードがサポートされます
- CHAPV2 と EAP は、電話通話およびモバイルアプリ通知をサポートします。
MFA を必須とする RADIUS クライアントの制御
NPS 拡張機能を使用して RADIUS クライアントに対して MFA を有効にすると、このクライアントに対するすべての認証で MFA の実行が必須になります。 一部の RADIUS クライアントに対してのみ MFA を有効にする場合は、2 つの NPS サーバーを構成し、そのうちの一方に拡張機能をインストールします。
MFA を必須とする RADIUS クライアントについては、拡張機能が構成された NPS サーバーに要求を送信するよう構成し、他の RADIUS クライアントについては、拡張機能が構成されていない NPS サーバーに要求を送信するよう構成します。
MFA に登録されていないユーザーのための準備
MFA に登録されていないユーザーがいる場合は、そのユーザーが認証しようとしたときの動作を決める必要があります。 この動作を制御するには、レジストリ パス HKLM\Software\Microsoft\AzureMFA でREQUIRE_USER_MATCH設定を使用します。 この設定の構成オプションは 1 つだけです。
鍵 | 値 | 既定値 |
---|---|---|
ユーザーの一致を要求する | TRUE または FALSE | 未設定 (TRUE に相当) |
この設定により、ユーザーが MFA に登録されていない場合の処理方法が決まります。 キーが存在しない、設定されていない、または TRUE に設定されていて、ユーザーが登録されていない場合、拡張機能は MFA チャレンジに失敗します。
キーが FALSE に設定されていて、ユーザーが登録されていない場合、MFA を実行せずに認証が続行されます。 ユーザーが MFA に登録されている場合、 REQUIRE_USER_MATCH が FALSE に設定されている場合でも、ユーザーは MFA で認証する必要があります。
ユーザーのオンボード中にこのキーを作成して FALSE に設定することもできます。Microsoft Entra 多要素認証に登録されていない場合もあります。 ただし、MFA に登録されていないユーザーのサインインが許可されることになるため、このキーは運用環境に移行する前に削除してください。
トラブルシューティング
NPS 拡張機能の正常性チェック スクリプト
Microsoft Entra 多要素認証 NPS 拡張機能の正常性チェック スクリプトは、NPS 拡張機能のトラブルシューティング時に基本的な正常性チェックを実行します。 スクリプトを実行し、使用可能なオプションのいずれかを選択します。
AzureMfaNpsExtnConfigSetup.ps1
スクリプトの実行中の "サービス プリンシパルが見つかりませんでした" というエラーを修正する方法を教えてください。
何らかの理由で "Azure Multi-Factor Auth Client" サービス プリンシパルがテナントに作成されていない場合は、次に示すように PowerShell を実行して手動で作成できます。
Connect-MgGraph -Scopes 'Application.ReadWrite.All'
New-MgServicePrincipal -AppId 00001111-aaaa-2222-bbbb-3333cccc4444 -DisplayName "Azure Multi-Factor Auth Client"
- Microsoft Entra 管理センターに、少なくともアプリケーション管理者としてサインインします。
- Entra ID>Enterprise アプリに移動し>"Azure Multi-factor Auth Client" を検索します。
- このアプリの [プロパティの確認] をクリックします。 サービス プリンシパルが有効か無効かを確認します。
- アプリケーション エントリ >Properties をクリックします。
- [ユーザーの サインインを有効にする ] オプションが [いいえ] に設定されている場合は、[ はい] に設定します。
AzureMfaNpsExtnConfigSetup.ps1
スクリプトをもう一度実行すると、サービス プリンシパルが見つかりませんでしたエラーが返されません。
クライアント証明書が正常にインストールされていることを確認するにはどうすればよいですか。
インストーラーによって作成された自己署名証明書を証明書ストアで探し、秘密キーにユーザー NETWORK SERVICE に "READ" アクセス許可が付与されていることを確認します。 証明書には、CN <tenantid> OU = Microsoft NPS 拡張機能のサブジェクト名があります
AzureMfaNpsExtnConfigSetup.ps1
スクリプトによって生成された自己署名証明書の有効期間は 2 年間です。 証明書がインストールされていることを確認するときは、証明書の有効期限が切れていないことも確認する必要があります。
クライアント証明書が Microsoft Entra ID のテナントに関連付けられていることを確認するにはどうすればよいですか?
PowerShell コマンド プロンプトを開き、次のコマンドを実行します。
Connect-MgGraph -Scopes 'Application.Read.All'
(Get-MgServicePrincipal -Filter "appid eq '00001111-aaaa-2222-bbbb-3333cccc4444'" -Property "KeyCredentials").KeyCredentials |
Format-List KeyId, DisplayName, StartDateTime, EndDateTime,
@{Name = "Key"; Expression = {[System.Convert]::ToBase64String($_.Key) }},
@{Name = "Thumbprint"; Expression = { [Convert]::ToBase64String($_.CustomKeyIdentifier)}}
このコマンドは、テナントと NPS 拡張機能のインスタンスを関連付けているすべての証明書を PowerShell セッションに出力します。 秘密キーを使用せずに Base-64 でエンコードされた X.509(.cer) ファイルとしてクライアント証明書をエクスポートして証明書を探し、PowerShell の一覧と比較します。 サーバーにインストールされている証明書のサムプリントとこれを比較します。 証明書のサムプリントが一致する必要があります。
StartDateTime タイムスタンプと EndDateTime タイムスタンプ (人間が判読できる形式) を使用すると、コマンドが複数の証明書を返した場合に明らかな誤ったフィットを除外できます。
サインインできないのはなぜですか。
パスワードの有効期限が切れていないことを確認します。 NPS 拡張機能では、サインイン ワークフローの中でパスワードを変更することはできません。 ご自分の組織の IT スタッフに連絡してサポートを依頼してください。
要求がセキュリティ トークン エラーで失敗するのはなぜですか。
このエラーにはいくつかの原因が考えられます。 次の手順に従ってトラブルシューティングを行います。
- NPS サーバーを再起動します。
- クライアント証明書が正常にインストールされていることを確認します。
- 証明書が Microsoft Entra ID のテナントに関連付けられていることを確認します。
- 拡張機能を実行しているサーバーから
https://login.microsoftonline.com/
にアクセスできることを確認します。
HTTP ログにユーザーが見つからないというエラーが記録され、認証が失敗するのはなぜですか。
AD Connect が実行していること、およびユーザーがオンプレミスの AD DS 環境と Microsoft Entra ID の両方に存在していることを確認します。
すべての認証が失敗し、ログに HTTP 接続エラーが記録されるのはなぜですか。
NPS 拡張機能を実行しているサーバーから https://adnotifications.windowsazure.com、https://strongauthenticationservice.auth.microsoft.com に到達可能であることを確認します。
有効な証明書があるにもかかわらず認証が機能しないのはなぜですか。
以前のコンピューター証明書が期限切れになり、新しい証明書が生成された場合は、期限切れの証明書をすべて削除します。 期限切れの証明書があると、NPS 拡張機能の起動で問題が生じる可能性があります。
有効な証明書があるかどうかを確認するには、MMC を使用してローカル コンピューター アカウントの証明書ストア を確認し、証明書の有効期限が過ぎされていないことを確認します。 新しく有効な証明書を生成するには、「 PowerShell インストーラー スクリプトを実行する」の手順を再実行します。
NPS サーバーのログに破棄された要求があるのはなぜですか。
タイムアウト値が小さすぎる場合、VPN サーバーは NPS サーバーに対して繰り返し要求を送信することがあります。 これらの複製要求は NPS サーバーによって検出され、破棄されます。 この動作は仕様どおりであり、NPS サーバーまたは Microsoft Entra MFA の NPS 拡張機能に問題があることを示すものではありません。
NPS サーバー ログに破棄されたパケットが表示される理由の詳細については、この記事の冒頭にある RADIUS プロトコルの動作と NPS 拡張機能 を参照してください。
Microsoft Authenticator の番号照合を NPS で機能させるには
NPS では数値の一致をサポートしませんが、最新の NPS 拡張機能では、Microsoft Authenticator で使用できる TOTP、その他のソフトウェア トークン、ハードウェア FOB など、時間ベースのワンタイム パスワード (TOTP) 方式をサポートします。 TOTP サインインは、代替の Approve/Deny エクスペリエンスよりも優れたセキュリティを提供します。 最新バージョンの NPS 拡張機能を実行していることを確認します。
2023 年 5 月 8 日以降、すべてのユーザーに対して数値の一致が有効になっている場合、NPS 拡張機能バージョン 1.2.2216.1 以降との RADIUS 接続を実行するユーザーは、代わりに TOTP 方式でサインインするように求められます。
この動作を得るには、ユーザーは TOTP 認証方法を登録する必要があります。 TOTP メソッドが登録されていない場合、ユーザーは引き続き [承認/Deny] を表示します。
2023 年 5 月 8 日以降、NPS 拡張機能バージョン 1.2.2216.1 のリリース前に、これより前のバージョンの NPS 拡張機能を実行する組織では、レジストリを変更することでユーザーに TOTP の入力を求めるようにすることができます。 詳細については、「 NPS 拡張機能」を参照してください。
TLS/SSL プロトコルと暗号スイートの管理
組織で求められない限り、以前の強度の低い暗号スイートを無効にするか、削除することをお勧めします。 このタスクを完了する方法については、AD FS の SSL/TLS プロトコルと暗号スイートの管理に関する記事を参照してください。
その他のトラブルシューティング
その他のトラブルシューティング ガイダンスと考えられる解決策については、 Microsoft Entra 多要素認証の NPS 拡張機能からのエラー メッセージの解決に関する記事を参照してください。
次のステップ
ログイン用の代替 ID を構成するか、多要素認証用の NPS 拡張機能の詳細構成オプションで 2 段階認証を実行すべきではない IP の例外リストを設定する
NPS 拡張機能を使用して リモート デスクトップ ゲートウェイ と VPN サーバー を統合する方法について説明します