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

如何通过Microsoft Entra ID及托管身份创建有效期≥1个月的SAS令牌?

基于Microsoft Entra ID与托管身份实现长期Blob访问的可行方案

1. 托管身份+Azure函数自动刷新User Delegation SAS

  • 部署Azure函数并配置系统/用户分配的托管身份,给该身份分配Blob存储的RBAC权限(比如Storage Blob Data Contributor)。
  • 函数按固定周期(比如每6天,提前1天完成刷新)调用存储API生成新的User Delegation Key,再创建新的User Delegation SAS令牌。
  • 将生成的SAS令牌存入Azure Key Vault,外部客户端从Key Vault获取令牌访问Blob。
  • 核心优势:全程依托Entra ID托管身份,无需暴露存储账户密钥;客户端获取的令牌自动更新,间接实现长期稳定访问,同时保留User Delegation SAS的身份溯源能力。

2. 用托管身份安全生成长期Service SAS

  • 创建Entra ID应用程序服务主体,为其分配Storage Account Key Operator Service Role权限,允许它获取存储账户密钥。
  • 借助托管身份(比如Azure VM、函数的托管身份)获取服务主体的访问令牌,调用存储API拿到存储账户密钥。
  • 用该密钥生成最长有效期10年的Service SAS令牌,存入Key Vault供外部客户端取用。
  • 说明:此方案本质是Service SAS,但通过托管身份和Entra ID安全管控密钥获取流程,避免硬编码密钥,符合你要求的Entra身份体系依赖。

3. 直接用Entra ID授权外部客户端(无需SAS)

  • 如果外部客户端是企业用户(B2B)或消费者(B2C),可直接让客户端用自身Entra ID凭据访问Blob。
  • 给外部用户/组分配Blob存储的RBAC权限(比如Storage Blob Data Reader),客户端通过OAuth2.0获取访问令牌后直接调用Blob存储API。
  • 优势:完全无需管理SAS令牌,访问权限可通过Entra ID直接调整,令牌可自动刷新,天然满足长期访问需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:33:23