Загрузите Azure Blob-объект с веб-сайта WebApp с идентификатором AAD, вошедшим в систему с доступом IAM на основе ролей

#oauth-2.0 #azure-active-directory #azure-storage #msal #microsoft-identity-platform

#oauth-2.0 #azure-active-directory #azure-хранилище #msal #microsoft-identity-platform

Вопрос:

Клиент Azure Active Directory B2C:

  • Группа настроена, пользователи назначены группе
  • веб-приложение .net core 5 настроено как зарегистрированное приложение

Azure StorageV2:

  • общедоступность, CORS настроен правильно
  • контейнер НЕ является общедоступным, IAM настроен для группового доступа

Веб-приложение .net core 5 с платформой идентификации:

  • Логин пользователя работает, идентификационный файл cookie присутствует
  • У меня есть группы пользователей, доступные через Microsoft Graph

Теперь — на странице razor — я генерирую некоторый код, позволяющий пользователю загружать материалы:

 <tr><td><img crossorigin="use-credentials" src="@Model.ImagesServiceUri/${image.id}"></img> 
</td></tr>
 

при загрузке страницы в клиенте браузера это возвращает:
404 — ресурс не существует (как и всегда, если у вас нет прав доступа)

Что нужно сделать, чтобы загрузить blob-объект с правами IAM уже зарегистрированного пользователя webapp?

  • требуется ли какая-либо дополнительная настройка Active Directory?
  • требуется ли какая-либо дополнительная настройка хранилища
  • есть ли в Azure что-нибудь еще для настройки?
  • чисто на стороне клиента — есть ли какой-либо способ использовать существующий локальный файл cookie для идентификации в хранилище Azure? crossorigin=»use-credentials» добавляет правильные заголовки, но не правильный токен идентификатора
  • есть ли в веб-приложении способ добавить токен к URL-адресу и добавить этот токен к сгенерированному URL-адресу?

Комментарии:

1. Не могли бы вы, пожалуйста, сказать мне, какую роль вы отводите группе?

2. Кроме того, не могли бы вы, пожалуйста, предоставить простой образец? Давайте проведем тест.