使用Azure AD与Azure Storage PUT API时遇InvalidAuthenticationInfo错误
Azure存储AAD认证上传问题解答
核心问题分析与解答
1. 原流程的缺失点
你之前获取身份令牌时使用的scope是https://graph.microsoft.com/.default,这个scope对应的是Microsoft Graph API的权限,Azure Storage服务无法识别并验证该scope签发的令牌。Azure Storage要求必须使用针对自身服务的scope,也就是https://storage.azure.com/.default,只有用这个scope获取的access_token,才能被存储服务的REST API认可,这就是你之前返回401错误的根本原因。
关于你附带的疑问:完全可以将Storage Blob Data Contributor角色限定在容器级别。操作时直接找到目标存储容器,进入「访问控制(IAM)」页面,添加角色分配时选择Storage Blob Data Contributor角色,指定你的服务主体即可,无需在整个存储账户级别分配权限。
2. 官方文档对应内容位置
在Azure官方文档中:
- 「使用Azure AD认证访问Azure存储」章节明确规定了,针对Blob/队列服务获取AAD令牌时,必须使用
https://storage.azure.com/.default作为scope(或旧版资源标识https://storage.azure.com/); - 「Azure存储的RBAC权限管理」部分详细说明了在容器、Blob等细粒度层级分配数据角色的步骤,包含具体的操作路径和权限范围说明。
内容的提问来源于stack exchange,提问作者ericOnline
相关产品推荐
相关产品推荐

