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

React应用中如何通过URL结合Active Directory(Entra)认证下载Azure Blobs?

React应用中如何通过URL结合Active Directory(Entra)认证下载Azure Blobs?

嘿,我来帮你理清楚这个落地流程!你已经踩对了核心方向——用Azure Entra(也就是之前的Active Directory)来授权访问Blob存储,而且提前给自己分配了存储读者角色,这步是基础,做得很对。

下面是完全贴合你场景的具体操作步骤:

  • 第一步:在React应用中获取Entra认证令牌
    你提到用az account get-access-token命令测试,这在本地验证时没问题,但在React应用里,更推荐用微软官方的MSAL.js前端认证库来直接获取令牌。你需要配置MSAL指向你的Entra租户,指定存储Blob的权限范围(一般是https://storage.azure.com/.default),然后调用库的acquireTokenSilent(静默获取)或acquireTokenPopup(弹窗获取)方法,就能拿到有效的访问令牌。

  • 第二步:用令牌发起Blob下载请求
    拿到令牌后,直接向目标Blob的URL发起GET请求,重点是在请求头里加上Authorization: Bearer <你的访问令牌>。因为你已经有了存储读者的角色权限,这个请求会通过Entra的身份校验,顺利下载到Blob的二进制内容。

  • 第三步:在React中处理并展示Blob
    下载完成后,你可以用FileReader把二进制内容转成Data URL,或者用URL.createObjectURL生成临时对象URL,再把这个URL赋值给img标签的src属性,就能在React应用里正常展示图片了。

另外给你几个关键提醒:

  • 确保存储读者角色是正确分配到你当前使用的用户身份上,而且作用范围要覆盖目标存储账户或具体的Blob容器,避免权限不生效。
  • 用MSAL的时候要注意令牌的过期时间,最好配置自动刷新逻辑,避免用户在使用过程中突然出现认证失败的情况。
  • 既然没法生成SAS令牌,这种基于Entra令牌的方式就是最适配你的方案,完全符合Azure存储的AD授权规则。

备注:内容来源于stack exchange,提问作者Roelant M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:33:19