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

如何无需专用工具,通过HTTP结合Azure AD认证下载Azure Blob

Azure Blob Storage 无专用工具的认证访问方案

针对你的需求,有两种无需AzCopy等专用工具、基于现有Azure AD权限体系的可行方案,以下是具体实现方式:

方案一:使用Azure AD OAuth2访问令牌(推荐)

这种方式直接复用你已配置的Azure AD用户/组权限,无需生成SAS,步骤简洁,完全通过HTTP请求实现:

1. 获取Azure AD访问令牌

使用curl请求Azure AD令牌端点,替换占位符为你的实际信息:

curl -X POST "https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id={客户端ID}&scope=https://storage.azure.com/.default&grant_type=password&username={用户邮箱}&password={用户密码}"

注:若使用服务主体,可切换为客户端凭证流(grant_type=client_credentials,添加client_secret参数);交互式用户可采用设备码流,避免明文输入密码。

从返回结果中提取access_token字段。

2. 使用令牌下载Blob

拿到令牌后,用curl或wget发起请求,将令牌放入Authorization请求头:

curl示例:

curl -H "Authorization: Bearer {获取到的access_token}" \
  "https://{存储账户名}.blob.core.windows.net/{容器名}/{Blob路径}" \
  -o {本地保存文件名}

wget示例:

wget --header="Authorization: Bearer {获取到的access_token}" \
  -O {本地保存文件名} \
  "https://{存储账户名}.blob.core.windows.net/{容器名}/{Blob路径}"

该方式会自动验证用户/组对目标容器的权限,完全匹配你现有的Azure AD权限配置。

方案二:用户委托SAS(User Delegation SAS)

如果你偏好SAS方式,用户委托SAS确实可行——它基于Azure AD身份生成,权限受限于生成者的Azure AD权限,无需存储账户密钥:

1. 获取用户委托密钥

先通过Azure AD令牌获取有效期最长7天的用户委托密钥:

curl -X POST "https://{存储账户名}.blob.core.windows.net/?restype=service&comp=userdelegationkey" \
  -H "Authorization: Bearer {Azure AD访问令牌}" \
  -H "x-ms-version: 2020-04-08" \
  -H "Content-Type: application/json" \
  -d '{
    "Start": "2024-05-20T00:00:00Z",
    "Expiry": "2024-05-27T00:00:00Z"
  }'

从返回结果中提取UserDelegationKey相关字段:SignedOid、SignedTid、SignedStart、SignedExpiry、SignedKey。

2. 生成SAS签名并访问

使用上述密钥进行HMAC-SHA256签名计算(可通过Python脚本或bash结合openssl实现),构造出带SAS参数的Blob URL后,直接用curl/wget访问即可。

注:此方式需手动处理签名逻辑,步骤比OAuth2令牌方案繁琐,适合需要生成临时共享访问链接的场景。

总结

  • 优先推荐Azure AD OAuth2访问令牌方案:无需额外资源,复用现有Azure AD权限,操作更简单。
  • 用户委托SAS适合临时共享场景,但需额外处理签名计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:00:57