可以向连接到您的点到站点 (P2S) VPN 网关的用户,根据他们的标识或身份验证凭据,分配来自特定地址池的 IP 地址。 这是通过创建特定策略并将其与组关联的来实现的。 若要了解此功能的概念和术语以及配置注意事项和限制,请参阅 关于用户组和 IP 地址池。
本文介绍如何使用 Azure 门户配置策略组、组成员和设置组的优先级。
Prerequisites
VPN 网关。 本文假设你有一个 VPN 网关。 在本文中,我们将使用证书身份验证和Microsoft Entra身份验证为点到站点(P2S)连接配置网关,以演示多个地址池功能。 您的网关必须使用非基本 SKU 的其他 SKU 才能支持点到站点连接。 如果需要创建 VPN 网关,请参阅以下文章:
- 使用 Azure 门户创建 VPN 网关
- 使用 PowerShell 创建 VPN 网关
使用 Azure CLI
Entra 的权限。 如果计划使用Microsoft Entra身份验证,则需要在Microsoft Entra中具有适当的权限才能查看组对象 ID 并将用户分配到组。 有关Microsoft Entra权限的详细信息,请参阅 Microsoft Entra 内置角色。 在本练习中,我们使用 2 个Microsoft Entra组及其对象 ID 来配置此功能的策略组和成员。 我们不会在本文中演练创建 Microsoft Entra ID 组或将用户分配到这些组的步骤,但可以在 Enterprise 用户管理文档中找到有关管理 Microsoft Entra 组的详细信息。
Workflow
本文使用以下工作流来帮助为 P2S VPN 网关连接设置用户组和 IP 地址池。
- 考虑配置要求。
- 选择身份验证机制。
- 配置 VPN 网关。
- 创建组。
- 关联地址池。
- 应用配置设置。
配置要求
本部分列出了用户组和 IP 地址池的配置要求和限制。
单个 P2S VPN 网关可引用的最大组数为 90 个。 分配给网关的各个组中,策略/组成员条目(用于确定正在连接的用户属于哪个组的条件)的最大数量为 390。 但是,如果某个组被分配给同一网关上的多个连接配置,则该组及其成员会被重复计入限额。 例如,如果包含 10 个成员的策略组已分配到网关上的 3 个 VPN 连接配置, 此配置将计为 3 个总共包含 30 个成员的组,而不是 1 个包含 10 个成员的组。 连接到网关的并发用户总数受网关缩放单元和分配给每个用户组的 IP 地址数的限制,但不受与网关关联的策略/组成员数的限制。
将某个组创建为 VPN 服务器配置的一部分后,无法修改该组的名称和默认设置。
组名称应不同。
数字优先级较低的组在数字优先级较高的组之前进行处理。 如果连接用户是多个组的成员,则网关在分配 IP 地址时,将其视为数字优先级较低的组的成员。
无法删除现有点到站点 VPN 网关正在使用的组。
可以通过单击与该组对应的上下箭头按钮来重新排列组的优先级。
- 地址池不能与其他连接配置中使用的地址池重叠(相同或不同的网关)。
- 地址池也不能与虚拟网络地址空间、虚拟中心地址空间或本地地址重叠。
- 地址池的大小不能小于 /24。 例如,不能分配 /25 或 /26 的范围。
选择身份验证类型
可以创建多个用户组,每个用户组都有不同的身份验证类型。 当用户连接到 VPN 网关时,身份验证类型用于将用户与特定用户组匹配。 支持以下身份验证类型:
Microsoft Entra身份验证:Microsoft Entra身份验证允许Microsoft Entra组对象 ID 定义用户组。
可以使用现有的Microsoft Entra组或创建新组以用于 VPN 网关配置。
若要创建和管理Microsoft Entra 组,请参阅 “管理Microsoft Entra 组和组成员身份。
需要将 Microsoft Entra 用户组 对象 ID (而不是组名称)指定为点到站点配置的一部分。 在此示例中,我们将使用:
- 工程组为 {ObjectId1}
- 财务组作为 {ObjectId2}
Microsoft Entra 用户可以分配为多个 Active Directory 组的一部分,VPN 网关将用户视为 VPN 用户/策略的一部分。 如果用户属于多个组,则在点到站点连接中选择具有最低数值优先级的组。
RADIUS - NPS 供应商特定的属性:对于网络策略服务器(NPS)特定于供应商的属性配置信息,请参阅 RADIUS - 为特定于供应商的属性配置 NPS。
证书身份验证:基于证书的身份验证允许用户组由数字证书中的公用名(CN)字段定义。 若要生成自签名证书,请参阅 使用 PowerShell 为点到站点生成和导出证书。
若要生成具有特定公用名的证书,请运行 PowerShell 命令时,将 xx@domain.com 参数更改为相应的值(例如
New-SelfSignedCertificate)。例如,可以使用以下 主题生成证书:
数字证书字段 Value Description 主题 CN= cert@marketing.contoso.com 营销部门的数字证书 主题 CN= cert@sale.contoso.com 销售部门的数字证书 具有数字证书身份验证的多个地址池功能适用于基于 “使用者” 字段的特定用户组。 选择条件不适用于主题备用名称(SAN)证书。
如果要在其证书中指定 SAN,则必须与主题相同,以便多池功能能够正常工作。 主题与 SAN 之间的差异会导致问题。
以.cer格式导出证书(不含私钥),并保存到可以访问证书的位置。 需要打开.cer文件,并在配置网关时复制后续步骤中要使用的公共证书数据。
配置 VPN 网关
以下配置将设置 VPN 网关,以使用客户端地址池和身份验证选项,这些是策略组和 P2S 连接的 IP 地址池所必需的。 该配置还包括创建策略成员、创建虚拟网络网关策略组和创建 VPN 客户端连接配置的步骤。
以下步骤使用以下身份验证选项:
Azure证书。 有关证书身份验证值的信息,请参阅 配置 P2S VPN 网关证书身份验证的服务器设置。 这种类型的身份验证仅适用于 IKEv2 和 OpenVPN 隧道类型。
Microsoft Entra。 有关 Microsoft Entra 身份验证值的信息,请参阅 为 Microsoft Entra 身份验证配置 P2S VPN 网关。 这种类型的身份验证仅适用于 OpenVPN 隧道类型。
在 Azure 门户中,导航至 VPN 网关。 在 “设置”下,选择 “点到站点配置”。 配置 地址池、 隧道类型、 IPsec/IKE 策略和 身份验证类型的 值,如以下示例所示。
对于 地址池,请指定 x.x.x.0/24 格式的值以连接 不属于 多个地址池配置的 VPN 客户端。
对于 Authentication 类型,请选择Azure证书和Microsoft Entra身份验证类型,以便同时使用身份验证机制和多个地址池功能。
对于 隧道类型,请选择最适合方案的隧道类型。 例如,IKEv2 和 OpenVPN。 此方案不支持 SSTP。
使用记事本之类的文本编辑器打开该证书。 复制证书数据时,请确保将文本复制为一个连续行,不包括页眉和页脚行(-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----)。 复制的数据应类似于以下值:
接下来,转到 “虚拟网络网关 -> 点到站点配置 ”页 根证书 部分。 仅当为身份验证类型选择了 Azure 证书时,此部分才可见。 请按照以下示例填写数值。
- 对于“根证书 名称” 字段,请输入根证书的名称。 此名称用于标识门户中的证书,不需要匹配证书本身中的任何值。
- 对于 “公共证书数据 ”字段,请粘贴在上一步中从.cer文件复制的数据。
- 对于 {TenantID} 使用相应的 Microsoft Entra 租户 ID (不含大括号)。
- 对于 {AudienceID},其对应的值为 Microsoft 注册的 Azure VPN 客户端应用程序 ID。 还可以在此字段中使用 自定义受众 。
- 对于 Issuer URI,请输入值,格式为
https://sts.chinacloudapi.cn/{TenantID}/,其中 {TenantID} 是你的 Microsoft Entra 租户 ID,不带大括号。
输入值后,选择“ 保存” 以保存配置。
配置策略组和策略成员
在本部分中,我们将创建四个策略组(用户组)和四个策略成员(组成员)。 单个成员与每个策略组相关联。
策略组(用户组) 是应从同一地址池分配 IP 地址的用户组的逻辑表示形式。 策略组由策略成员组成。 一个组可以包含多个成员。
策略成员(组成员) 基于身份验证类型和属性值。 策略成员与单个用户不对应,而是定义用于确定连接用户所属的组的条件。 属性值用于在连接到 VPN 网关时匹配策略成员。 有关这些概念的详细信息,请参阅 关于 P2S 连接的用户组和 IP 地址池。
下表中,为每个策略组分配了策略成员、数字 组优先级,还定义了 默认策略组 。
默认策略组是用户在连接时分配给的组(如果它们与网关上配置的任何其他策略组不匹配)。 在此示例中,选择 policyGroup1 作为默认策略组。
方案表
| 策略组名称 | 默认策略 | Priority | 策略成员对象 |
|---|---|---|---|
| policyGroup1 | True | 0 | 成员1 |
| policyGroup2 | false | 1 | 成员2 |
| policyGroup3 | false | 2 | member3 |
| policyGroup4 | false | 3 | member4 |
策略组负责授权连接。 这些连接使用具有在公用名(CN)字段中指定以下值的数字证书,或使用指定组对象 ID 的 Microsoft Entra 组。
在整理详细信息时,为本次练习,策略组和成员配置了以下身份验证类型和属性值:
| 成员名称 | 身份验证类型 | 属性值 |
|---|---|---|
| 成员1 | 证书:组 ID | marketing.contoso.com |
| 成员2 | 证书:组 ID | sale.contoso.com |
| member3 | Azure AD:组 ID | {ObjectId1} |
| member4 | Azure AD:组 ID | {ObjectId2} |
策略组和成员的细分值如下所示:
具有公用名的客户端证书的两个策略组。
yourServiceName@marketing.contoso.comyourServiceName@sale.contoso.com
与成员关联的策略组:
- policyGroup1:具有 member1 的 marketing.contoso.com
- policyGroup2:sale.contoso.com 含有 member2
在 Microsoft Entra 中创建了两个策略组(将 ObjectId1/ObjectId2 替换为您的对象 ID 值)。
- 工程组
{ObjectId1} - 金融
{ObjectId2}
与成员关联的策略组:
- policyGroup3:{ObjectId1},成员3
- policyGroup4: {ObjectId2},带成员4
- 工程组
在门户中开始创建策略组和成员之前,必须先启用 用户组 功能。
启用用户组
默认情况下,“用户组”选项处于禁用状态。 在继续学习下一部分之前,必须启用此功能。
转到 VPN 网关 -> 设置 -> 点对站点配置。 在“ 用户组 ”选项卡上,选择“ 启用”。
创建策略组和成员
在本部分中,将基于身份验证类型和属性值创建策略组和策略成员。
member1 和 member2 基于数字证书身份验证(身份验证类型: CertificateGroupID)。
member3 和 member4 基于Microsoft Entra身份验证(身份验证类型:AADGroupID)。
- {ObjectId1} 和 {ObjectId2}是表示Microsoft Entra租户中两个不同的组 ID 的值。
创建策略成员时,使用该表引用身份验证类型和属性值。
| 成员名称 | 身份验证类型 | 属性值 |
|---|---|---|
| 成员1 | 证书组ID | marketing.contoso.com |
| 成员2 | 证书组ID | sale.contoso.com |
| member3 | AADGroupID | {ObjectId1} |
| member4 | AADGroupID | {ObjectId2} |
配置证书身份验证策略组
在门户中指定组名称。 在“ 点到站点配置 ”页的“ 用户组 ”选项卡上,为 “组名称 ”值指定名称 policyGroup1。
单击“ 配置组 ”打开“ 配置组设置 ”页。
在 “配置组设置” 页上,定义 policyGroup1 的身份验证和属性值。 例如,如果使用证书身份验证,请将身份验证类型指定为Certificate:GroupID,并将属性值指定为证书的公用名值(在本例中,marketing.contoso.com)。
单击“ 添加 ”将设置添加到 policyGroup1。
重复上述步骤,使用其各自的设置创建 policyGroup2 (证书:具有属性值 sale.contoso.com 的 GroupID)。
Azure门户显示默认组选择消息:
配置Microsoft Entra身份验证策略组
重复上一部分中的步骤,使用以下设置创建 policyGroup3 和 policyGroup4 :
- 对于 policyGroup3,请将身份验证类型指定为 AAD:GroupID,并将属性值指定为代表工程部门的 Microsoft Entra 组的对象 ID ({ObjectId1})。
- 对于 policyGroup4,请将身份验证类型指定为 AAD: GroupID,并将属性值指定为表示财务部门的 Microsoft Entra 组的对象 ID ({ObjectId2})。
注释
在此示例中,大括号 {} 用于指示占位符。 例如 {ObjectId1},将 {ObjectId1} 替换为实际
Entra Object ID值,并且不包括最终值中的大括号。配置用于 Microsoft Entra 身份验证的组设置。 创建四个策略组和成员后,门户应类似于此示例:
将地址池关联到每个策略组
VPN 配置定义四个不同的地址池,每个池都链接到特定的策略组。 当用户连接到 VPN 时,网关会根据策略组按优先级顺序评估用户的凭据。 如果用户的凭据与策略组匹配,则会从与该策略组关联的地址池中为其分配 IP 地址。 如果没有匹配项,则为用户分配默认地址池中的 IP 地址。
为每个策略组分配一个唯一的地址池:
| 地址池 | PolicyGroup |
|---|---|
| x.x.1.0/24 | policyGroup1:marketing.contoso.com |
| x.x.2.0/24 | policyGroup2:sale.contoso.com |
| x.x.3.0/24 | policyGroup3:工程 {ObjectId1} |
| x.x.4.0/24 | policyGroup4:Finance {ObjectId2} |
在“点到站点配置”页的“用户组”选项卡上,在“地址池”下,单击“配置”为每个策略组配置地址池。 在此示例中,PolicyGroup1 的地址池为 192.169.1.0/24。
重复相同的步骤,为其他三个策略组配置地址池。
注释
至少,策略组必须至少有一个客户端地址池。 但是,可以将多个客户端地址池分配给策略。 没有客户端地址池的策略组的配置失败。 分配给不同组地址池的客户端地址池不能重叠,并且需要唯一。
配置地址池后,选择 默认策略 (例如 policyGroup1)。 选择其中一个 policyGroups 中的标志按钮。 默认策略是用户在连接时分配给的策略组(如果它们与网关上配置的任何其他策略组不匹配)。
将配置应用到网关
此时,多个地址池设置类似于此逻辑结构。
| 默认策略 | Priority | 策略组名称 | 策略成员 | 身份验证类型 | 组配置值 | VPN 客户端地址池 |
|---|---|---|---|---|---|---|
| X | 0 | policyGroup1 | 成员1 | 证书组ID | marketing.contoso.com | x.x.1.0/24 |
| 1 | policyGroup2 | 成员2 | 证书组ID | sale.contoso.com | x.x.2.0/24 | |
| 2 | policyGroup3 | member3 | AADGroupID | {ObjectId1} | x.x.3.0/24 | |
| 3 | policyGroup4 | member4 | AADGroupID | {ObjectId2} | x.x.4.0/24 |
单击“ 保存 ”将配置应用到网关。 应用配置后,当用户连接到 VPN 网关时,会从与身份验证凭据或标识匹配的策略组关联的地址池中为其分配 IP 地址。
在所有多组地址池的配置提交过程中,VPN 网关会显示 更新 状态。
如果出现问题
以下是为 P2S 连接配置策略组和 IP 地址池时可能会遇到的一些常见问题,以及帮助你解决这些问题的故障排除步骤。
验证数据包是否具有正确的属性? Wireshark 或其他数据包捕获可以在 NPS 模式下运行,并使用共享密钥解密数据包。 可以验证数据包是否正从 RADIUS 服务器发送到配置了正确的 RADIUS VSA 的点到站点 VPN 网关。
是否为用户分配了错误的 IP? 设置并检查 NPS 事件日志记录以进行身份验证,无论用户是否匹配策略。
遇到地址池问题? 每个地址池都在网关上指定。 地址池拆分为两个地址池,并分配给点到站点 VPN 网关对中的每个主动-主动实例。 这些拆分地址应显示在有效的路由表中。 例如,如果指定 10.0.0.0/24,则应在有效路由表中看到两个“/25”路由。 如果不是这种情况,请尝试更改网关上定义的地址池。
P2S 客户端无法接收路由? 确保所有点到站点 VPN 连接配置都关联到 defaultRouteTable,并传播到同一组路由表。 如果使用门户,则应自动配置此项,但如果使用的是 REST、PowerShell 或 CLI,请确保正确设置所有传播和关联。
您无法使用 Azure VPN 客户端启用多池吗? 如果使用 Azure VPN 客户端,请确保安装在用户设备上的 Azure VPN 客户端是最新版本。 需要再次下载客户端才能启用此功能。
所有用户都被分配到默认组了吗? 如果使用Microsoft Entra身份验证,请确保服务器配置中的租户 URL 输入
(https://login.chinacloudapi.cn/<tenant ID>)不会以\结尾。 如果 URL 的输入以\结尾,网关将无法正确处理 Microsoft Entra 用户组,并且所有用户都将被分配到默认组。 若要修正,请修改服务器配置以删除尾随\并修改网关上配置的地址池,以将更改应用到网关。 这是已知问题。尝试邀请外部用户使用 Multipool 功能? 如果使用Microsoft Entra身份验证,并且计划邀请外部用户(不属于 VPN 网关上配置的Microsoft Entra域的用户)连接到 VPN 网关,请确保外部用户的用户类型为 Member 而不是 Guest。 此外,请确保将用户的“名称”设置为用户的电子邮件地址。 如果未正确设置连接用户的用户类型和名称,或者无法将外部成员设置为 Microsoft Entra 域的“成员”,则连接用户将分配到默认组,并从默认 IP 地址池分配 IP。