使用AD令牌获取请求的Azure Blob存储“授权权限不匹配”错误

Mic*_*elB 6 azure azure-storage-blobs azure-active-directory azure-blob-storage

我正在构建一个Angular 6应用程序,它将能够在Azure Blob存储上进行CRUD操作。但是,我正在使用邮差来测试请求,然后再在应用程序内部实现它们,并将我从Angular获得的令牌复制粘贴到该资源中。

尝试读取存储在存储中的文件以进行测试时,我得到: <Code>AuthorizationPermissionMismatch</Code> <Message>This request is not authorized to perform this operation using this permission.

  • 全部在生产环境中(尽管正在开发中)
  • 通过Oauth专为存储资源获取的令牌
  • 邮递员将令牌策略称为“承载者”
  • 应用程序已授予“ Azure Storage”委托权限。
  • 应用程序和我要获取令牌的帐户都作为“所有者”添加到了天蓝色的访问控制IAM中
  • 我的IP已添加到Blob存储上的CORS设置中。
  • StorageV2(通用v2)-标准-热门
  • 使用的x-ms-version标头是:2018-03-28因为这是我可以找到的最新消息,所以我刚刚创建了存储帐户。

Fju*_*urg 14

确保使用存储 Blob 数据贡献者而不是存储帐户贡献者,后者仅用于管理实际存储帐户而不是其中的数据。


小智 10

我发现不足以将该应用程序和帐户添加为所有者,我将进入您的存储帐户> IAM>添加角色,并为这种请求类型STORAGE BLOB DATA CONTRIBUTOR(PREVIEW)添加特殊权限

  • [链接](https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-app) 到文档 (5认同)
  • 对我来说,它仅在添加角色“存储队列数据贡献者”后才起作用 (3认同)
  • 根据您执行的操作,您可能需要“存储 Blob 数据所有者”而不是贡献者。但作为资源的所有者似乎并不能覆盖这一点 (2认同)