You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure文件存储:控制/数据平面API的OAuth权限范围与单点认证问题

Azure存储控制平面与数据平面OAuth认证问题解答

a) 从https://management.azure.com/user_impersonation范围获取的Bearer令牌能否用于数据平面API?

不能。Azure控制平面(ARM)和存储数据平面API的OAuth令牌受众(aud字段)完全不同:

  • 控制平面令牌的受众为https://management.azure.com,仅适用于调用资源管理类接口(如创建文件共享)。
  • 存储数据平面要求令牌的受众是对应存储账户的专属域名(如https://{account}.file.core.windows.net),且必须包含该存储服务的user_impersonation范围。
    受众不匹配时,数据平面API会直接返回AuthenticationFailed认证错误。

b) 如何通过一次OAuth认证同时完成创建共享与创建文件操作?

要实现一次认证获取能访问两类API的令牌,需按以下步骤操作:

1. 配置应用注册权限

在Azure AD应用注册中,添加并确认两类权限:

  • 添加https://management.azure.com/user_impersonation权限(根据你的认证流程选择应用权限或用户权限),并完成管理员同意(应用权限)或用户同意(用户流程)。
  • 添加目标存储账户的https://{account}.file.core.windows.net/user_impersonation权限,同样完成同意流程。

2. 正确构造多范围请求

在OAuth授权码流程中,请求授权码时必须包含所有需要的范围,范围用空格分隔,示例格式:

offline_access https://management.azure.com/user_impersonation https://your-storage-account.file.core.windows.net/user_impersonation

注意:

  • 必须将your-storage-account替换为实际的存储账户名称,不能保留占位符{account}。
  • 确保范围字符串无多余空格或无效内容,否则会触发“scope cannot be empty”类错误。

3. 验证令牌有效性

获取令牌后,可通过JWT解码工具查看scp字段,确认是否包含两类API的user_impersonation范围;同时aud字段会包含对应资源的标识,确保令牌能被两类API识别。

内容的提问来源于stack exchange,提问作者jennie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:04:58