NPS(网络策略服务器)是Windows Server中承担RADIUS服务器和RADIUS代理双重角色的核心组件。在配置NPS时,最容易让人困惑的就是连接请求策略和网络策略这两组策略对象:它们名字相似、配置界面相近,但作用却完全不同。简单来说,连接请求策略决定请求在哪里被处理,网络策略决定请求是否被允许以及如何被认证。理解了这句话,NPS的策略体系就掌握了一大半。

一、NPS处理请求的完整流程:先连接请求策略,后网络策略
当一台RADIUS客户端(比如VPN网关、无线控制器、交换机)向NPS发送访问请求时,NPS并不是直接去查用户密码,而是按照固定的顺序层层筛选。第一道关卡就是连接请求策略。NPS会从上到下逐条匹配连接请求策略,找到第一条满足条件的策略后,根据该策略的设置决定:这个请求是在本地处理(充当RADIUS服务器角色),还是转发给其他RADIUS服务器处理(充当RADIUS代理角色),或者直接拒绝。
如果请求被判定为本地处理,才会进入第二道关卡——网络策略。网络策略同样按顺序匹配,第一条满足条件的网络策略将决定用户能否接入、采用什么认证协议、是否应用IP过滤等。如果所有网络策略都不匹配,NPS会直接拒绝该请求。这个两级串行的处理逻辑是理解NPS的基础:连接请求策略管路由和转发,网络策略管授权和认证。
可以用一个形象的比喻来理解:连接请求策略像公司前台的接待员,负责判断来访请求应该送到哪个部门处理;网络策略则是部门内部的审核专员,负责判断这个人能不能进来、以什么方式进来。前台放行了不代表一定能进门,还需要通过部门审核。
二、连接请求策略的配置详解
打开服务器管理器,依次进入工具、网络策略服务器,在左侧树中展开策略,就能看到连接请求策略节点。系统默认自带一条名为“使用Windows身份验证处理所有连接请求”的策略,匹配条件基本为空(即匹配所有请求),设置也是本地认证,这就是默认情况下NPS充当RADIUS服务器的原因。
连接请求策略的配置分为三个部分:条件、设置和概述。常用的条件包括RADIUS客户端的友好名称、客户端IPv4地址、NAS端口类型(比如区分虚拟专用网络、以太网、无线)等。设置部分是最关键的,在“身份验证”位置有两个选择:一个是“在此服务器上对连接请求进行身份验证”,即本地处理;另一个是“将连接请求转发到此RADIUS服务器组中的远程RADIUS服务器”,即代理转发。选择转发时,需要事先在RADIUS服务器组中定义好目标服务器,并配置好共享密钥。
下面这段PowerShell命令演示了如何创建一条将无线请求转发给远程RADIUS服务器的连接请求策略:
# 新建连接请求策略,匹配所有无线接入请求
New-NpsConnectionRequestPolicy -Name "转发无线请求" `
-ConditionGroup "无线用户组" `
-Action Forward `
-ServerGroup "远程Radius组"
# 查看当前所有连接请求策略及处理顺序
Get-NpsConnectionRequestPolicy | Select-Object Name, Enabled, ProcessingOrder
策略的顺序非常重要。NPS采用首次匹配原则,如果宽泛的策略排在前面,后面的精细策略永远不会被命中。调整顺序时可以在右侧操作窗格中使用“上移”或“下移”,确保条件越具体的策略越靠前。
三、网络策略的条件、约束与设置
网络策略的配置结构比连接请求策略更丰富,分为条件、约束和设置三大模块。条件用于筛选请求,常见的有Windows组、用户名、NAS端口类型、客户端友好名称、日期和时间限制等;约束包括身份验证方法和会话超时等硬性要求;设置则包含拨入权限的覆盖、IP筛选器、加密强度、隧道属性等授权细节。
其中“拨入网络访问权限”的覆盖逻辑值得特别注意。在网络策略的“设置”中,“替换网络访问服务器上的网络访问权限”选项可以强制允许或拒绝用户,无视用户账户属性中的拨入设置。这在配合“通过NPS网络策略控制访问”的管理场景中非常实用,管理员不必逐个修改AD用户属性,只需在策略层面统一定义权限。
身份验证方法的选择直接决定安全强度。推荐使用“Microsoft:受保护的EAP (PEAP)”并在PEAP内部选择EAP-MSCHAPv2或智能卡证书认证。如果网络中有旧设备只支持PAP或CHAP,可以在策略中单独放宽,但必须通过条件(比如限定特定RADIUS客户端)把这些弱认证范围压缩到最小,避免整个认证体系降级。下面的示例展示了一条针对VPN用户的网络策略配置思路:
# 创建网络策略:仅允许VPN用户组接入
New-NpsNetworkPolicy -Name "允许VPN接入" `
-ConditionGroup "VPN-Users" `
-ProcessingOrder 1
# 为该策略启用PEAP-MSCHAPv2认证
$npsPolicy = Get-NpsNetworkPolicy -Name "允许VPN接入"
$npsPolicy | Set-NpsNetworkPolicy
另外要注意,网络策略的条件判断中,Windows组条件使用的是安全组而非通讯组,选错类型会导致匹配失败。排查时可以在策略上右键选择属性,逐一核对每个条件的运算符是“匹配”还是“不匹配”,一个条件配置颠倒就可能让整条策略形同虚设。
四、常见故障排查:认证被拒时该查哪里
实际运维中最典型的问题就是客户端认证失败,NPS返回拒绝报文。排查时建议开启NPS的事件日志(默认记录在Windows事件查看器的“自定义视图、服务器角色、网络策略服务器”中),事件ID 6273记录了被拒绝的请求,其中的“网络策略名称”字段会明确指出请求匹配到了哪条策略,或者根本没有匹配到任何策略。
如果日志显示匹配到的策略是“连接请求策略”,说明请求被转发或拒绝了,问题出在第一层;如果显示的是某条具体的网络策略名称,就要去检查该策略的条件和权限设置。常见的坑包括:RADIUS客户端的共享密钥不一致(会在6273事件中显示错误的验证器)、网络策略中忘记勾选PEAP导致认证方式协商失败、用户所在的组没有添加到策略条件中导致“未匹配到任何策略”。
还有一类隐蔽问题是策略顺序混乱。比如默认的“所有其他用户”这类兜底策略排在了精细策略前面,导致所有请求都被兜底策略以拒绝或低权限处理。养成习惯:每次新建策略后都检查ProcessingOrder,把拒绝类策略放在允许类之前还是之后,要根据业务逻辑明确设计——通常建议“具体允许在前,兜底拒绝在后”,这样既安全又便于排障。掌握连接请求策略和网络策略的分工与配合,NPS的绝大多数认证问题都能快速定位。
NPS连接请求策略NPS网络策略Windows Server网络策略服务器修改时间:2026-09-13 04:50:32