【问题标题】:Azure Data Lake Storage Gen2 REST API - List filesystems - "code": "AuthorizationPermissionMismatchAzure Data Lake Storage Gen2 REST API - 列出文件系统 - “代码”:“AuthorizationPermissionMismatch
【发布时间】:2021-12-23 00:35:08
【问题描述】:

我尝试使用请求在 Azure 存储帐户中获取列表文件系统及其属性:

https://<account_name>.dfs.core.windows.net/?resource=account

一个标题Bearer 并得到回应

 "error": {
    "code": "AuthorizationPermissionMismatch",
    "message": "This request is not authorized to perform this operation using this ******"
}

但是当我请求列表路径时:

https://<account_name>.dfs.core.windows.net/<filesystem>?recursive=true&resource=filesystem

我得到了正确数据的响应。

你能给我一些建议吗?

附:我的身份验证参数。 enter image description here

【问题讨论】:

  • 嗨,@AnsumanBal-MT!对于列表文件系统,我只使用 "resource" = "account"
  • 我的意思是在标题中是否包含 x-ms-version 和 x-ms-date 并且我还可以知道分配给服务主体的 RBAC 角色是什么?
  • 我尝试使用 x-ms-version。反应是一样的。我是此存储帐户的贡献者。
  • 所以您使用隐式流来获取不记名令牌或客户端凭据?
  • 我将我的身份验证参数添加到描述中。感谢您的回复!

标签: rest azure-storage azure-data-lake-gen2


【解决方案1】:

我通过使用客户端 ID 和密码获取令牌,在我的环境中测试了相同的请求。我收到了和你一样的错误:

作为解决方案

  1. 我将Storage Account Contributor 角色添加到服务主体 我用来获取不记名令牌如下:

  2. 然后,我使用下面的 client_credentials 方法获取不记名令牌:

  3. 在上述之后,当我再次执行相同的请求时,它会得到 成功:

【讨论】:

  • 您的 URL 中的租户 ID 和目录 ID - 相同吗?
  • 是的,@YakivStoikov 是一样的
  • 太棒了!现在它给了我正确的回应。 )))
  • 很高兴为您提供帮助@YakivStoikov!!!
猜你喜欢
  • 2020-05-23
  • 2019-09-10
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 2021-10-02
  • 2019-12-27
  • 2019-11-13
  • 1970-01-01
相关资源
最近更新 更多