微软Entra本地应用代理部署指南:零信任架构下的内网服务安全暴露方案
一、什么是微软Entra本地应用代理?
微软Entra本地应用代理(Microsoft Entra Application Proxy)是零信任架构(Zero Trust) 下的内网服务暴露解决方案,属于Microsoft Entra全球安全访问(Global Secure Access)的组件之一。它通过云端代理与本地连接器的组合,实现无需公网IP、无需暴露内网端口的安全访问,同时集成Microsoft Entra ID的身份认证(如SSO、条件访问),为内网应用(如Vaultwarden、企业内部系统)提供企业级安全保护。
它解决了传统Mesh VPN的子网接入问题与公网反代的安全风险,同时集成了Microsoft Entra ID的企业级身份与安全能力,可以快速将内网应用(如Vaultwarden)安全暴露至公网,实现“无需公网IP、无需端口映射”的便捷访问。
二、为什么选择微软本地应用代理?
相较于传统Mesh VPN(如Tailscale、Nebula)或公网反代(如Cloudflare Tunnel),微软本地应用代理的优势更贴合企业/个人的安全与便捷需求:
1. 无需公网IP与子网接入
- Tailscale, Nebula等Mesh VPN需要设备先加入企业子网(如安装客户端并连接),且依赖公网IP或中继服务器;而微软代理通过本地连接器(部署在内网的轻量客户端)实现云端与内网的通信,无需内网设备暴露公网IP。
2. 更安全的公网暴露方式
- Cloudflare Tunnel将内网服务直接暴露在公网(通过Cloudflare节点转发),存在被扫描或攻击的风险;微软代理则通过Microsoft Entra ID身份验证前置,只有经过授权的用户(甚至设备)才能访问,且流量全程加密。
3. 国内网络稳定性更优
- Cloudflare的国内节点覆盖有限,部分地区访问延迟较高;微软代理的云端服务依托Azure全球节点,国内用户访问延迟更低(如下图所示,亚洲连接器节点延迟约60-100ms,移动平均延迟60ms)。
微软本地应用代理日本节点延迟表现,延迟约60-100ms
4. 集成企业级身份与安全能力
- 支持单一登录(SSO) :用户通过Microsoft Entra ID登录后,无需重复输入密码访问内网应用;
- 支持条件访问(Conditional Access) :可设置访问规则(如仅Intune管理的设备、仅公司网络、需多因素认证);
- 支持负载均衡:通过多个连接器组实现内网应用的高可用。
三、体系结构与工作流程
微软本地应用代理的核心逻辑是云端代理+本地连接器的双向通信,以下是详细身份验证与访问流程(参考微软官方示意图):
流程说明:
- 用户发起访问:用户通过自定义域名(如
vaultwarden.changjiu365.com
)访问内网应用,被重定向至Microsoft Entra登录页; - 身份认证与条件检查:用户输入凭证登录,Microsoft Entra ID验证身份,并执行条件访问策略(如检查设备是否合规、是否在公司网络);
- 发放访问令牌:认证通过后,Microsoft Entra ID向用户设备发送OAuth 2.0访问令牌(包含用户身份信息);
- 令牌传递至云端代理:用户设备将令牌发送至微软本地应用代理服务,代理提取令牌中的用户主体名称(UPN)与安全主体名称(SPN);
- 本地连接器转发请求:云端代理将请求转发至本地连接器(部署在内网的客户端),连接器验证令牌有效性后,将请求转发至内网应用(如Vaultwarden的内部地址
http://192.168.12.100:8880
); - 应用响应与返回:内网应用处理请求并返回结果,连接器将结果转发至云端代理,最终返回给用户。
四、许可证要求
微软本地应用代理需要以下Microsoft Entra ID许可证(任一即可):
- Microsoft Entra ID P1/P2;
注:本文使用的是Microsoft Entra ID P2许可证,符合上述要求。
五、部署步骤(以Vaultwarden为例)
1. 准备工作
- 管理员权限:需要Microsoft Entra全局管理员或应用代理管理员权限;
- 内网服务:已部署并运行的内网应用(如Vaultwarden,内部地址为
http://192.168.12.100:8880
); - 自定义域名:已注册的域名(如
changjiu365.com
),用于访问内网应用; - SSL证书:自定义域名的PFX格式证书(包含私钥,用于HTTPS加密)。
2. 创建专用连接器组
连接器组是本地连接器的逻辑分组,用于管理不同区域或用途的内网应用(如“亚洲区连接器组”用于处理亚洲用户的请求)。
操作步骤:
- 登录Microsoft Entra管理中心;
- 导航至全球安全访问→专用网络连接器;
- 点击“+ 新建连接器组”,输入组名称(如“asia”),选择地区(如“亚洲”),点击“创建”。(连接器组就是我们之后访问的节点地区,我选择的亚洲节点也日本的。)
Microsoft Entra管理中心-创建专用连接器组:输入名称与地区
3. 安装本地连接器客户端
连接器是部署在内网的轻量客户端,用于建立云端代理与内网应用的通信。
操作步骤:
- 在连接器组页面,点击“下载连接器”(对应操作系统为Windows);
- 运行安装程序,使用Microsoft Entra全局管理员账号登录;
- 安装完成后,连接器会自动加入之前创建的“asia”组(无需额外配置)。
Microsoft Entra连接器下载界面:点击下载并安装
4. 发布本地应用程序
(1)配置本地DNS解析(内部URL必备)
微软本地应用代理的内部URL(即内网应用的访问地址)不支持直接填写IP地址,必须使用域名(如192.168.12.86.local.changjiu365.com
)。因此需要通过内网DNS服务器(或路由器的DNS设置、 hosts文件)将本地域名解析到内网应用的IP地址(如192.168.12.86
)。
操作示例(以路由器DNS设置为例):
登录路由器管理界面(如
192.168.1.1
);找到“DNS设置”→“本地域名解析”(或“主机名映射”);
添加一条记录:
- 主机名:
vaultwarden.local.changjiu365.com
(自定义的本地域名); - IP地址:
192.168.12.86
(内网应用的实际IP);
- 主机名:
保存设置,确保内网设备能通过该本地域名访问应用(如在浏览器输入
http://192.168.12.86.local.changjiu365.com
验证)。
(2)配置公网DNS解析(外部URL必备)
外部URL是用户从公网访问内网应用的自定义域名(如vaultwarden.changjiu.com
),需要将其指向微软本地应用代理的默认域名(格式为*.msappproxy.net
,可在应用创建后获取)。
操作步骤:
登录域名注册商的DNS管理界面(如阿里云、腾讯云);
为自定义域名(如
vw.changjiu365.com
)添加CNAME记录:- 主机记录:
vw
(根据需求填写,如@
代表根域名); - 记录类型:
CNAME
; - 记录值:微软本地应用代理的默认域名(如
vw-{tenant}.msappproxy.net
,可在应用创建后进入“应用代理详情页→自定义域名”获取);
- 主机记录:
保存设置,等待DNS生效(通常需要10-30分钟)。
关键说明:
- 内部URL:用于本地连接器访问内网应用,必须是本地域名(如
192.168.12.86.local.changjiu365.com
),需通过内网DNS解析到内网IP; - 外部URL:用于用户从公网访问,必须是公网域名(如
vw.changjiu365.com
),需通过公网DNS解析到微软代理的默认域名;
(2)创建应用代理
操作步骤:
导航至Microsoft Entra管理中心→应用→企业应用;
点击“+ 新建应用”→“添加本地应用程序”;
填写应用基本信息:
Microsoft Entra本地应用代理创建:填写内部/外部URL及连接器组 名称:应用名称(如“vaultwarden”);
内部URL:内网应用的访问地址(如
http://192.168.12.86:80
);外部URL:自定义域名(如
https://vaultwarden.example.com
);连接器组:选择之前创建的“asia”;
点击“下一步”,进入高级设置:
Microsoft Entra本地应用代理高级设置:启用仅限HTTP cookie与永久性Cookie 勾选“使用仅限HTTP cookie”:阻止客户端脚本访问cookie,防止XSS攻击;
勾选“使用永久性Cookie”:浏览器重启后无需重新登录(提升用户体验);
点击“创建”,完成应用代理创建。
(3)分配用户/组访问权限
默认情况下,所有用户无法访问新建的应用代理,需手动分配权限:
- 进入应用代理详情页,点击“分配用户和组”;
- 点击“+ 添加用户/组”,选择需要访问的用户(如自己的账号),点击“分配”。
Microsoft Entra应用代理权限分配:添加可访问的用户/组
(4)上传SSL证书(自定义域名必备)
若使用自定义域名(如vw.changjiu365.com
),需上传PFX格式的SSL证书(包含私钥),用于HTTPS加密:
- 进入应用代理详情页,点击“自定义域名”;
- 点击“上传证书”,选择本地的PFX证书文件,输入证书密码;
- 点击“保存”,证书将自动绑定至自定义域名。
Microsoft Entra应用代理SSL证书上传:选择PFX文件并输入密码
5. 后续配置与验证
(1)条件访问策略(可选)
为提升安全性,可设置条件访问策略(如仅允许Intune管理的设备访问):
- 导航至Microsoft Entra管理中心→安全→条件访问;
- 点击“+ 新建策略”,输入策略名称(如“Vaultwarden-Access-Policy”);
- 选择“云应用或操作”→“选择应用”,选择之前创建的“Vaultwarden-Internal”;
- 选择“条件”→“设备平台”(如仅允许Windows设备)或“位置”(如仅允许公司网络);
- 选择“授予”→“需要设备标记为合规”(需Intune集成),点击“创建”。
(2)验证访问
- 打开浏览器,访问自定义域名(如
https://vw.changjiu365.com
); - 重定向至Microsoft Entra登录页,输入账号密码完成身份验证(若浏览器已登录微软账户,则无需额外输入凭证,可直接跳转访问);
- 登录成功后,即可访问内网的Vaultwarden服务。
Vaultwarden通过微软本地应用代理访问成功:重启浏览器无需重新登录
参考文档: