如何针对Azure AD用户/组实现Azure P2S VPN细粒度访问控制
多P2S VPN网关细粒度权限管控实现方法
完全可以实现安全组和特定P2S VPN网关的绑定授权,不需要依赖基于IP的NSG规则,你现在遇到的跨网关越权问题,核心原因是所有网关默认共用了微软发布的全局「Azure VPN」企业应用,只要用户在这个全局应用的授权组里,拿到任意网关的配置文件就能接入,具体落地步骤如下:
- 为每台P2S网关创建独立的Azure AD自定义应用注册
不要用全局统一的Azure VPN企业应用做鉴权入口。针对每个客户/项目对应的独立网关,单独在Azure AD中注册专属的应用注册,配置和原生Azure VPN一致的重定向URI、API访问权限,每个应用单独开启需要用户分配开关,仅将对应项目允许访问的Azure AD安全组添加到该应用的授权用户/组列表中,不在列表里的用户无法获取该应用的访问令牌。 - 逐台更新网关的Azure AD认证配置
进入每台虚拟网络网关的点到点配置页面,将原有全局Azure VPN应用对应的租户ID、应用ID、受众三个参数,替换为该网关专属自定义应用的对应参数,保存配置后重新生成并下发对应网关的VPN客户端XML配置文件。
配置生效后,用户导入某台网关的配置文件发起连接时,Azure AD会直接校验该用户是否在这台网关绑定的自定义应用的授权组内,哪怕用户手里有其他网关的配置文件,只要不在对应应用的授权组里,会直接在认证阶段被拦截,根本拿不到VPN接入权限,更访问不到对应虚拟网络里的资源。 - 可选增强管控
你可以针对每个网关绑定的自定义企业应用,单独配置条件访问策略,比如要求接入设备合规、强制MFA、限制登录位置等,这些策略逐应用生效,不会和其他网关的管控规则冲突。
说明:NSG基于IP做限制的方案不适用是预期内的,OpenVPN模式下P2S地址池的IP是用户拨号时动态分配的,没有和用户身份做静态绑定,在网络层靠IP做身份管控天然不可靠。上述方案是在身份认证层完成鉴权,在用户拿到VPN内网IP之前就完成了权限校验,完全规避了动态IP带来的管控问题。
内容的提问来源于stack exchange,提问作者Stephan Bisschop
相关产品推荐
相关产品推荐

