Azure AD应用注册修改Azure VM本地管理员密码的权限与配置方法
Azure VM本地管理员密码修改的应用身份配置与参数指南
MSAL参数正确取值
authority:单租户场景下填写https://login.microsoftonline.com/<你的Azure AD租户ID>,多租户通用场景可使用https://login.microsoftonline.com/common,生产环境优先使用单租户端点提升安全性。default_scope:针对Azure资源管理REST API,必须填写https://management.azure.com/.default,该值完全适配当前使用的客户端凭证流(应用密钥换访问令牌)流程,不要替换为自定义scope。
应用注册的权限配置步骤
注意:Azure资源管理类接口的权限校验,核心依托资源层面的RBAC(基于角色的访问控制),和AAD应用注册页配置的Graph类API权限属于两层校验体系,不要混淆配置逻辑。
- 核心授权流程:
- 打开对应应用注册的详情页,复制应用关联的对象ID,作为后续RBAC授权的识别标识。
- 定位到目标VM所在的订阅/资源组/VM资源本身,进入「访问控制(IAM)」配置页。
- 点击「添加」→「添加角色分配」,选择符合最小权限原则的
虚拟机参与者角色,该角色的权限完全覆盖VMAccess扩展的调用操作,无需授予所有者等高权限。 - 选择授权对象类型为「服务主体」,搜索并选中之前复制对象ID对应的应用服务主体,确认完成权限分配。
- 旧权限模型补充配置:如果沿用传统AAD权限校验逻辑,需要在应用注册的「API权限」板块,找到Azure服务管理对应的服务项,授予对应应用权限后,点击「代表租户授予管理员同意」,该配置为非必需项。
现有调用代码的常见问题修正
- 接口路径修正:当前代码里的PUT请求目标为VM根资源路径,该接口用于更新VM整体配置,并非VMAccess扩展的操作接口。正确的VMAccess扩展调用路径为:
https://management.azure.com/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s/extensions/VMAccessAgent?api-version=2020-12-01 - 参数适配修正:payload中的
location字段需要和目标VM的实际部署地域完全一致,不要硬编码固定值,避免触发位置不匹配的报错。 - 流程补充说明:VMAccess的密码修改为异步执行流程,接口返回200仅代表扩展请求已成功下发到Azure平台,实际密码修改的执行结果需要等VM上的代理完成任务后才算生效,建议后续增加扩展状态轮询逻辑确认执行结果。
内容的提问来源于stack exchange,提问作者Maksim
相关产品推荐
相关产品推荐

