使用 Azure 的網路原則伺服器延伸模組來整合 VPN 基礎結構與 Microsoft Entra 多重要素驗證
Azure 的網路原則伺服器 (NPS) 延伸模組可讓組織使用雲端式 Microsoft Entra 多重要素驗證 (可提供雙步驟驗證),來保護遠端驗證撥入使用者服務 (RADIUS) 用戶端驗證。
本文提供指示,引導您使用 Azure 的 NPS 擴充功能來整合 NPS 基礎結構與 MFA。 此程序可針對嘗試使用 VPN 連線到您網路的使用者提供安全的雙步驟驗證。
注意
雖然 NPS MFA 延伸模組支援限時的一次性密碼 (TOTP),但 Windows VPN 等特定 VPN 用戶端並不支援。 在 NPS 延伸模組中啟用 TOTP 之前,請先確定您使用的 VPN 用戶端支援以 TOTP 作為驗證方法。
網路原則與存取服務為組織提供執行下列作業的能力:
指派管理和控制網路要求的中央位置,以指定:
誰可以連線
一天當中允許連線的時間
連線的持續時間
用戶端連線必須使用的安全性層級
在每個 VPN 或遠端桌面閘道伺服器位於中央位置後,再為它們指定原則。 系統會使用 RADIUS 通訊協定來提供集中式的驗證、授權和計量 (AAA)。
建立並強制執行網路存取保護 (NAP) 用戶端健康原則,以判斷要讓裝置不受限制還是受限制地存取網路資源。
提供強制驗證和授權的方法,以供存取具有 802.1x 功能的無線存取點及乙太網路交換器。 如需詳細資訊,請參閱網路原則伺服器。
為了加強安全性並提供高等級的合規性,組織可以整合 NPS 與 Microsoft Entra 多重要素驗證,來確保使用雙步驟驗證的使用者能夠連線到 VPN 伺服器上的虛擬連接埠。 使用者若要獲得存取權,就必須提供其使用者名稱和密碼的組合以及使用者所掌握的其他資訊。 這項資訊必須是受信任且無法輕易複製的。 可以是行動電話號碼、有線電話號碼或行動裝置上的應用程式。
如果您的組織使用 VPN,且使用者已註冊 TOTP 代碼和 Authenticator 推播通知,則使用者會無法達成 MFA 挑戰,且遠端登入會失敗。 在此情況下,您可以設定 OVERRIDE_NUMBER_MATCHING_WITH_OTP = FALSE,以回復為使用 Authenticator 來推送「核准/拒絕」通知。
若要讓 NPS 延伸模組繼續為 VPN 使用者運作,您必須在 NPS 伺服器上建立此登錄機碼。 在 NPS 伺服器上,開啟登錄編輯程式。 瀏覽至:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa
建立下列字串/值配對:
名稱:OVERRIDE_NUMBER_MATCHING_WITH_OTP
Value = FALSE
在 Azure 的 NPS 擴充功能推出前,想要對整合式的 NPS 與 MFA 環境實作雙步驟驗證的客戶,必須在內部部署環境中另外設定及維護一部 MFA Server。 此類型的驗證由使用 RADIUS 的遠端桌面閘道和 Azure Multi-Factor Authentication Server 提供。
隨著 Azure 的 NPS 擴充功能推出,組織現在可以部署內部部署型 MFA 解決方案或雲端型 MFA 解決方案,以保護 RADIUS 用戶端驗證。
驗證流程
當使用者連線到 VPN 伺服器上的虛擬連接埠時,必須先使用各種通訊協定通過驗證。 通訊協定允許使用使用者名稱和密碼的組合及憑證式驗證方法。
除了驗證和確認身分識別外,使用者還必須擁有適當的撥入權限。 在簡單的實作中,可提供存取權的撥入權限是直接設定於 Active Directory 使用者物件上。
在簡單的實作中,每一部 VPN 伺服器都會根據每個本機 VPN 伺服器上所定義的原則來授與或拒絕存取權。
而在擴充性更高的較大型實作中,負責授與或拒絕 VPN 存取權的原則則集中在 RADIUS 伺服器上。 在這些情況下,VPN 伺服器會擔任存取伺服器 (RADIUS 用戶端),以將連線要求和帳戶訊息轉寄給 RADIUS 伺服器。 若要連線到 VPN 伺服器上的虛擬連接埠,使用者必須先通過驗證,並符合 RADIUS 伺服器上所集中定義的條件。
當 Azure 的 NPS 擴充功能與 NPS 整合時,即可提供成功的驗證流程,如下所示:
- VPN 伺服器收到來自 VPN 使用者的驗證要求,其中包含用來連線到某項資源 (例如,遠端桌面工作階段) 的使用者名稱和密碼。
- VPN 伺服器作為 RADIUS 用戶端,以將要求轉換為 RADIUS Access-Request 訊息,並將此訊息 (密碼會經過加密) 傳送至 NPS 擴充功能安裝所在的 RADIUS 伺服器。
- 使用者名稱和密碼組合在 Active Directory 中進行驗證。 如果使用者名稱或密碼不正確,RADIUS 伺服器會傳送 Access-Reject 訊息。
- 如果 NPS 連線要求與網路原則中所指定的所有條件 (例如,一天當中的時間或群組成員資格限制) 皆能符合,NPS 延伸模組就會觸發要求,以便使用 Microsoft Entra 多重要素驗證進行次要驗證。
- Microsoft Entra 多重要素驗證會與 Microsoft Entra ID 通訊、擷取使用者的詳細資料,並使用使用者所設定的方法執行次要驗證 (撥打行動電話、簡訊或行動應用程式)。
- MFA 挑戰成功後,Microsoft Entra 多重要素驗證會將結果告知 NPS 延伸模組。
- 當連線嘗試通過驗證並獲得授權後,擴充功能安裝所在的 NPS 就會傳送 RADIUS Access-Accept 訊息給 VPN 伺服器 (RADIUS 用戶端)。
- 使用者會獲得 VPN 伺服器上之虛擬連接埠的存取權,並建立加密的 VPN 通道。
必要條件
此節會詳述在整合 MFA 與 VPN 之前必須完成的先決條件。 開始之前,您必須先具備下列必要條件:
- VPN 基礎結構
- 網路原則與存取服務角色
- Microsoft Entra 多重要素驗證授權
- Windows Server 軟體
- 程式庫
- 已與內部部署 Active Directory 同步的 Microsoft Entra ID
- Microsoft Entra GUID 識別碼
VPN 基礎結構
本文假設您已有使用 Microsoft Windows Server 2016 的運作中 VPN 基礎結構,而且 VPN 伺服器目前尚未設定為將連線要求轉寄給 RADIUS 伺服器。 在本文中,您要將 VPN 基礎結構設定為使用中央 RADIUS 伺服器。
如果您沒有已在運作的 VPN 基礎結構,則可以按照眾多 VPN 設定教學課程 (可於 Microsoft 和第三方廠商的網站上找到) 所提供的指導方針快速建立 VPN 基礎結構。
網路原則與存取服務角色
網路原則與存取服務可提供 RADIUS 伺服器和用戶端功能。 本文假設您已在環境中的成員伺服器或網域控制站上安裝網路原則與存取服務角色。 在本指南中,您要設定 RADIUS 以進行 VPN 設定。 在伺服器「而非」VPN 伺服器上安裝網路原則與存取服務角色。
如需有關安裝網路原則與存取服務角色服務 Windows Server 2012 或更新版本的資訊,請參閱安裝 NAP 健康原則伺服器 \(英文\)。 Windows Server 2016 已淘汰 NAP。 如需 NPS 最佳做法的說明 (包括在網域控制站上安裝 NPS 的建議),請參閱 NPS 的最佳做法 \(英文\)。
Windows Server 軟體
NPS 擴充功能需要 Windows Server 2008 R2 SP1 或更新版本,並安裝網路原則與存取服務角色。 本指南中的所有步驟皆是使用 Windows Server 2016 來執行的。
程式庫
下列程式庫會自動連同 NPS 延伸模組一起安裝:
如果您還沒有 Microsoft Graph PowerShell 模組,系統會透過您在設定過程中執行的設定指令碼來加以安裝。 您不需要事先安裝 Graph PowerShell。
已與內部部署 Active Directory 同步的 Microsoft Entra ID
若要使用 NPS 延伸模組,內部部署使用者必須與 Microsoft Entra ID 保持同步並啟用 MFA。 本指南假設內部部署使用者已透過 Microsoft Entra Connect 與 Microsoft Entra ID 保持同步。 下面會提供為使用者啟用 MFA 的指示。
如需 Microsoft Entra Connect 的相關資訊,請參閱整合您的內部部署目錄與 Microsoft Entra ID (部分機器翻譯)。
Microsoft Entra GUID 識別碼
若要安裝 NPS 延伸模組,您必須知道 Microsoft Entra ID 的 GUID。 下一節會提供尋找 Microsoft Entra ID 之 GUID 的指示。
設定 RADIUS 的 VPN 連線
如果您已在成員伺服器上安裝 NPS 角色,則必須進行設定以驗證和授權提出 VPN 連線要求的 VPN 用戶端。
本節假設您已安裝網路原則與存取服務角色,但尚未將它設定用於您的基礎結構中。
注意
如果您已擁有運作中的 VPN 伺服器,且使用集中式的 RADIUS 伺服器來進行驗證,則可以略過本節。
在 Active Directory 中註冊伺服器
若要讓 NPS 伺服器在本案例中正常運作,您必須在 Active Directory 中加以註冊。
開啟 [伺服器管理員] 。
在 [伺服器管理員] 中,按一下 [工具],然後選取 [網路原則伺服器]。
在 [網路原則伺服器] 主控台中,以滑鼠右鍵按一下 [NPS (本機)],然後選取 [在 Active Directory 中註冊伺服器]。 選取 [確定] 兩次。
讓主控台保持開啟以供下一個程序使用。
使用精靈來設定 RADIUS 伺服器
您可以使用標準 (精靈式) 或進階的設定選項來設定 RADIUS 伺服器。 本節假設您使用精靈式的標準設定選項。
在 [網路原則伺服器] 主控台中,選取 [NPS (本機)]。
選取 [標準設定] 底下的 [撥號或 VPN 連線的 RADIUS 伺服器],然後選取 [設定 VPN 或撥號]。
在 [選取撥號或虛擬私人網路連線類型] 視窗上選取 [虛擬私人網路連線],然後選取 [下一步]。
在 [指定撥號或 VPN 伺服器] 視窗中選取 [新增]。
在 [新增 RADIUS 用戶端] 視窗中,提供好記的名稱,輸入可解析的 VPN 伺服器名稱或 IP 位址,然後輸入共用祕密。 請為此共用祕密使用較長且複雜的形式。 請記錄下來,因為下一節中將會用到。
選取確定,然後選取下一步。
在 [設定驗證方法] 視窗中,接受預設的選取項目「Microsoft 加密驗證第 2 版 (MS-CHAPv2)」 或選擇另一個選項,然後選取 [下一步]。
注意
如果您要設定可延伸的驗證通訊協定 (EAP),則必須使用 Microsoft Challenge-Handshake 驗證通訊協定 (CHAPv2) 或受保護的可延伸驗證通訊協定 (PEAP)。 其他 EAP 皆不受支援。
在 [指定使用者群組] 視窗中選取 [新增],然後選取適當的群組。 如果沒有群組,請保持空白選取狀態,以對所有使用者授與存取權。
選取 [下一步]。
在 [指定 IP 篩選器] 視窗中,選取 [下一步]。
在 [指定加密設定] 視窗中接受預設設定,然後選取 [下一步]。
在 [指定領域名稱] 視窗中讓名稱保持空白,接受預設設定,然後選取 [下一步]。
在 [完成新的撥號或虛擬私人網路連線和 RADIUS 用戶端] 視窗中,選取 [完成]。
確認 RADIUS 設定
本節會詳述您使用精靈所建立的設定。
在網路原則伺服器的 [NPS (本機)] 主控台中展開 [RADIUS 用戶端],然後選取 [RADIUS 用戶端]。
在詳細資料窗格中,以滑鼠右鍵按一下您所建立的 RADIUS 用戶端,然後選取 [屬性]。 RADIUS 用戶端 (VPN 伺服器) 的屬性應該類似如下所示:
選取 [取消]。
在網路原則伺服器的 [NPS (本機)] 主控台中展開 [原則],然後選取 [連線要求原則]。 即會顯示如下圖中的 VPN 連線原則:
在 [原則] 底下選取 [網路原則]。 您應該會看到類似下圖的虛擬私人網路 (VPN) 連線原則:
將 VPN 伺服器設定為使用 RADIUS 驗證
在本節中,您要將 VPN 伺服器設定為使用 RADIUS 驗證。 本節指示假設您已有運作中的 VPN 伺服器設定,但尚未將 VPN 伺服器設定為使用 RADIUS 驗證。 在設定 VPN 伺服器之後,確認您的設定是否如預期般運作。
注意
如果您已擁有運作中的 VPN 伺服器設定,且該設定使用 RADIUS 驗證,則可以略過本節。
設定驗證提供者
在 VPN 伺服器上,開啟 [伺服器管理員]。
在 [伺服器管理員] 中選取 [工具],然後選取 [路由及遠端存取]。
在 [路由及遠端存取] 視窗中,以滑鼠右鍵按一下 [<伺服器名稱> (本機)],然後選取 [屬性]。
在 [<伺服器名稱> (本機) 屬性] 對話方塊中,選取 [安全性] 索引標籤。
在 [安全性] 索引標籤的 [驗證提供者] 底下選取 [RADIUS 驗證],然後按選取 [設定]。
在 [RADIUS 驗證] 視窗中,選取 [新增]。
在 [新增 RADIUS 伺服器] 視窗中,執行下列動作:
在 [伺服器名稱] 方塊中輸入您在上一節所設定之 RADIUS 伺服器的名稱或 IP 位址。
在 [共用密碼] 中選取 [變更],然後輸入您稍早所建立並記錄下來的共用密碼。
在 [逾時 (秒)] 方塊中,輸入 60 的值。 為了將捨棄的要求降至最低,我們建議將 VPN 伺服器設定為使用至少 60 秒的逾時。 若有需要,或是要降低事件記錄中遭捨棄的要求數目,可以將 VPN 伺服器等候逾時的時間長度提高到 90 或 120 秒。
選取 [確定]。
測試 VPN 連線能力
在本節中,您要確認在您嘗試連線到 VPN 虛擬連接埠時,VPN 用戶端已通過 RADIUS 伺服器的驗證並獲得授權。 本節指示假設您使用 Windows 10 作為 VPN 用戶端。
注意
如果您已將 VPN 用戶端設定為連線到 VPN 伺服器並已儲存各項設定,您可以略過與設定和儲存 VPN 連線物件有關的步驟。
在 VPN 用戶端電腦上,選取 [開始] 按鈕,然後選取 [設定] 按鈕。
在 [Windows 設定] 視窗中,選取 [網路和網際網路]。
選取 [VPN]。
選取 [新增 VPN 連線]。
在 [新增 VPN 連線] 視窗的 [VPN 提供者] 方塊中選取 [Windows (內建)],接著視情況完成剩餘欄位,然後選取 [儲存]。
移至 [控制台],然後選取 [網路和共用中心]。
選取 [變更介面卡設定]。
以滑鼠右鍵按一下 VPN 網路連線,然後選取 [屬性]。
在 VPN 的 [屬性] 視窗中,選取 [安全性] 索引標籤。
確定 [安全性] 索引標籤上只選取了 [Microsoft CHAP 第 2 版 (MS-CHAP v2)],然後選取 [確定]。
以滑鼠右鍵按一下 VPN 連線,然後選取 [連線]。
在 [設定] 視窗中,選取 [連線]。
在 RADIUS 伺服器的安全性記錄中以事件識別碼 6272 的形式顯示連線成功,如下所示:
針對 RADIUS 進行疑難排解
假設在您將 VPN 伺服器設定為使用集中式的 RADIUS 伺服器來進行驗證和授權之前,您的 VPN 設定就已在運作。 若設定未運作,問題很可能是 RADIUS 伺服器的設定不正確或使用了無效的使用者名稱或密碼所導致。 例如,如果您的使用者名稱中使用替代的 UPN 尾碼,登入嘗試可能會失敗。 使用相同的帳戶名稱可獲得最佳結果。
若要針對這些問題進行疑難排解,最好是從檢查 RADIUS 伺服器上的安全性事件記錄來著手。 若要節省花在搜尋事件的時間,您可以在事件檢視器中使用以角色為基礎的 [網路原則與存取伺服器] 自訂檢視,如下所示。 「事件識別碼 6273」指出 NPS 拒絕使用者存取的事件。
設定多重要素驗證
如需設定多重要素驗證之使用者的協助,請參閱規劃雲端式 Microsoft Entra 多重要素驗證部署和對我的帳戶進行雙步驟驗證設定文章
安裝和設定 NPS 擴充功能
本節會提供指示,以引導您將 VPN 設定為使用 MFA 讓用戶端向 VPN 伺服器進行驗證。
注意
REQUIRE_USER_MATCH 登錄機碼區分大小寫。 所有值都必須以大寫格式設定。
在安裝並設定了 NPS 擴充功能後,由此伺服器負責處理的所有 RADIUS 型用戶端驗證都必須使用 MFA。 如果所有的 VPN 使用者都未註冊 Microsoft Entra 多重要素驗證,您可以執行下列其中一項操作:
設定另一部 RADIUS 伺服器來驗證尚未設定為使用 MFA 的使用者。
建立登錄項目,來允許受到挑戰的使用者提供第二個驗證要素,但前提是他們必須已註冊 Microsoft Entra 多重要素驗證。
在 HKLM\SOFTWARE\Microsoft\AzureMfa 中建立名為「REQUIRE_USER_MATCH」的新字串值,然後將該值設為 TRUE 或 FALSE。
如果值設為 TRUE 或空白,則所有驗證要求都由 MFA 挑戰來決定。 如果值設為「FALSE」,則只有已註冊 Microsoft Entra 多重要素驗證的使用者會收到 MFA 挑戰。 請只在測試或實際執行環境中,在上線期間使用 FALSE 設定。
取得目錄租用戶識別碼
在設定 NPS 延伸模組期間,您必須提供 Microsoft Entra 租用戶的系統管理員認證和識別碼。 若要取得租用戶識別碼,請完成下列步驟:
瀏覽至 [身分識別]>[設定]。
安裝 NPS 擴充功能
NPS 擴充功能必須安裝於已安裝「網路原則與存取服務」角色,且依設計要作為 RADIUS 伺服器的伺服器上。 請「勿」將 NPS 擴充功能安裝在您的 VPN 伺服器上。
從 Microsoft 下載中心下載 NPS 擴充功能。
將安裝程式可執行檔 (NpsExtnForAzureMfaInstaller.exe) 複製到 NPS 伺服器。
在 NPS 伺服器上按兩下 NpsExtnForAzureMfaInstaller.exe,在系統提示時選取 [執行]。
在 [Microsoft Entra 多重要素驗證的 NPS 延伸模組設定] 視窗中,檢閱軟體的授權條款,選取 [我同意授權條款及條件] 核取方塊,然後選取 [安裝]。
在 [Microsoft Entra 多重要素驗證的 NPS 延伸模組設定] 視窗中,選取 [關閉]。
使用 Graph PowerShell 指令碼來設定要用於 NPS 延伸模組的憑證
為確保通訊安全並提供保證,請設定要供 NPS 擴充功能使用的憑證。 NPS 元件納入了 Graph PowerShell 指令碼,以設定要用於 NPS 的自我簽署憑證。
此指令碼會執行下列動作:
- 建立自我簽署憑證。
- 讓憑證的公開金鑰與 Microsoft Entra ID 上的服務主體產生關聯。
- 將憑證儲存在本機電腦的存放區。
- 授與網路使用者憑證私密金鑰的存取權。
- 重新啟動 NPS 服務。
如果您想要使用您自己的憑證,就必須讓憑證的公開金鑰與 Microsoft Entra ID 上的服務主體產生關聯,依此類推。
若要使用此指令碼,請為延伸模組提供您的 Microsoft Entra 管理認證以及您之前複製的 Microsoft Entra 租用戶識別碼。 帳戶必須位於您想要啟用延伸模組的 Microsoft Entra 租用戶中。 在安裝了 NPS 擴充功能的每個 NPS 伺服器上執行此指令碼。
以系統管理員身分執行 Graph PowerShell。
在 PowerShell 命令提示字元中輸入 cd "c:\Program Files\Microsoft\AzureMfa\Config",然後選取 ENTER 鍵。
在下一個命令提示字元中,輸入 .\AzureMfaNpsExtnConfigSetup.ps1,然後選取 Enter。 此指令碼會檢查您是否已安裝 Graph PowerShell。 如果未安裝,此指令碼就會為您安裝 Graph PowerShell。
如果您因 TLS 而收到安全性錯誤,請從您的 PowerShell 提示字元使用
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
命令來啟用 TLS 1.2。在指令碼確認您已安裝 PowerShell 模組後,其會顯示 [Graph PowerShell 模組] 登入視窗。
輸入 Microsoft Entra 系統管理員認證和密碼,然後選取 [登入]。
在命令提示字元中,貼上您先前複製的租用戶識別碼,然後選取 Enter。
此指令碼會建立自我簽署憑證,並進行其他的設定變更。 輸出與下圖中的內容類似:
重新開機伺服器。
驗證設定
若要驗證設定,您必須對 VPN 伺服器建立新的 VPN 連線。 成功輸入主要驗證的認證之後,VPN 連線會先等候次要驗證成功再建立連線,如下所示。
如果您已成功地使用先前在 Microsoft Entra 多重要素驗證中設定的次要驗證方法進行驗證,您就會連線到資源。 不過,如果次要驗證失敗,系統就會拒絕讓您存取資源。
在下列範例中,Windows Phone 上的 Microsoft Authenticator 應用程式提供次要驗證:
在成功地使用第二種方法進行驗證之後,您就能存取 VPN 伺服器上的虛擬連接埠。 因為您必須使用受信任裝置上的行動裝置應用程式來使用次要驗證方法,登入程序會比僅使用使用者名稱和密碼的組合來得更加安全。
檢視事件檢視器記錄中的成功登入事件
若要在 Windows 事件檢視器中檢視成功登入事件,您可以檢視「安全性」記錄或「網路原則和存取服務」自訂檢視,如下圖所示:
在安裝了 Microsoft Entra 多重要素驗證 NPS 延伸模組的伺服器上,您可以在 Application and Services Logs\Microsoft\AzureMfa 找到延伸模組專屬的事件檢視器應用程式記錄。
疑難排解指南
如果設定未如預期般運作,請確認使用者是否已設為使用 MFA 以開始疑難排解。 讓使用者登入 Microsoft Entra 系統管理中心。 如果使用者收到次要驗證提示而且可以成功地完成驗證,您就可以排除是 MFA 設定不正確的問題。
如果 Azure MFA 對使用者有效,請檢閱相關的事件檢視器記錄。 這些記錄包括安全性事件記錄、閘道運作記錄,以及上一節中討論的 Microsoft Entra 多重要素驗證記錄。
顯示失敗登入事件 (事件識別碼 6273) 的安全性記錄範例如下:
來自 Microsoft Entra 多重要素驗證記錄的相關事件顯示如下:
若要執行進階的疑難排解,請參閱安裝了 NPS 服務的 NPS 資料庫格式記錄檔。 記錄會建立於 %SystemRoot%\System32\Logs 資料夾,並以逗號分隔文字檔的形式存在。 如需這些記錄檔的說明,請參閱解譯 NPS 資料庫格式記錄檔 \(英文\)。
這些記錄檔中的項目除非匯入到試算表或資料庫,否則將難以解譯。 您可以找到許多線上的網際網路驗證服務 (IAS) 剖析工具,以協助您解譯記錄檔。 以下是其中一個這類可下載共享軟體應用程式的輸出:
如需其他疑難排解,您可以使用通訊協定分析器,例如 Wireshark 或 Microsoft Message Analyzer。 下圖來自 Wireshark,顯示 VPN 伺服器與 NPS 伺服器之間的 RADIUS 訊息。
如需詳細資訊,請參閱整合現有的 NPS 基礎結構與 Microsoft Entra 多重要素驗證 (部分機器翻譯)。
下一步
使用 RADIUS 的遠端桌面閘道器和 Azure Multi-Factor Authentication Server
整合您的內部部署目錄與 Microsoft Entra ID (部分機器翻譯)