【问题标题】:Authorization token format in Azure RestAPIAzure Rest API 中的授权令牌格式
【发布时间】:2021-10-20 06:20:11
【问题描述】:

我指的是这个文档

https://docs.microsoft.com/en-us/rest/api/storageservices/find-blobs-by-tags

在这个文档中,有一个 rest API https://myaccount.blob.core.windows.net?comp=blobs&where=

我想调用这个接口,但是需要授权令牌,那么授权令牌的格式是什么?

【问题讨论】:

  • @GauravMantri 我试过了,但它给了我错误“身份验证信息的格式不正确。检查授权令牌”
  • 请编辑您的问题并分享您编写的代码。
  • @GauravMantri 因为它是 Rest API,所以我通过添加标题直接从 Postman 调用
  • 在这种情况下,请分享一张截图。

标签: java azure azure-blob-storage rest


【解决方案1】:

按照此步骤,您首先需要一个服务主体及其客户端 ID 和机密/证书(假设您使用 Azure AD 进行身份验证)。

然后,您需要在存储帐户上分配 RBAC 角色,如 LINK 中所述。对于筛选,您可以使用在存储帐户级别设置的存储 Blob 数据所有者角色。

您需要点击网址https://login.microsoftonline.com//oauth2/token 带有 POST 请求。包括 client_id、client_secret、grant_type 和资源,如附图所示。您将在响应中获得一个令牌。

创建您的表达式,如 HERE 所示。您的表达式需要进行 uri 编码。例如 &where=mytag = 'tesla' 将变为 mytag%3D%20%27tesla%27。您可以使用THIS在线解码器。

最后点击 gettags 端点 https://.blob.core.windows.net?comp=blobs&where=mytag%3D%20%27tesla%27。在标头中传递 Authorization = 'Bearer token'。还要通过 x-ms-version = 2019-12-12。见附图。

您的回复将是 xml 格式。

<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="https://<account_name>.blob.core.windows.net/">
    <Where>mytag= &apos;tesla&apos;</Where>
    <Blobs>
        <Blob>
            <Name>Calling a rest API using python.txt</Name>
            <ContainerName>test</ContainerName>
            <TagValue>tesla</TagValue>
        </Blob>
    </Blobs>
    <NextMarker/>
</EnumerationResults>

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 2021-10-24
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多