将现有网络策略服务器 (NPS) 基础结构与 Microsoft Entra 多重身份验证集成

适用于 Microsoft Entra 多重身份验证的网络策略服务器 (NPS) 扩展可以使用现有的服务器将基于云的 MFA 功能添加到身份验证基础结构。 使用 NPS 扩展,可将电话呼叫、短信或电话应用验证添加到现有的身份验证流,而无需安装、配置和维护新服务器。

NPS 扩展充当 RADIUS 与基于云的 Microsoft Entra 多重身份验证之间的适配器,为联合用户或已同步用户提供身份验证的第二个因素。

NPS 扩展的工作原理

使用 NPS 扩展进行 Microsoft Entra 多重身份验证时,身份验证流包括以下组件:

  1. NAS/VPN 服务器接收来自 VPN 客户端的请求,并将其转换为可发往 NPS 服务器的 RADIUS 请求。

  2. NPS 服务器连接到 Active Directory 域服务 (AD DS),以针对 RADIUS 请求执行主要身份验证,并在成功后将请求传递到所有已安装的扩展。

  3. NPS 扩展触发一个 Microsoft Entra 多重身份验证请求来执行辅助身份验证。 该扩展收到响应后,如果 MFA 质询成功,该扩展将通过向 NPS 服务器提供由 Azure STS 颁发的、包含 MFA 声明的安全令牌,来完成身份验证请求。

    注意

    虽然 NPS 不支持数字匹配,但最新的 NPS 扩展支持基于时间的一次性密码 (TOTP) 方法,例如 Microsoft Authenticator 中提供的 TOTP。 TOTP 登录可提供比备用的“批准”/“拒绝”体验更好的安全性。

    2023 年 5 月 8 日之后,当为所有用户启用数字匹配时,系统将提示使用 NPS 扩展版本 1.2.2216.1 或更高版本执行 RADIUS 连接的任何用户改为使用 TOTP 方法登录。 用户必须注册 TOTP 身份验证方法才能看到此行为。 如果未注册 TOTP 方法,用户将继续看到“批准”/“拒绝”。

  4. Microsoft Entra 多重身份验证与 Microsoft Entra ID 通信,检索用户的详细信息并使用配置给用户的验证方法执行辅助身份验证。

下图显示了此高级身份验证请求流:

用户通过 VPN 服务器向 NPS 服务器和 Microsoft Entra 多重身份验证 NPS 扩展进行身份验证的身份验证流示意图

RADIUS 协议行为和 NPS 扩展

因为 RADIUS 是一种 UDP 协议,因此发送方会认为数据包丢失并等待响应。 一段时间后,连接可能会超时。如果是这样,则会重新发送数据包,因为发送方假设数据包未到达目标。 在本文的身份验证场景中,VPN 服务器发送请求并等待响应。 如果连接超时,VPN 服务器会再次发送请求。

NPS 服务器的响应超时后的 RADIUS UDP 数据包流和请求的示意图

NPS 服务器在连接超时之前可能不会响应 VPN 服务器的原始请求,因为 MFA 请求可能仍在进行处理。 用户可能未成功响应 MFA 提示,因此 Microsoft Entra 多重身份验证 NPS 扩展正在等待该事件完成。 在这种情况下,NPS 服务器会将附加的 VPN 服务器请求标识为重复请求。 NPS 服务器会丢弃这些重复的 VPN 服务器请求。

NPS 服务器丢弃来自 RADIUS 服务器的重复请求的示意图

如果查看 NPS 服务器日志,可能会看到这些附加请求被丢弃。 此行为是设计使然,防止最终用户收到单个身份验证尝试的多个请求。 NPS 服务器事件日志中存在丢弃的请求并不表示 NPS 服务器或 Microsoft Entra 多重身份验证 NPS 扩展存在问题。

为了最大限度地减少丢弃的请求,建议将 VPN 服务器的超时配置为至少 60 秒。 可以根据需要将 VPN 服务器超时值增加到 90 或 120 秒,也可以为了减少事件日志中的丢弃的请求而这样做。

由于此 UDP 协议行为,NPS 服务器可能会收到重复请求并会再次发送 MFA 提示,即使用户已对初始请求做出响应。 为了避免这种计时情况,在将成功的响应发送到 VPN 服务器后,Microsoft Entra 多重身份验证 NPS 扩展会继续筛选并丢弃重复的请求,这样持续长达 10 秒钟的时间。

返回成功的响应后,NPS 服务器在十秒内继续丢弃来自 VPN 服务器的重复请求的示意图

同样,即使 Microsoft Entra 多重身份验证提示是成功的,也可能会在 NPS 服务器事件日志中看到丢弃的请求。 这是预期的行为,并不表示 NPS 服务器或 Microsoft Entra 多重身份验证 NPS 扩展存在问题。

规划部署

NPS 扩展自动处理冗余,因此无需特殊配置。

可以根据需要创建任意数量的已启用 Microsoft Entra 多重身份验证的 NPS 服务器。 如果确实安装了多个服务器,应该为其中每个服务器使用不同的客户端证书。 为每个服务器创建证书意味着,可单独更新每个证书,不必担心所有服务器出现停机。

VPN 服务器会路由身份验证请求,因此它们需要感知新的已启用 Microsoft Entra 多重身份验证的 NPS 服务器。

先决条件

NPS 扩展需与现有基础结构配合工作。 在开始之前,请确保满足以下先决条件。

许可证

Microsoft Entra 多重身份验证的 NPS 扩展可供具有 Microsoft Entra 多重身份验证许可证(包含在 Microsoft Entra ID P1 和 Premium P2 或企业移动性 + 安全性中)的客户使用。 Microsoft Entra 多重身份验证的基于使用量的许可证(例如,按用户或按身份验证许可证)与 NPS 扩展不兼容。

软件

  • Windows Server 2012 或更高版本。 请注意,Windows Server 2012 已终止支持

  • Microsoft Graph PowerShell 模块需要 .NET Framework 4.7.2 或更高版本。

  • PowerShell version 5.1 或更高版本。 要检查 PowerShell 的版本,请运行以下命令:

    PS C:\> $PSVersionTable.PSVersion
    Major  Minor  Build  Revision
    -----  -----  -----  --------
    5      1      16232  1000
    

Libraries

  • NPS 扩展安装程序将安装 Visual Studio 2017 C++ 可再发行程序包 (x64)。

  • 还将通过在安装过程中运行的配置脚本安装 Microsoft Graph PowerShell 模块(如果尚不存在)。 无需提前安装模块。

获取目录租户 ID

作为 NPS 扩展配置的一部分,必须提供管理员凭据和 Microsoft Entra 租户 ID。 若要获取租户 ID,请完成以下步骤:

  1. 登录 Microsoft Entra 管理中心

  2. 浏览到“标识>设置”。

    从 Microsoft Entra 管理中心获取租户 ID

网络要求

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)

此外,还需要连接到以下 URL 才能使用提供的 PowerShell 脚本完成适配器的设置

  • https://onegetcdn.azureedge.net
  • https://login.microsoftonline.com
  • https://provisioningapi.microsoftonline.com
  • https://aadcdn.msauth.net
  • https://www.powershellgallery.com
  • https://go.microsoft.com
  • 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 请求进行身份验证。 为此角色选择一台服务器。 我们建议选择一台不处理来自其他服务的请求的服务器,因为对于不是 RADIUS 的任何请求,NPS 扩展都会引发错误。 NPS 服务器必须设置为环境的主要和次要身份验证服务器。 它不能将 RADIUS 请求代理到另一台服务器。

  1. 在你的服务器上,打开“服务器管理器”。 从“快速入门”菜单中选择“添加角色和功能”向导。
  2. 对于安装类型,请选择“基于角色或基于功能的安装”。
  3. 选择“网络策略和访问服务”服务器角色。 可能会弹出一个窗口,通知你运行此角色所需的其他功能。
  4. 继续完成该向导,直到出现“确认”页。 准备就绪后,选择“安装”。

安装 NPS 服务器角色可能需要几分钟的时间。 完成后,请继续执行以下部分,将此服务器配置为处理来自 VPN 解决方案的传入 RADIUS 请求。

将 VPN 解决方案配置为与 NPS 服务器通信

根据使用的 VPN 解决方案,配置 RADIUS 身份验证策略的步骤会有所不同。 将你的 VPN 策略配置为指向你的 RADIUS NPS 服务器。

将域用户同步到云

此步骤可能已在租户上完成,但最好仔细检查 Microsoft Entra Connect 最近是否已同步数据库。

  1. 混合标识管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览至“标识”>“混合管理”>“Microsoft Entra Connetc”。
  3. 确认同步状态是“已启用”,并确认上次同步时间是在不到一小时前。

如果需要启动新一轮的同步,请参阅 Microsoft Entra Connect 同步:计划程序中的说明。

决定你的用户可以使用哪些身份验证方法

有两个因素会影响 NPS 扩展部署可以使用哪些身份验证方法:

  • 在 RADIUS 客户端(VPN、Netscaler 服务器或其他客户端)与 NPS 服务器之间使用的密码加密算法。

    • PAP 在云中支持 Microsoft Entra 多重身份验证的所有身份验证方法:电话呼叫、单向短信、移动应用通知、OATH 硬件令牌和移动应用验证码。
    • CHAPV2EAP 支持电话呼叫和移动应用通知。
  • 客户端应用程序(VPN、Netscaler 服务器或其他客户端)可以处理的输入方法。 例如,VPN 客户端是否有一些手段允许用户键入通过文本或移动应用收到的验证码?

可以在 Azure 中禁用不受支持的身份验证方法

注意

无论使用何种身份验证协议(PAP、CHAP 或 EAP),如果你的 MFA 方法是基于文本的(短信、移动应用验证码或 OATH 硬件令牌),并且要求用户在 VPN 客户端 UI 输入字段中输入代码或文本,则身份验证都可能会成功。 但在“网络访问策略”中配置的任何 RADIUS 属性均不转发到 RADIUS 客户端(网络访问设备,例如 VPN 网关) 。 因此,VPN 客户端可能拥有比你想让其拥有的访问权限更多的访问权限、更少的访问权限,甚至没有访问权限。

作为一种解决方法,可以运行 CrpUsernameStuffing 脚本来转发网络访问策略中配置的 RADIUS 属性,并允许在用户的身份验证方法需要使用一次性密码 (OTP)(如短信、Microsoft Authenticator 密码或硬件 FOB)时进行 MFA。

用户注册 MFA

在你部署并使用 NPS 扩展前,那些必须执行 Microsoft Entra 多重身份验证的用户需要针对 MFA 进行注册。 若要在部署扩展时测试扩展,则还至少需要一个已针对 Microsoft Entra 多重身份验证进行完全注册的测试帐户。

如果需要创建和配置测试帐户,请使用以下步骤:

  1. 通过测试帐户登录 https://aka.ms/mfasetup
  2. 按照提示设置验证方法。
  3. 至少以身份验证策略管理员的身份登录到 Microsoft Entra 管理中心
  4. 浏览到“保护>多重身份验证”并启用测试帐户。

重要

确保用户已成功注册 Microsoft Entra 多重身份验证。 如果用户以前仅注册了自助式密码重置 (SSPR),则为其帐户启用 StrongAuthenticationMethods。 配置 StrongAuthenticationMethods 时将强制执行 Microsoft Entra 多重身份验证,即使用户仅注册了 SSPR。

可以启用合并安全注册,该安全注册可同时配置 SSPR 和 Microsoft Entra 多重身份验证。 有关详细信息,请参阅在 Microsoft Entra ID 中启用合并安全信息注册

如果用户以前仅启用了 SSPR,也可以强制用户重新注册身份验证方法

使用用户名和密码连接到 NPS 服务器的用户将需要完成多重身份验证提示。

安装 NPS 扩展

重要

在不同于 VPN 接入点的服务器上安装 NPS 扩展。

下载并安装用于 Microsoft Entra 多重身份验证的 NPS 扩展

若要下载并安装 NPS 扩展,请完成以下步骤:

  1. 从 Microsoft 下载中心下载 NPS 扩展
  2. 将二进制文件复制到要配置的网络策略服务器。
  3. 运行 setup.exe 并按照安装说明操作。 如果遇到错误,请确保已成功安装先决条件部分中的库

升级 NPS 扩展

如果你以后升级现有的 NPS 扩展安装,为避免重启基础服务器,请完成以下步骤:

  1. 卸载现有版本。
  2. 运行新的安装程序。
  3. 重启网络策略服务器 (IAS) 服务。

运行 PowerShell 脚本

安装程序会在以下位置创建 PowerShell 脚本:C:\Program Files\Microsoft\AzureMfa\Config(其中,C:\ 是安装驱动器)。 此 PowerShell 脚本在每次运行时执行以下操作:

  • 创建自签名证书。
  • 将证书的公钥关联到 Microsoft Entra ID 上的服务主体。
  • 将证书存储在本地计算机证书存储中。
  • 向网络用户授予对证书私钥的访问权限。
  • 重新启动 NPS 服务。

除非你想要使用自己的证书(而不是 PowerShell 脚本生成的自签名证书),否则请运行该 PowerShell 脚本来完成 NPS 扩展安装。 如果在多台服务器上安装扩展,则每台服务器都应有自己的证书。

若要提供负载均衡功能或实现冗余,请根据需要在其他 NPS 服务器上重复以下步骤:

  1. 以管理员身份打开 Windows PowerShell 提示符。

  2. 将目录更改为安装程序创建 PowerShell 脚本的位置:

    cd "C:\Program Files\Microsoft\AzureMfa\Config"
    
  3. 运行安装程序创建的 PowerShell 脚本。

    你可能需要首先启用 TLS 1.2,以便 PowerShell 能够正确连接和下载包:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    重要

    对于使用面向美国政府的 Azure 云或由世纪互联运营的 Azure 云的客户,请先编辑 AzureMfaNpsExtnConfigSetup.ps1 脚本使其包含所需云的 AzureEnvironment 参数。 例如,指定“-AzureEnvironment USGovernment”或“-AzureEnvironment AzureChinaCloud”。

    .\AzureMfaNpsExtnConfigSetup.ps1
    
  4. 出现提示时,请登录到 Microsoft Entra ID。

    需要全局管理员来管理此功能。

  5. PowerShell 会提示输入租户 ID。 使用在先决条件部分中复制的租户 ID GUID。

  6. 脚本完成后,会显示一条成功消息。

如果以前的计算机证书已过期,并且已生成新证书,则应删除所有过期的证书。 证书过期会导致 NPS 扩展启动出现问题。

注意

如果使用自己的证书,而不是使用 PowerShell 脚本生成的证书,请确保它们符合 NPS 命名约定。 使用者名称必须为“CN=<TenantID>”,“OU=Microsoft NPS Extension”。

有关 Microsoft Azure 政府或由世纪互联运营的 Microsoft Azure 的其他步骤

对于使用 Azure 政府云或由世纪互联运营的 Azure 云的客户,需要在每个 NPS 服务器上执行下面的附加配置步骤。

重要

只有 Azure 政府或由世纪互联运营的 Azure 客户才需要配置这些注册表设置。

  1. 如果你是 Azure 政府或世纪互联运营的 Azure 的客户,请在 NPS 服务器上打开“注册表编辑器”。

  2. 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AzureMfa

  3. 对于 Azure 政府客户,请设置以下项值:

    注册表项
    AZURE_MFA_HOSTNAME strongauthenticationservice.auth.microsoft.us
    AZURE_MFA_RESOURCE_HOSTNAME adnotifications.windowsazure.us
    STS_URL https://login.microsoftonline.us/
  4. 对于由世纪互联运营的 Microsoft Azure 的客户,请设置以下注册表项值:

    注册表项
    AZURE_MFA_HOSTNAME strongauthenticationservice.auth.microsoft.cn
    AZURE_MFA_RESOURCE_HOSTNAME adnotifications.windowsazure.cn
    STS_URL https://login.chinacloudapi.cn/
  5. 重复上述两个步骤,为每个 NPS 服务器设置注册表项值。

  6. 为每个 NPS 服务器重启 NPS 服务。

    为了最大限度地减少影响,请从 NLB 轮换中逐个移除 NPS 服务器,然后等待所有连接排出。

证书滚动更新

NPS 扩展的 1.0.1.32 版本现在支持读取多个证书。 此功能有助于在证书过期之前进行滚动更新。 如果你的组织运行的是以前版本的 NPS 扩展,请升级到 1.0.1.32 或更高版本。

AzureMfaNpsExtnConfigSetup.ps1 脚本创建的证书有效期为 2 年。 监视证书的到期时间。 NPS 扩展的证书位于“本地计算机”证书存储中的 “Personal”下,并“颁发给”为安装脚本提供的租户 ID。

当证书接近到期日期时,应创建新的证书来替换该证书。 通过再次运行 AzureMfaNpsExtnConfigSetup.ps1 并在出现提示时保持相同的租户 ID,可以完成此过程。 应在环境中的每个 NPS 服务器上重复此过程。

配置 NPS 扩展

你的环境已准备好,并且 NPS 扩展现已安装在所需的服务器上,可以配置该扩展了。

本部分包含一些设计注意事项和建议,帮助用户成功完成 NPS 扩展的部署。

配置限制

  • 用于 Microsoft Entra 多重身份验证的 NPS 扩展不包含用于将用户和设置从 MFA 服务器迁移到云的工具。 出于此原因,我们建议将扩展用于新部署,而非现有部署。 如果在现有部署上使用扩展,用户必须重新进行证明才能在云中填充其 MFA 详细信息。
  • NPS 扩展不支持在电话呼叫设置上配置的自定义电话呼叫。 将使用默认电话呼叫语言 (EN-US)。
  • NPS 扩展使用本地 AD DS 环境中的 UPN 来标识进行 Microsoft Entra 多重身份验证的用户,以便执行辅助身份验证。可以将扩展配置为使用不同的标识符,例如备用登录 ID,或者除 UPN 以外的自定义 AD DS 字段。 有关详细信息,请参阅用于多重身份验证的 NPS 扩展的高级配置选项一文。
  • 并非所有加密协议都支持所有验证方法。
    • PAP 支持电话呼叫、单向短信、移动应用通知和移动应用验证码
    • CHAPV2EAP 支持电话呼叫和移动应用通知

控制需要 MFA 的 RADIUS 客户端

使用 NPS 扩展为 RADIUS 客户端启用 MFA 后,此客户端的所有身份验证都需要执行 MFA。 如果想要为一部分(而不是全部)RADIUS 客户端启用 MFA,可以配置两台 NPS 服务器,并只在其中一台服务器上安装该扩展。

将需要执行 MFA 的 RADIUS 客户端配置为向配置了该扩展的 NPS 服务器发送请求,将其他 RADIUS 客户端配置为向未配置该扩展的 NPS 服务器发送请求。

为未注册 MFA 的用户做好准备

如果你的某些用户未注册 MFA,你可以确定当他们尝试身份验证时要发生什么行为。 若要控制此行为,请使用注册表路径 HKLM\Software\Microsoft\AzureMFA 中的 REQUIRE_USER_MATCH 设置。 此项设置提供单个配置选项:

密钥 默认
REQUIRE_USER_MATCH TRUE/FALSE 未设置(相当于 TRUE)

此设置决定了当用户未针对 MFA 进行注册时要执行的操作。 如果该注册表项不存在、未设置,或设置为 TRUE,并且用户未注册,则该扩展将通不过 MFA 质询。

如果该注册表项设置为 FALSE 并且用户未注册,则身份验证会继续且不执行 MFA。 如果用户在 MFA 中注册,则即使 REQUIRE_USER_MATCH 设置为 FALSE,用户也必须使用 MFA 进行身份验证。

当你的用户正在加入,可能尚未全部针对 Microsoft Entra 多重身份验证进行注册时,你可以选择创建该注册表项并将其设置为 FALSE。 但是,由于设置该项允许未注册 MFA 的用户登录,因此应在转到生产环境之前删除该项。

疑难解答

NPS 扩展运行状况检查脚本

当对 NPS 扩展进行故障排除时,Microsoft Entra 多重身份验证 NPS 扩展运行状况检查脚本将执行基本的运行状况检查。 运行脚本并选择其中一个可用选项。

如何修复在运行 AzureMfaNpsExtnConfigSetup.ps1 脚本时出现的“找不到服务主体”错误?

如果出于某种原因未在租户中创建“Azure 多重身份验证客户端”服务主体,则可以通过运行 PowerShell 手动创建它。

Connect-MgGraph -Scopes 'Application.ReadWrite.All'
New-MgServicePrincipal -AppId 00001111-aaaa-2222-bbbb-3333cccc4444 -DisplayName "Azure Multi-Factor Auth Client"
  1. 全局管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“应用程序”>“企业应用程序”> 然后搜索“Azure 多重身份验证客户端”。
  3. 然后单击“检查此应用的属性”。 确认是否启用或禁用服务主体。
  4. 单击应用程序条目 >属性
  5. 如果“为用户启用登录?”选项设置为“”,请将其设置为“”。

再次运行 AzureMfaNpsExtnConfigSetup.ps1 脚本,应不会返回 找不到服务主体 错误。

如何验证是否已按预期安装了客户端证书?

请在证书存储中查找安装程序创建的自签名证书,并检查私钥是否具有授予用户“网络服务”的“读取”权限。 证书的使用者名称为 CN <tenantid>,OU = Microsoft NPS Extension

AzureMfaNpsExtnConfigSetup.ps1 脚本生成的自签名证书的有效期为两年。 验证是否已安装证书时,还应检查证书是否尚未过期。

如何验证客户端证书是否已关联到 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 = {$Cert = New-object System.Security.Cryptography.X509Certificates.X509Certificate2; $Cert.Import([System.Text.Encoding]::UTF8.GetBytes([System.Convert]::ToBase64String($_.Key))); $Cert.Thumbprint}}

这些命令会在 PowerShell 会话中列显所有可将你的租户与 NPS 扩展实例相关联的证书。 通过将客户端证书导出为不带私钥的“Base-64 编码 X.509(.cer)”文件来查找你的证书,并将它与 PowerShell 中的列表进行比较。 将服务器上安装的证书的指纹与此指纹进行比较。 证书指纹应匹配。

如果该命令返回了多个证书,可以使用“StartDateTime”和“EndDateTime”时间戳(采用用户可读格式)来筛选出明显不相符的项。

为什么无法登录?

检查密码是否未过期。 NPS 扩展不支持在登录工作流中更改密码。 请与组织的 IT 人员联系以获得进一步的帮助。

我的请求为何失败并返回安全令牌错误?

此错误可能是多种原因之一造成的。 请使用以下步骤进行故障排除:

  1. 重新启动 NPS 服务器。
  2. 验证是否已按预期安装了客户端证书。
  3. 验证该证书是否与 Microsoft Entra ID 上的租户关联。
  4. 验证是否可以从运行该扩展的服务器访问 https://login.microsoftonline.com/

身份验证为何失败并在 HTTP 日志中返回一条错误,指出找不到用户?

验证 AD Connect 是否正在运行,以及该用户是否同时存在于本地 AD DS 环境和 Microsoft Entra ID 中。

日志中为何出现 HTTP 连接错误,并且所有身份验证都失败?

验证是否可从运行 NPS 扩展的服务器访问 https://adnotifications.windowsazure.comhttps://strongauthenticationservice.auth.microsoft.com

为什么尽管存在有效的证书,身份验证也不起作用?

如果以前的计算机证书已过期,并且已生成新证书,请删除所有过期的证书。 过期证书可能会导致 NPS 扩展启动出现问题。

若要检查你是否具有有效的证书,请使用 MMC 检查本地计算机帐户的证书存储,确保证书尚未过期。 若要生成新的有效证书,请重新运行运行 PowerShell 安装程序脚本中的步骤。

为什么会在 NPS 服务器日志中看到丢弃的请求?

如果超时值太小,VPN 服务器可能会向 NPS 服务器发送重复的请求。 NPS 服务器会检测到这些重复的请求并将其丢弃。 此行为是设计使然,并不表示 NPS 服务器或 Microsoft Entra 多重身份验证 NPS 扩展存在问题。

若要详细了解 NPS 服务器日志中出现丢弃的数据包的原因,请参阅本文开头的 RADIUS 协议行为和 NPS 扩展

我如何获取匹配的 Microsoft Authenticator 编号以使用 NPS?

虽然 NPS 不支持数字匹配,但最新的 NPS 扩展支持基于时间的一次性密码 (TOTP) 方法,例如 Microsoft Authenticator 中提供的 TOTP、其他软件令牌和硬件 FOB。 TOTP 登录可提供比备用的“批准”/“拒绝”体验更好的安全性。 确保运行最新版本的 NPS 扩展

2023 年 5 月 8 日之后,当为所有用户启用数字匹配时,系统将提示使用 NPS 扩展版本 1.2.2216.1 或更高版本执行 RADIUS 连接的任何用户改为使用 TOTP 方法登录。

用户必须注册 TOTP 身份验证方法才能看到此行为。 如果未注册 TOTP 方法,用户将继续看到“批准”/“拒绝”。

在 2023 年 5 月 8 日之后发布 NPS 扩展版本 1.2.2216.1 之前,运行早期版本的 NPS 扩展的组织可以修改注册表以要求用户输入 TOTP。 有关详细信息,请参阅 NPS 扩展

管理 TLS/SSL 协议和密码套件

建议禁用或删除较旧和较弱的密码套件,除非组织需要这些套件。 若要了解如何完成此任务,可以参阅为 AD FS 管理 SSL/TLS 协议和密码套件一文。

更多故障排除方法

有关其他故障排除指南和可能的解决方案,请参阅解决 Microsoft Entra 多重身份验证的 NPS 扩展出现的错误消息一文。

后续步骤