Azure BLOB-списки хранилищ с использованием AAD-аутентификации - сбой проверки аудитории - PullRequest
0 голосов
/ 23 апреля 2020

Используя Postman, получите токен Bearer, который является успешным для перечисления учетных записей хранения и групп ресурсов. В той же коллекции, пытаясь перечислить BLOB-объекты в контейнере и получить «Проверка аудитории не удалась. Аудитория не совпадала». Любая помощь для диагностики этой ошибки будет принята с благодарностью. enter image description here

1 Ответ

0 голосов
/ 24 апреля 2020

Если вы хотите использовать Azure AD токен доступа для доступа к Azure API остального блоба, нам нужно назначить Azure RAB C Роль ( Владелец данных хранилища BLOB-объектов , Поставщик данных хранилища BLOB-объектов или Устройство чтения данных хранилища BLOB-объектов ) для участника службы или пользователя AD. Для получения более подробной информации, пожалуйста, обратитесь к документу

Например (я использую субъект-службу) 1. Создайте субъект-службу и назначьте роль Azure RAB C для sp.

az login
az account set --subscription "<your subscription id>"
# it will assign Storage Blob Data Reader to the sp at storage accountlevel
az ad sp create-for-rbac -n "mysample" --role Storage Blob Data Reader --scopes <the resource id of storage account>

enter image description here

Получить токен доступа AD
POST /<your sp tenant id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type =client_credentials
&client_id=<your sp appId>
&client_secret=<your sp password>k
&resource=https://storage.azure.com/
Список BLOB-объектов
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list

x-ms-version: 2017-11-09
Authorization: Bearer <access token>

enter image description here

...