Azure Data Lake Storage Gen2 REST API - 列出文件系统 - “代码”:“AuthorizationPermissionMismatch

Posted

技术标签:

【中文标题】Azure Data Lake Storage Gen2 REST API - 列出文件系统 - “代码”:“AuthorizationPermissionMismatch【英文标题】:Azure Data Lake Storage Gen2 REST API - List filesystems - "code": "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。反应是一样的。我是此存储帐户的贡献者。 所以您使用隐式流来获取不记名令牌或客户端凭据? 我将我的身份验证参数添加到描述中。感谢您的回复! 【参考方案1】:

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

作为解决方案

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

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

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

【讨论】:

您的 URL 中的租户 ID 和目录 ID - 相同吗? 是的,@YakivStoikov 是一样的 太棒了!现在它给了我正确的回应。 ))) 很高兴为您提供帮助@YakivStoikov!!!

以上是关于Azure Data Lake Storage Gen2 REST API - 列出文件系统 - “代码”:“AuthorizationPermissionMismatch的主要内容,如果未能解决你的问题,请参考以下文章

对于 Azure Data Lake Storage Gen 2,我可以在哪里调整访问/并发设置?

Azure Data Lake Storage Gen2 REST API - 列出文件系统 - “代码”:“AuthorizationPermissionMismatch

构建企业级数据湖?Azure Data Lake Storage Gen2不容错过(上)

Azure Databricks - 从 Gen2 Data Lake Storage 运行 Spark Jar

使用 Elastic Stack 对 Azure Data Lake Storage Gen2 中的数据进行实时数据分析

在 Azure Data Lake Storage Gen2 中的 CSV 文件上使用无服务器 sql 池(内置)运行查询失败