【问题标题】:Azure ADLS gen2 listing folders given authentication error using rest api and service principalAzure ADLS gen2 列出使用 rest api 和服务主体的身份验证错误的文件夹
【发布时间】:2019-12-27 12:02:13
【问题描述】:

我有一个带有 ADLS gen2(启用层次结构)的 Azure 存储帐户。我创建了一个应用程序和一个服务主体。我还在存储中创建了一个容器,并在该容器内创建了一个文件夹。使用 ACL,我已授予容器执行权限并授予文件夹读取和写入权限。

我可以使用 azcopy 将数据复制到我在容器内创建的目录中。

我想列出我复制的数据。由于 azcopy list 不起作用,我尝试使用 rest api

使用发布请求 https://login.microsoftonline.com//oauth2/v2.0/token

client_id : app_id client_secret : 秘密 grant_type : client_credentials 范围:https://storage.azure.com/.default

我得到一个令牌。当我在这里使用这个令牌时 https:///?directory=&resource=filesystem&recursive=true

授权 = 持有者 x-ms-版本:2019-02-02

我收到此错误

{
    "error": {
        "code": "AuthorizationPermissionMismatch",
        "message": "This request is not authorized to perform this operation using this permission.\nRequestId:0cd2e016-601f-003b-5fbe-5870a7000000\nTime:2019-08-22T07:50:06.5848071Z"
    }

}

我在这里错过了什么?

【问题讨论】:

  • 您是否已将 RABC 角色分配给服务主体?更多详情请参考docs.microsoft.com/en-us/azure/storage/blobs/…
  • 不,我不认为这很重要,因为 azcopy 正在工作
  • 是否可以使用服务主体登录 azcopy 然后使用 azcopy 将文件复制到存储帐户
  • 我正在查看列表,因为 azcoply 列表不起作用

标签: azure rest azure-data-lake


【解决方案1】:

列出目录内容需要**Read and Execute**权限。

我建议你给Read & Execute这两个申请权限。

参考:

https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/storage/blobs/data-lake-storage-access-control.md

请尝试看看是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-26
    • 2020-06-17
    • 2021-08-03
    • 2020-09-15
    • 1970-01-01
    • 2019-02-03
    • 2021-04-07
    • 1970-01-01
    相关资源
    最近更新 更多