我正在使用 Blob 存储帐户。 我公开了一个 SPA Web 应用程序,该应用程序充当存储帐户中 Blob 的在线文件管理器。
我正在使用@azure/storage-blob
我希望能够绕过使用 Azure 函数来生成 SAS token ,并且 SharedKey 凭据仅适用于服务器端。这样就只剩下 TokenCredential 作为授权手段。
我尝试过的: 我尝试在应用程序注册中注册我的网络应用程序,并允许其为存储帐户“user_impersonation”。然后,我使用 MSAL 首先登录用户,然后静默获取访问 token 。
我的假设是这可以作为 TokenCredential 的 token ,但它不适合我。
有人亲自尝试过吗? 谢谢, 拉斯穆斯
最佳答案
通过查看@azure/storage-blob
SDK,对于BlobServiceClient
,有一个构造函数
constructor(
url: string,
credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,
options?: StoragePipelineOptions
);
在开发 SPA 时,您可以在 @azure/identity
中使用 InteractiveBrowserCredential
var interactiveBrowserCredential = new InteractiveBrowserCredential("tenant_id, e4c9ab4e-****-****-****-230ba2a757fb", "client_id,ebb50468-****-****-****-85e7968135c0");
const blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
interactiveBrowserCredential
);
<小时/>
顺便说一下,在使用 AAD token 访问存储之前,您需要为用户分配必要的存储 Angular 色。
关于javascript - @azure/storage-blob 中 TokenCredential 中的 token 是什么?如何获取 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58624691/