Javascript @azure/storage blob中的TokenCredential中的令牌是什么,如何获取?

Javascript @azure/storage blob中的TokenCredential中的令牌是什么,如何获取?,javascript,azure,browser,azure-storage-blobs,Javascript,Azure,Browser,Azure Storage Blobs,我正在使用Blob的存储帐户。 我公开了一个SPA web应用程序,它充当存储帐户中blob的在线文件管理器 我正在使用@azure/storage blob 我希望能够避免使用Azure函数生成SAS令牌,而SharedKey凭据仅用于服务器端。这只剩下令牌凭证作为授权手段 我所尝试的: 我已尝试在应用内注册我的web应用,并允许it用户模拟存储帐户。然后,我使用MSAL首先登录用户,然后静默地获取accesstoken 我的假设是,这将作为TokenCredential的令牌工作,但它不适用

我正在使用Blob的存储帐户。 我公开了一个SPA web应用程序,它充当存储帐户中blob的在线文件管理器

我正在使用@azure/storage blob

我希望能够避免使用Azure函数生成SAS令牌,而SharedKey凭据仅用于服务器端。这只剩下令牌凭证作为授权手段

我所尝试的: 我已尝试在应用内注册我的web应用,并允许it用户模拟存储帐户。然后,我使用MSAL首先登录用户,然后静默地获取accesstoken

我的假设是,这将作为TokenCredential的令牌工作,但它不适用于我

有人自己试过吗? 谢谢 Rasmus

通过查看@azure/storage blob SDK,对于BlobServiceClient,有一个构造函数

  constructor(
    url: string,
    credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential,
    options?: StoragePipelineOptions
  );
在开发SPA时,您可以在@azure/identity中使用InteractiveBrowserCredential

顺便说一下,在用户使用AAD令牌访问存储之前,您需要为其分配必要的存储角色


好的,我今天到家后会试试这个。我是否仍需要将我的web应用注册为应用注册,并启用存储帐户“用户\模拟”权限?谢谢。好的,我终于解决了这个问题。故障出现在我的存储帐户权限、msal实现或来自postman的模拟调用中的某个地方。不管怎样,它是有效的,我注意到了我的进步步骤。感谢您的帮助:
  var interactiveBrowserCredential = new InteractiveBrowserCredential("tenant_id, e4c9ab4e-****-****-****-230ba2a757fb", "client_id,ebb50468-****-****-****-85e7968135c0");
  const blobServiceClient = new BlobServiceClient(
    `https://${account}.blob.core.windows.net`,
    interactiveBrowserCredential
  );