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

使用托管标识访问Azure存储账户的scope参数及对接实现方法

对应scope参数

你场景下需要传入的scope为 https://storage.azure.com/.default,如果需要限定仅能访问指定存储账户,也可以使用 https://<你的存储账户名称>.blob.core.windows.net/.default。

前置配置要求

  • 你使用的App Registration需要在目标存储账户的「访问控制(IAM)」中,被分配存储Blob数据参与者角色(仅分配普通的参与者/所有者角色无效,该类角色为存储资源的控制平面权限,不包含Blob数据的读写权限)
  • 角色分配后需要等待1-2分钟让权限生效,避免调用时出现权限不足报错

修改后的参考代码示例

首先需要先安装Azure存储Blob的NuGet包:Azure.Storage.Blobs

using Azure.Storage.Blobs;
using Microsoft.Identity.Client;

// 令牌获取逻辑和你之前的逻辑一致,仅修改scope参数即可
AuthenticationResult authenticationResult = null;
var _app = ConfidentialClientApplicationBuilder.Create(Environment.GetEnvironmentVariable("ClientId"))
      .WithAuthority(string.Format(Environment.GetEnvironmentVariable("AADInstance"), Environment.GetEnvironmentVariable("Tenant")))
      .WithClientSecret(Environment.GetEnvironmentVariable("ClientSecret")).Build();

// 仅此处修改为存储对应的scope
authenticationResult =  _app.AcquireTokenForClient(new string[] { "https://storage.azure.com/.default" }).ExecuteAsync().Result;           

// 向存储容器写入数据的逻辑
BlobClient blobClient = new BlobClient(
    new Uri("https://<你的存储账户名>.blob.core.windows.net/<你的容器名>/<要写入的Blob名称>"),
    new Azure.AzureKeyCredential(authenticationResult.AccessToken)
);

// 示例:上传本地文件
await blobClient.UploadAsync(@"<本地文件路径>", overwrite: true);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:18:01