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

能否使用AAD应用注册的对象ID与客户端密钥创建BlobServiceClient

使用AAD应用凭据创建BlobServiceClient实现方案

完全可以使用AAD应用注册的凭据替代连接字符串创建BlobServiceClient,具体实现步骤如下:

前置准备

  • 首先安装官方NuGet包 Azure.Identity,用于实现Azure AD身份验证
  • 确认已为AAD应用分配了对应存储账户/容器的RBAC权限,读取Blob列表至少需要存储Blob数据读取者角色,写入操作需额外配置对应权限

代码实现示例

方式1:客户端密钥模式(适用于所有运行环境)

需先从AAD应用注册页面获取租户ID、客户端ID、客户端密钥三个参数:

using Azure.Identity;
using Azure.Storage.Blobs;

// 替换为实际参数
string tenantId = "AAD租户ID";
string clientId = "AAD应用客户端ID";
string clientSecret = "AAD应用客户端密钥";
string storageAccountName = "存储账户名称";
string containerName = "目标容器名称";

// 构造存储Blob服务端点,国际版Azure端点后缀为 core.windows.net
Uri blobServiceEndpoint = new Uri($"https://{storageAccountName}.blob.core.chinacloudapi.cn/");

// 用AAD凭据创建BlobServiceClient
BlobServiceClient blobServiceClient = new BlobServiceClient(blobServiceEndpoint, new ClientSecretCredential(tenantId, clientId, clientSecret));

// 后续操作逻辑和原有代码完全兼容
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobs = containerClient.GetBlobs();

方式2:默认凭据模式(适用于部署到Azure服务的场景)

如果你的应用部署在Azure服务(如App Service、虚拟机、函数等),可以直接为资源绑定托管身份,无需硬编码密钥,安全性更高:

// 仅需传入存储服务端点,DefaultAzureCredential会自动读取当前运行环境的身份凭据
BlobServiceClient blobServiceClient = new BlobServiceClient(blobServiceEndpoint, new DefaultAzureCredential());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:06:03