如何在Azure门户验证应用服务系统托管标识配置有效性
验证Azure应用服务系统托管标识配置的方法
1. 确认应用服务系统托管标识已启用
- 登录Azure门户,定位到目标应用服务
- 左侧导航选择标识 > 系统分配标签页
- 确认状态为开启,并复制页面上的对象(主体)ID,后续验证会用到
2. 检查Azure SQL数据库的AD权限配置
- 进入目标Azure SQL数据库资源页
- 左侧导航选择安全性 > Active Directory管理员,确保已配置有效的Azure AD管理员(无此配置则无法添加AD身份的数据库用户)
- 通过SQL数据库的查询编辑器(以AD管理员身份登录)执行以下查询,确认托管标识已被授予数据库访问权限:
SELECT name, type_desc FROM sys.database_principals WHERE name = '<替换为应用服务的对象(主体)ID>' OR name = '<替换为应用服务名称>'
提示:若通过Azure门户添加AD用户,通常以应用服务名称作为用户名;手动创建的可能使用对象ID。查询结果需能找到对应的数据库主体,且该主体已被分配合适的数据库角色(如
db_datareader、db_datawriter)
3. 在应用服务内测试令牌获取
- 返回应用服务资源页,左侧导航选择开发工具 > 高级工具,点击Go进入Kudu控制台
- 切换到Debug console > PowerShell,执行以下命令尝试获取Azure SQL的访问令牌:
Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://database.windows.net/' -Headers @{Metadata="true"}
若返回包含
access_token的JSON响应,说明托管标识能正常获取令牌;若返回错误,可根据错误信息定位问题(如权限缺失、网络阻断等)
4. 排查应用服务与SQL数据库的网络连通性
- 进入应用服务的网络配置页:
- 检查VNet集成:若SQL数据库配置了VNet防火墙,需确保应用服务已加入允许访问的VNet/子网
- 检查访问限制:若SQL数据库设置了IP防火墙规则,需确认应用服务的所有出站IP已添加到允许列表,或开启SQL数据库的“允许Azure服务和资源访问此服务器”选项
内容的提问来源于stack exchange,提问作者Rajesh Kasani
相关产品推荐
相关产品推荐

