网络策略服务器 (NPS)
适用范围:Windows Server 2022、Windows Server 2016、Windows Server 2019
通过本主题可以大致了解 Windows Server 2016 和 Windows Server 2019 中的网络策略服务器。 在 Windows Server 2016 和 Server 2019 中安装网络策略和访问服务 (NPAS) 功能时,将安装 NPS。
注意
除了本主题,以下 NPS 文档也可用。
- 网络策略服务器最佳做法
- 网络策略服务器入门
- 规划网络策略服务器
- 部署网络策略服务器
- 管理网络策略服务器
- 适用于 Windows Server 2016 和 Windows 10 的 Windows PowerShell 中的网络策略服务器 (NPS) Cmdlet
- 适用于 Windows Server 2012 R2 和 Windows 8.1 的 Windows PowerShell 中的网络策略服务器 (NPS) Cmdlet
- 适用于 Windows Server 2012 和 Windows 8 的 Windows PowerShell 中的 NPS Cmdlet
通过网络策略服务器 (NPS),你可以针对连接请求身份验证和授权创建并实施组织级网络访问策略。
还可以将 NPS 配置为远程身份验证拨入用户服务 (RADIUS) 代理,将连接请求转发到远程 NPS 或其他 RADIUS 服务器,以便可以对连接请求进行负载均衡,并将其转发到正确的域进行身份验证和授权。
使用 NPS 的以下功能,可集中配置和管理网络访问身份验证、授权和计帐:
- RADIUS 服务器。 NPS 为无线身份验证交换机和远程访问拨号与虚拟专用网络 (VPN) 连接执行集中化的身份验证、授权和计帐。 将 NPS 用作 RADIUS 服务器时,可以将无线访问点和 VPN 服务器等网络访问服务器配置为 NPS 中的 RADIUS 客户端。 也可以配置有关使用 NPS 对连接请求进行授权的网络策略,并且可以配置 RADIUS 记帐,以便 NPS 将记帐信息记录到本地硬盘上或 Microsoft SQL Server 数据库中的日志文件。 有关详细信息,请参阅 RADIUS 服务器。
- RADIUS 代理。 将 NPS 用作 RADIUS 代理时,可以配置连接请求策略,以告诉 NPS 将哪些连接请求转发到其他 RADIUS 服务器,以及要将连接请求转发到哪些 RADIUS 服务器。 也可以配置 NPS,以转发将由远程 RADIUS 服务器组中的一台或多台计算机记录的记帐数据。 若要将 NPS 配置为 RADIUS 代理服务器,请参阅以下主题。 有关详细信息,请参阅 RADIUS 代理。
- RADIUS 计帐。 可以将 NPS 配置为将事件记录到本地日志文件或 Microsoft SQL Server 的本地或远程实例。 有关详细信息,请参阅 NPS 日志记录。
重要
网络访问保护 (NAP)、运行状况注册机构 (HRA) 和主机凭据授权协议 (HCAP) 在 Windows Server 2012 R2 中已弃用,在 Windows Server 2016 中不可用。 如果 NAP 部署使用早于 Windows Server 2016 的操作系统,则无法将 NAP 部署迁移到 Windows Server 2016。
可以使用这些功能的任意组合配置 NPS。 例如,可以将一个 NPS 配置为用于 VPN 连接的 RADIUS 服务器,也可以配置为 RADIUS 代理,以将某些连接请求转发到远程 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 网络策略和访问服务功能在安装有服务器核心安装选项的系统上不可用。
以下部分提供有关 NPS 用作 RADIUS 服务器和代理的更多详细信息。
RADIUS 服务器和代理
NPS 可用作 RADIUS 服务器、RADIUS 代理或两者。
RADIUS 服务器
NPS 是由 INTERNET 工程任务组 (IETF) 在 RFC 2865 和 2866 中指定的 RADIUS 标准的 Microsoft 实现。 作为 RADIUS 服务器,NPS 为许多类型的网络访问(包括无线、身份验证切换、拨号和虚拟专用网络 (VPN) 远程访问,及路由器到路由器的连接)执行集中化的连接身份验证、授权和记帐。
注意
有关将 NPS 部署为 RADIUS 服务器的详细信息,请参阅部署网络策略服务器。
NPS 支持使用一组异类无线、交换机、远程访问或 VPN 设备。 可以将 NPS 与 Windows Server 2016 中可用的远程访问服务一起使用。
NPS 使用 Active Directory 域服务 (AD DS) 域或本地安全帐户管理器 (SAM) 用户帐户数据库对用于尝试连接的用户凭据进行身份验证。 运行 NPS 的服务器是 AD DS 域的成员时,NPS 将目录服务用作其用户帐户数据库,并且是单一登录解决方案的一部分。 将同一组凭据用于网络访问控制(对网络的身份验证和授权访问)和登录到 AD DS 域。
注意
NPS 使用用户帐户的拨入属性和网络策略对连接授权。
Internet 服务提供商 (ISP) 和维护网络访问的组织对从单一管理点管理所有类型的网络访问将面临越来越大的挑战,这与使用的网络访问设备的类型无关。 RADIUS 标准在同类和异类环境中都支持该功能。 RADIUS 是一种客户端-服务器协议,使得网络访问设备(用作 RADIUS 客户端)可以向 RADIUS 服务器提交身份验证和记帐请求。
RADIUS 服务器具有对用户帐户信息的访问权限,并可以检查网络访问身份验证凭据。 如果用户凭据通过身份验证,并且连接尝试获得授权,RADIUS 服务器将根据指定条件向用户授予访问权限,并将网络访问连接记录到计帐日志中。 使用 RADIUS 允许在一个中心位置(而不是在每台访问服务器上)收集并维护网络访问用户身份验证、授权和记帐数据。
将 NPS 用作 RADIUS 服务器
在以下情况下,您可以使用 NPS 作为 RADIUS 服务器:
- 使用 AD DS 域或本地 SAM 用户帐户数据库作为访问客户端的用户帐户数据库。
- 你正在多个拨号服务器、VPN 服务器或请求拨号路由器上使用远程访问,并且希望集中配置网络策略以及连接日志记录和记帐。
- 您正在向服务提供商外购拨号、VPN 或无线访问。 访问服务器使用 RADIUS 对您所在组织的成员建立的连接进行身份验证和授权。
- 您要对一组不同种类的访问服务器集中进行身份验证、授权和记帐。
下图显示 NPS 作为各种访问客户端的 RADIUS 服务器。
RADIUS 代理
作为 RADIUS 代理,NPS 将身份验证和计帐消息转发到 NPS 和其他 RADIUS 服务器。 你可以将 NPS 作用 RADIUS 代理,在 RADIUS 客户端(也称为网络访问服务器)和对连接尝试执行用户身份验证、授权和计帐的 RADIUS 服务器之间提供 RADIUS 消息路由。
当用作 RADIUS 代理时,NPS 是一个中央切换点或路由点,其中 RADIUS 访问和记帐消息从中流过。 NPS 将被转发的消息的有关信息记录在记帐日志中。
将 NPS 用作 RADIUS 代理
出现以下情况,可以将 NPS 用作 RADIUS 代理:
- 你是向多个客户提供外包拨号、VPN 或无线网络访问服务的服务提供商。 你的 NAS 将连接请求发送到 NPS RADIUS 代理。 NPS RADIUS 代理根据连接请求中的用户名的领域部分,将连接请求转发到客户维持的 RADIUS 服务器,并可以对连接尝试进行身份验证和授权。
- 你希望向用户帐户提供身份验证和授权,而这些用户帐户既不是 NPS 所属域的成员,也不是与 NPS 所属域具有双向信任关系的另外一个域的成员。 这包括未受信任域、单向受信任域和其他林中的帐户。 不是将访问服务器配置为将其连接请求发送到 NPS RADIUS 服务器,而是将它们配置为将其连接请求发送到 NPS RADIUS 代理。 NPS RADIUS 代理使用用户名的领域名部分,并将请求转发到正确域或林中的 NPS。 一个域或林中的用户帐户的连接尝试可以针对另一个域或林中的 NAS 进行身份验证。
- 您希望使用不是 Windows 帐户数据库的数据库执行身份验证和授权。 在这种情况下,与指定领域名称匹配的连接请求转发到 RADIUS 服务器,后者拥有对不同用户帐户和授权数据数据库的访问权限。 其他用户数据库示例包括 Novell Directory Services (NDS) 和结构化查询语言 (SQL) 数据库。
- 您希望处理大量连接请求。 在这种情况下,可以不将 RADIUS 客户端配置为尝试跨多个 RADIUS 服务器平衡其连接和记帐请求,而将它们配置为将其连接和记帐请求发送到 NPS RADIUS 代理。 NPS RADIUS 代理动态地平衡跨多个 RADIUS 服务器的连接和记帐请求负载,并增加每秒处理的大量 RADIUS 客户端和身份验证数。
- 您希望向外包服务提供商提供 RADIUS 身份验证和授权,并最大限度减少 Intranet 防火墙配置。 Intranet 防火墙介于外围网络(Intranet 和 Internet 之间的网络)和 Intranet 之间。 通过将 NPS 放置在外围网络上,外围网络和 Intranet 之间的防火墙必须允许流量在 NPS 和多个域控制器之间流动。 将 NPS 替换为 NPS 代理后,防火墙必须仅允许 RADIUS 流量在 NPS 代理与 Intranet 中的一个或多个 NPS 之间流动。
重要
当林功能级别不低于 Windows Server 2003 且林之间存在双向信任关系时,NPS 支持跨林进行的身份验证,且无需 RADIUS 代理。 但是,如果将带有证书的 EAP-TLS 或 PEAP-TLS 用作身份验证方法,则必须使用 RADIUS 代理进行跨林身份验证。
下图显示了 NPS 用作 RADIUS 客户端与 RADIUS 服务器之间的 RADIUS 代理。
使用 NPS,各组织还可以在保留对用户身份验证、授权和记帐活动控制的同时,将远程访问基础结构外包给服务提供商。
可以为以下方案创建 NPS 配置:
- 无线访问
- 组织拨号或虚拟专用网络 (VPN) 远程访问
- 外包拨号或无线访问
- Internet 访问
- 对业务合作伙伴 Extranet 资源的经过身份验证的访问
RADIUS 服务器和 RADIUS 代理配置示例
以下配置示例演示如何将 NPS 配置成 RADIUS 服务器和 RADIUS 代理。
NPS 用作 RADIUS 服务器。 在本例中,NPS 配置为 RADIUS 服务器,默认连接请求策略是唯一配置的策略,所有连接请求都由本地 NPS 处理。 NPS 可以对帐户位于 NPS 域和受信域中的用户进行身份验证和授权。
NPS 用户 RADIUS 代理。 在本例中,NPS 配置为 RADIUS 代理,用于将连接请求转发到两个不受信任域中的远程 RADIUS 服务器组。 将删除默认连接请求策略,并创建两个新的连接请求策略,以将请求转发到两个不受信任的域。 在本例中,NPS 并不处理本地服务器上的任何连接请求。
NPS 同时作为 RADIUS 服务器和 RADIUS 代理。 除了可以指定在本地处理连接请求的默认连接请求策略之外,还创建了一个新的连接请求策略,以将连接请求转发到未受信任域中的 NPS 或其他 RADIUS 服务器。 此处的第二个策略命名为代理策略。 在此示例中,代理策略首先出现在策略的有序列表中。 如果连接请求与代理策略匹配,连接请求将被转发到远程 RADIUS 服务器组中的 RADIUS 服务器。 如果连接请求与代理策略不匹配,但与默认连接请求策略匹配,NPS 会在本地服务器上处理该连接请求。 如果连接请求与任一策略不匹配,则丢弃该连接请求。
NPS 用作具有远程计帐服务器的 RADIUS 服务器。 在此示例中,本地 NPS 未配置为执行计帐,并且修改了默认连接请求策略,以便将 RADIUS 计帐消息转发到远程 RADIUS 服务器组中的 NPS 或其他 RADIUS 服务器。 尽管会转发计帐消息,但不会转发身份验证和授权消息,并且本地 NPS 会为本地域和所有受信任域执行这些功能。
具有远程 RADIUS 到 Windows 用户映射的 NPS。 在此示例中,通过将身份验证请求转发到远程 RADIUS 服务器,并同时使用本地 Windows 用户帐户进行授权,NPS 同时充当了每个单个连接请求的 RADIUS 服务器和 RADIUS 代理。 通过将“远程 RADIUS 到 Windows 用户映射”属性配置为连接请求策略的条件,从而实现此配置。 (此外,必须在本地 RADIUS 服务器上创建与远程用户帐户名称相同的用户帐户,远程 RADIUS 服务器针对该远程用户帐户执行身份验证。)
配置
若要将 NPS 配置为 RADIUS 服务器,可以使用 NPS 控制台或服务器管理器中的标准配置或高级配置。 若要将 NPS 配置为 RADIUS 代理,则必须使用高级配置。
标准配置
使用标准配置将提供向导,有助于针对以下方案配置 NPS:
- 用于拨号或 VPN 连接的 RADIUS 服务器
- 用于 802.1X 无线或有线连接的 RADIUS 服务器
若要使用向导配置 NPS,请打开 NPS 控制台,选择上述方案之一,然后单击打开向导的链接。
高级配置
使用高级配置时,可以手动将 NPS 配置为 RADIUS 服务器或 RADIUS 代理。
若要使用高级配置来配置 NPS,请打开 NPS 控制台,然后单击“高级配置”旁边的箭头,展开该部分。
将提供以下高级配置项。
配置 RADIUS 服务器
若要将 NPS 配置为 RADIUS 服务器,您必须配置 RADIUS 客户端、网络策略和 RADIUS 记帐。
有关进行这些配置的说明,请参阅以下主题。
配置 RADIUS 代理
若要将 NPS 配置为 RADIUS 代理,您必须配置 RADIUS 客户端、远程 RADIUS 服务器组和连接请求策略。
有关进行这些配置的说明,请参阅以下主题。
NPS 日志记录
NPS 日志记录也称为 RADIUS 计帐。 应根据你的要求(即,将 NPS 用作 RADIUS 服务器、代理、NAP 策略服务器,还是这三种配置的任意组合)配置 NPS 日志记录。
若要配置 NPS 日志记录,必须配置希望使用事件查看器记录和查看的事件并确定要记录的其他信息。 另外,还必须决定是将用户身份验证和记帐信息记录到本地计算机上存储的文本日志文件中,还是记录到本地计算机或远程计算机的 SQL Server 数据库中。
有关详细信息,请参阅配置网络策略服务器计帐。