Многопользовательское приложение Azure для чтения и записи в учетную запись хранения с помощью RBAC

Могут ли два клиента Azure (с RBAC) использовать учетную запись хранения для обмена данными? Мы попробовали и получили ошибку 401. Любая помощь в решении этой проблемы приветствуется.
Ниже представлен наш сценарий ...

Тенант 1: tenantA
Многопользовательское приложение: appA (тип приложения-демона)

Тенант 2: tenantB
Учетная запись хранения: storageB
Клиент согласен с администратором appA и предоставит приложению «Storage Blob Data Contributor» разрешение на storageB. Ниже показано, как мы устанавливаем разрешения (мы выбираем Microsoft Graph User.Read.All из-за отсутствия знаний, что еще выбрать)  введите описание изображения здесь

Теперь, может ли tenantA записывать в хранилищеB с помощью пакета SDK службы хранилища Azure?

Что ж, когда мы пытались, мы получаем исключение ниже!

Azure.RequestFailedException: Server failed to authenticate the request. Please refer to the information in the www-authenticate header.
RequestId:ab6e2992-001e-0089-16dd-d52538000000
Time:2020-12-19T08:07:07.8901668Z
Status: 401 (Server failed to authenticate the request. Please refer to the information in the www-authenticate header.)
Error Code: InvalidAuthenticationInfo

Headers:
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id:

person user3023949    schedule 19.12.2020    source источник
comment
Можете ли вы просто использовать ключи учетной записи хранения?   -  person Bevan    schedule 20.12.2020
comment
Теперь это решено, проблема была ... Мы переключили использование идентификатора клиента хоста приложения (tenantA) на согласованный идентификатор клиента (tenantB).   -  person user3023949    schedule 21.12.2020
comment
Если ваша проблема была решена, вы можете опубликовать ее как ответ, а не комментарий.   -  person Joy Wang    schedule 21.12.2020
comment
@ user3023949 Привет, спасибо за ваш вклад. Я отправляю ответ, чтобы другие могли сослаться на него. Конечно, я бы удалил его, если вы опубликуете ответ.   -  person Doris Lv    schedule 31.12.2020


Ответы (1)


Ответ: да, что два клиента Azure (с RBAC) могут использовать учетную запись хранения для обмена данными.

Спасибо за вклад user3023949, я публикую здесь ответ, чтобы другие могли сослаться на него:

Что вам нужно, так это сделать так, чтобы tenantB согласился с идентификатором клиента приложения, а не с tenantA. И вы можете сделать это через URL:

https://login.microsoftonline.com/{tenant-id}/adminconsent?client_id={client-id}

куда:

{client-id} - это идентификатор клиента приложения (также известный как идентификатор приложения).

{tenant-id} - это идентификатор клиента вашей организации или любое подтвержденное доменное имя.

Следуйте Создайте URL-адрес для предоставления согласия администратора на уровне клиента.

person Doris Lv    schedule 31.12.2020