如何限制Azure VM登录及服务访问仅允许Active Directory用户?
解决Azure VM仅允许AD用户登录及访问HTTP服务的问题
一、限制RDP仅允许Azure AD用户登录
清理本地账户远程登录权限
- 登录VM后,打开
gpedit.msc(本地组策略编辑器) - 导航路径:
计算机配置 > Windows 设置 > 安全设置 > 本地策略 > 用户权限分配 > 允许通过远程桌面服务登录 - 删除列表内所有本地用户/组(如Administrators、自定义本地账户),仅保留需授权的Azure AD组/用户(格式为
AzureAD\组名或AzureAD\用户名) - 可同步检查
拒绝通过远程桌面服务登录项,添加本地管理员账户进一步限制其远程访问
- 登录VM后,打开
更新本地远程桌面用户组
- 以管理员权限打开命令提示符,执行命令移除本地用户:
net localgroup "Remote Desktop Users" /delete 本地用户名 - 添加Azure AD组到远程桌面用户组:
net localgroup "Remote Desktop Users" /add "AzureAD\你的AD组名称"
- 以管理员权限打开命令提示符,执行命令移除本地用户:
验证生效
- 重启VM后,尝试用本地账户RDP登录会被拒绝;仅VM Azure AD登录配置中授权的用户/组可成功登录
二、限制HTTP服务仅允许Azure AD用户访问
根据服务类型选择对应方案:
方案1:服务部署在IIS上
- 打开IIS管理器,找到目标网站,进入身份验证功能:
- 禁用
匿名身份验证 - 启用
Windows身份验证(需确保VM已启用Azure AD登录扩展)
- 禁用
- 进入授权规则,添加允许规则,仅指定Azure AD用户/组访问,拒绝所有其他用户
方案2:自定义服务(如Python/Node.js等)
- Azure AD应用代理发布:将VM上的HTTP服务通过Azure AD应用代理发布,所有访问请求需先完成Azure AD身份验证,仅授权用户可访问
- 代码集成身份验证:在服务中实现OAuth2.0/OpenID Connect验证逻辑,要求请求携带有效的Azure AD JWT令牌才能访问资源
- 反向代理拦截:部署Nginx等反向代理,配置Azure AD身份验证模块,拦截未授权请求,强制用户完成AD登录
方案3:NSG+条件访问(进阶)
- 配置NSG限制仅特定IP范围访问VM的HTTP端口,同时配合Azure AD条件访问策略,仅允许授权AD用户从合规设备/指定位置访问服务
内容的提问来源于stack exchange,提问作者Angela
相关产品推荐
相关产品推荐

