Azure Rest API 中的授权令牌格式
Posted
技术标签:
【中文标题】Azure Rest API 中的授权令牌格式【英文标题】:Authorization token format in Azure RestAPI 【发布时间】: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=
我想调用这个接口,但是需要授权令牌,那么授权令牌的格式是什么?
【问题讨论】:
HTH - docs.microsoft.com/en-us/rest/api/storageservices/…. @GauravMantri 我试过了,但它给了我错误“身份验证信息的格式不正确。检查授权令牌” 请编辑您的问题并分享您编写的代码。 @GauravMantri 因为它是 Rest API,所以我通过添加标题直接从 Postman 调用 在这种情况下,请分享一张截图。 【参考方案1】:按照此步骤,您首先需要一个服务主体及其客户端 ID 和机密/证书(假设您使用 Azure AD 进行身份验证)。
然后,您需要在存储帐户上分配 RBAC 角色,如 LINK 中所述。对于筛选,您可以使用在存储帐户级别设置的存储 Blob 数据所有者角色。
您需要点击网址https://login.microsoftonline.com/
创建您的表达式,如 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= 'tesla'</Where>
<Blobs>
<Blob>
<Name>Calling a rest API using python.txt</Name>
<ContainerName>test</ContainerName>
<TagValue>tesla</TagValue>
</Blob>
</Blobs>
<NextMarker/>
</EnumerationResults>
【讨论】:
以上是关于Azure Rest API 中的授权令牌格式的主要内容,如果未能解决你的问题,请参考以下文章
请求令牌时如何在 Azure 存储 Blob 中为 REST 请求指定范围? [AZURE-BLOB][REST API]