网络策略服务器(NPS)详解
网络策略服务器(NPS)详解
网络策略服务器(NPS)是Windows Server中的一个关键组件,用于集中管理网络访问的验证、授权和计费。本文详细介绍了NPS的功能、配置方法和使用场景,特别适合IT技术人员参考。
您可以使用本主题了解Windows Server 2016和Windows Server 2019中的网络策略服务器概览。当您在Windows Server 2016和Server 2019中安装网络策略和访问服务(NPAS)功能时,就会安装NPS。
适用版本:
- Windows Server 2025
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Azure Local, 版本23H2和22H2
本文内容
您可以使用本主题了解Windows Server 2016和Windows Server 2019中的网络策略服务器概览。当您在Windows Server 2016和Server 2019中安装网络策略和访问服务(NPAS)功能时,就会安装NPS。
注意:
除了本主题之外,还提供下列NPS文档。
网络策略服务器(NPS)可针对连接请求验证和授权,建立及强制执行整个组织的网络访问原则。
您也可以将NPS设置为远程验证拨入用户服务(RADIUS)Proxy,将连接请求转发至远程NPS或其他RADIUS服务器,让您可以负载平衡的连接请求,并将其转发至正确的域进行验证和授权。
NPS可以让您使用以下功能集中设置和管理网络访问验证、授权和计费:
- RADIUS服务器:NPS会针对无线、验证交换器、远程访问拨号和虚拟私人网络(VPN)连接,执行集中式验证、授权和计费作业。当您使用NPS作为RADIUS服务器时,可以设置网络访问服务器(例如无线接入点与VPN服务器)作为NPS中的RADIUS客户端。您也可以设置NPS用来授权连接请求的网络策略,并且可以设置RADIUS账户处理,让NPS将计费信息记录到本地硬盘上或Microsoft SQL Server数据库中的记录文件。如需详细信息,请参阅RADIUS服务器。
- RADIUS Proxy:您使用NPS作为RADIUS Proxy时,可以设置连接请求策略,告知NPS要将哪些连接请求转发给其他RADIUS服务器,以及要将连接请求转发给哪些RADIUS服务器。您也可以设置NPS转发要由远程RADIUS服务器组中一或多台计算机记录的计费数据。若要将NPS设置为RADIUS Proxy服务器,请参阅下列主题。如需详细信息,请参阅RADIUS Proxy。
- 设置连接请求策略
- RADIUS计费:您可以将NPS设置为将事件记录到本地记录文件,或记录至Microsoft SQL Server的本地或实例。如需详细信息,请参阅NPS记录。
重要:
网络访问保护(NAP)、健康状况登录授权单位(HRA)和主机认证授权协议(HCAP)在Windows Server 2012 R2中已被取代,且无法在Windows Server 2016中使用。如果您使用早于Windows Server 2016的操作系统进行NAP部署,则无法将NAP部署迁移到Windows Server 2016。
您可以使用这些功能的任意组合设置NPS。例如,您可以将一个NPS设置为VPN连接的RADIUS服务器,也可以设置为RADIUS Proxy来将某些连接请求转发给远程RADIUS服务器组的成员,以在另一个域中进行验证和授权。
Windows Server版本和NPS
NPS会根据您安装的Windows Server版本,提供不同的功能。
Windows Server 2016或Windows Server 2019 Standard/Datacenter版本
使用Windows Server 2016 Standard或Datacenter中的NPS,您可以设置无限数量的RADIUS客户端和远程RADIUS服务器组。还可以通过指定IP地址范围设置RADIUS客户端。
注意:
Windows网络策略和访问服务功能无法在安装Server Core安装选项的系统上使用。
RADIUS服务器和Proxy
您可以使用NPS作为RADIUS服务器、RADIUS Proxy或两者。
RADIUS服务器
NPS是Microsoft在RFC 2865和2866中由互联网工程任务推动小组(IETF)指定的RADIUS标准实现。NPS作为RADIUS服务器,会执行集中式连接验证、授权,并计量许多类型的网络访问,包括无线、验证交换器、拨号和虚拟私人网络(VPN)远程访问,以及路由器对路由器连接。
注意:
如需将NPS部署为RADIUS服务器的信息,请参阅部署网络策略服务器。
NPS可以让您使用一组异构的无线、交换器、远程访问或VPN设备。您可以将NPS与Windows Server 2016中提供的远程访问服务一起使用。
NPS会使用Active Directory域服务(AD DS)域或本地安全账户管理器(SAM)用户账户数据库来验证用户凭据以进行连接尝试。当执行NPS的服务器是AD DS域的成员时,NPS会使用目录服务作为其用户账户的数据库,并且是单点登录解决方案的一部分。相同的凭据集用于网络访问控制(验证和授权网络访问权限),以及登录AD DS域。
注意:
NPS会将用户账户的拨入属性和网络策略用来授权连接。
维护网络访问权限的互联网服务提供商(ISP)和组织面临的挑战日益困难,即从单一管理点管理所有类型的网络访问,无论他们使用的网络访问设备类型如何。RADIUS标准支持在同质和异质环境中的这一功能。RADIUS是一种客户端-服务器通信协议,可启用网络访问设备(作为RADIUS客户端)将验证和计费请求提交至RADIUS服务器。
RADIUS服务器有权访问用户账户信息,并可检查网络访问验证凭据。如果用户凭据已验证且授权连接尝试,RADIUS服务器会基于指定的条件授权用户的访问权限,并在网络访问连接的计费记录中记录此信息。使用RADIUS可以让您在中央位置收集和管理网络访问用户验证、授权以及计费数据,而无需在每个访问服务器上都要执行这些工作。
将NPS作为RADIUS服务器使用
在以下情况下,您可以将NPS作为RADIUS服务器使用:
- 您使用的是AD DS域或本地SAM用户账户数据库作为访问客户端的用户账户数据库。
- 您在多个拨号服务器、VPN服务器或指定拨号路由器上使用远程访问,而且您想要集中网络策略的设置和连接记录与计费。
- 您正在将拨号、VPN或无线访问外包给服务提供商。存取伺服器會使用RADIUS來驗證和授權貴組織成員所建立的連線。
- 您想要针对一组异构存取伺服器進行集中驗證、授權和計量。
下图显示NPS作为各种存取用戶端的RADIUS伺服器。
RADIUS Proxy
作为RADIUS Proxy,NPS会将验证和计费信息转发至NPS和其他RADIUS服务器。您可以使用NPS作为RADIUS Proxy,在RADIUS客户端(也称为网络访问服务器)和RADIUS服务器之间提供RADIUS信息的路由,以执行连接尝试的用户验证、授权和计费。
当NPS作为RADIUS Proxy使用时,其为一个中央切换或路由点,RADIUS可以在其中访问和计费信息流程。NPS会记录有关转发信息的计费记录文件中的信息。
将NPS作为RADIUS Proxy使用
在以下情况下,您可以将NPS作为RADIUS Proxy使用:
- 您是服务提供商,为多个客户提供外包拨号、VPN或无线网络访问服务。您的NAS会将连接请求发送至NPS RADIUS Proxy。根据连接请求中用户名的域名部分,NPS RADIUS Proxy会将连接请求转发给由客户维护的RADIUS服务器,并可验证和授权连接尝试。
- 您想要提供验证和授权给非以下两种域成员的用户账户:NPS为其成员的域,或是与NPS为其成员的域有双向信任的另一个域。这包括不受信任的域、单向信任域和其他树中的账户。无需设置访问服务器来将其连接请求发送至NPS RADIUS服务器,您可以设置它们将其连接请求发送至NPS RADIUS Proxy。NPS RADIUS Proxy会将用户名的域名部分拿来使用,并将请求转发至正确域或树中的NPS。某个域或树中的用户账户连接尝试,可以在另一个域或树中验证NAS。
- 您想要使用不是Windows账户数据库的数据库来执行验证和授权。在此情况下,符合指定域名的连接请求会转发至RADIUS服务器,该服务器可以访问不同的用户账户数据库和授权数据。其他用户数据库的示例包括Novell Directory Services(NDS)和结构化查询语言(SQL)数据库。
- 您想要处理大量的连接请求。在此情况下,您无需设置RADIUS客户端尝试在多个RADIUS服务器之间平衡其连接和计费请求,而是设置它们将连接和计费请求发送至NPS RADIUS Proxy。NPS RADIUS Proxy会动态平衡多个RADIUS服务器之间的连接和计费请求负载,并增加每秒大量RADIUS客户端和验证的处理。
- 您想要为外包服务提供商提供RADIUS验证和授权,并将内部网络防火墙设置降到最低。内部网络防火墙位于您的周边网络(内部网络与互联网之间的网络)和内部网络之间。通过将NPS放在周边网络上,周边网络与内部网络之间的防火墙必须允许NPS与多域控制器之间的网络流量流动。通过将NPS替换为NPS Proxy,防火墙必须只允许RADIUS流量在NPS Proxy与内部网络内的一个或多个NPS之间流动。
重要:
当树级别为Windows Server 2003或更高版本,且树之间有双向信任关系时,NPS支持跨树进行验证,而不需RADIUS Proxy。但是,如果您使用EAP-TLS或PEAP-TLS搭配证书为验证方法,则必须使用RADIUS Proxy进行跨树的验证。
下图显示NPS作为RADIUS客户端与RADIUS服务器之间的RADIUS Proxy。
组织也可以使用NPS将远程访问基础结构外包给服务提供商,同时保留对于用户验证、授权以及计费的控制。
可以为以下案例建立NPS设置:
- 无线访问
- 组织拨号或虚拟私人网络(VPN)远程访问
- 外包拨号或无线访问
- 互联网访问
- 企业合作伙伴验证访问外部网络资源
RADIUS服务器和RADIUS Proxy设置示例
以下设置示例演示如何将NPS设置为RADIUS服务器和RADIUS Proxy。
- NPS作为RADIUS服务器。在此示例中,NPS被设置为RADIUS服务器,预设连接请求策略是唯一设置的策略,而且所有连接请求都会由本地NPS处理。NPS可以验证和授权其账户位于NPS域和受信任域中的用户。
- NPS作为RADIUS Proxy。在此示例中,NPS被设置为RADIUS Proxy,将连接请求转发至两个不受信任的域中的远程RADIUS服务器组。系统会删除预设连接请求策略,并建立两个新的连接请求策略,以将请求转发至两个不受信任的域。在此示例中,NPS不会处理本地服务器上的任何连接请求。
- NPS作为RADIUS服务器和RADIUS Proxy。除了预设连接请求策略之外,其会指定在本地处理连接请求,也会建立新的连接请求策略,以将连接请求转发至NPS或其他未受信任域中的RADIUS服务器。此第二个策略名为Proxy策略。在此示例中,Proxy策略会先出现在已排序的策略清单中。如果连接请求符合Proxy策略,连接请求会转发至远程RADIUS服务器组中的RADIUS服务器。如果连接请求不符合Proxy策略,但与预设连接请求策略相符,NPS会在本地服务器上处理连接请求。如果连接请求不符合任一个策略,则会舍弃它。
- NPS作为具有远程计费服务器的RADIUS服务器。在此示例中,本地NPS未设置为执行计费并修整预设连接请求策略,以便RADIUS计费信息转发至远程RADIUS服务器组中的NPS或其他RADIUS服务器。虽然会转发计费信息,但不会转发验证和授权信息,而本地NPS会针对本地域和所有受信任的域执行这些功能。
- 具有远程RADIUS的NPS与Windows用户对应。在此示例中,NPS会同时作为RADIUS服务器和每次个别连接请求的RADIUS Proxy,方法是将验证请求转发至远程RADIUS服务器,同时使用本地Windows用户账户进行授权。此设置是通过将“远程RADIUS到Windows用户对应”属性设置为连接请求策略的条件来实现的。(此外,必须在RADIUS服务器上本地建立用户账户,且其名称与远程RADIUS服务器执行验证的远程用户账户相同。)
组态
若要将NPS设置为RADIUS服务器,您可以在NPS控制台或“服务器管理器”中使用标准设置或进阶设置。若要将NPS设置为RADIUS Proxy,您必须使用进阶设置。
标准设置
使用标准设置时,会提供精灵来协助您设置以下案例的NPS:
- 用于拨号或VPN连接的RADIUS服务器
- 802.1X无线或有线连接的RADIUS服务器
若要使用精灵设置NPS,请开启NPS控制台,选取上述其中一种案例,然后按一下开启精灵的链接。
进阶设置
当您使用进阶设置时,需要手动将NPS设置为RADIUS服务器或RADIUS Proxy。
若要使用进阶设置设置NPS,请开启NPS控制台,然后按一下“进阶设置”旁的箭头以展开本区段。
提供以下进阶设置项目。
设置RADIUS服务器
若要将NPS设置为RADIUS服务器,您必须设置RADIUS客户端、网络策略和RADIUS计费。
如需进行这些设置的指示,请参阅下列主题。
设置RADIUS Proxy
若要将NPS设置为RADIUS Proxy,您必须设置RADIUS客户端、远程RADIUS服务器组和连接请求策略。
如需进行这些设置的指示,请参阅下列主题。
NPS记录
NPS记录也称为RADIUS计费。设置NPS记录以符合您的需求,不论NPS是用作RADIUS服务器、Proxy或这些设置的任何组合。
若要设置NPS记录,您必须设置“事件查看器”要记录并检视哪些事件,然后决定您想要记录的其他信息。此外,您必须决定是否要将用户验证和计费信息记录到储存在本地电脑上的文字记录文件,或是记录到本地电脑或远端电脑上的SQL Server数据库。
如需详细信息,请参阅设置网络策略服务器计费。