请求令牌时如何在 Azure 存储 Blob 中为 REST 请求指定范围? [AZURE-BLOB][REST API]

Posted

技术标签:

【中文标题】请求令牌时如何在 Azure 存储 Blob 中为 REST 请求指定范围? [AZURE-BLOB][REST API]【英文标题】:How to specify scope in Azure Storage Blob for REST requests while requesting token? [AZURE-BLOB][REST API] 【发布时间】:2021-07-10 05:21:21 【问题描述】:

任何人都可以确认我们必须向 Azure 存储发出 REST 请求

    创建应用注册并获取其client IDclient secret 转到 API permissions -> Add permission -> Azure storage,添加 user_impersonation 作为 API 权限,允许应用程序代表登录用户访问存储帐户。 转到Access control IAM -> Add role -> 分配给定的signed-in user (email) 任何你喜欢的角色。 接下来,您现在可以访问令牌以发出请求。

在这个逻辑中,我必须在第 3 步中授予read/write/complete-storage-account 对角色的访问权限,然后将该行为模拟给创建的应用程序。

但是假设我想在令牌请求时授予这些级别的访问权限。如图所示:

我可以这样做吗?我在访问令牌时获得了这些读/写/所有者类型的不同权限。 如果没有,我该如何管理不同的访问级别?

我应该使用多个用户 我应该使用多个应用程序

【问题讨论】:

从你的描述中,你想获取不同权限的不同token? 是的,类似的。我想要的是我的客户不必创建多个用户、应用程序来管理 Azure 门户上的不同角色/访问(读/写/删除),而是我可以通过使用 REST 调用的代码为他做这件事吗?跨度> 【参考方案1】:

您不需要多个应用程序,但需要多个用户,当您使用Azure Storage API 的委派权限 user_impersonationhttps://storage.azure.com/user_impersonation 中的https://storage.azure.com/user_impersonation,应用程序用户登录后将获得该用户在存储账户中的所有权限。此外,我注意到您使用了https://myaccount.blob.core.windows.net/user_impersonation,它只适用于特定的存储帐户,请确保它符合您的要求。

【讨论】:

在我与@PamelaPeng 的最后一次讨论中,她建议使用 myaccount.blob.core.windows.net link,它对我有用,那么两者之间到底有什么区别?来到主要问题,我可以在生成访问令牌时授予读/写/所有者访问权限,还是只能通过 user_impersonation 来完成? @MayankPatel 1.https://myaccount.blob.core.windows.net 仅适用于一个特定的存储帐户,如果它符合您的方案,请忽略它。 2.不,权限,例如read/write是RBAC角色中定义的action权限,当你请求token时,我们需要传递API暴露的权限user_impersonation,也就是说只能通过user_impersonation来实现。

以上是关于请求令牌时如何在 Azure 存储 Blob 中为 REST 请求指定范围? [AZURE-BLOB][REST API]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Azure 中为我的 blob 存储中的 blob 提取上次修改日期

有没有办法重新生成 Azure Blob 存储 SAS 令牌

使用 Blob 特定的 SAS 令牌连接和更新 Azure Blob

Azure CDN URL使用令牌身份验证和Blob存储SAS重写规则

在 Postman 中为 Azure AD B2C 请求访问令牌

如何阅读 Azure Blob 网址?