Как загрузить Azure Blobs по URL-адресу с проверкой подлинности Active Directory с помощью реакции?

1
8

Да, это выглядит очень знакомо: Как я могу получить доступ к Azure Blobs по URL с аутентификацией Active Directory? Однако мне не нужно показывать их как img href напрямую, приложение React может сначала загрузить файл, а затем показать его. У нас есть отдельная служба, которая загружает изображения. Невозможно сгенерировать SAS-токены. Это все работает нормально. У меня есть пользователи, аутентифицированные через AAD (или, должен я сказать, Entra ;) ).

У нас есть много изображений, которые мы хотим отображать, но только для пользователей, которые аутентифицированы, поэтому я работал против этого: https://learn.microsoft.com/en-us/azure/storage/blobs/authorize-access-azure-active-directory. Я назначил себе роль читателя хранилища и назначил ее себе. Затем запросите токен, например: az account get-access-token --resource https://xxxx.blob.core.windows.net (учетная запись хранения, но без указания контейнера) Однако, если я использую этот токен носителя, я всегда получаю 403 на GET:

Если я смотрю на токен, он выглядит хорошо, JWT.MS проверен и т. д. Я использую URL, который указан в элементе blob. Если я генерирую токен SAS и добавляю его, он работает, моя проблема здесь в том, что он останется рабочим, если пользователь также больше не аутентифицирован, это не разрешено. Какую часть я упускаю?

<?xml version="1.0" encoding="utf-8"?>
<Error>
    <Code>AuthenticationFailed</Code>
    <Message>Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:539cf90f-901e-0012-2b10-f3ae03000000
Time:2024-08-20T14:48:46.0263916Z</Message>
    <AuthenticationErrorDetail>Authentication scheme Bearer is not supported in this version.</AuthenticationErrorDetail>
</Error>
Егор
Вопрос задан27 марта 2024 г.

1 Ответ

2
Аполлон
Ответ получен7 сентября 2024 г.

Ваш ответ

Загрузить файл.