Доступ к файловому хранилищу Azure из веб-приложения без серверной части

Есть ли способ получить доступ к хранилищу Azure через Rest API, используя только внешний интерфейс javascript?

e.g:

  1. Пользователь пытается загрузить изображение, хранящееся в хранилище Azure.

  2. Перенаправление на portal.azure.com для входа в систему.

  3. Отправлено обратно в мое веб-приложение с файлами cookie или чем-то еще, что необходимо для создания аутентифицированного URL-адреса.


person Skarlinski    schedule 26.05.2019    source источник
comment
Да. Просто используйте AJAX. Но вы не входите в портал portal.azure.com, вы используете REST API учетных записей хранения напрямую.   -  person Nick.McDermaid    schedule 26.05.2019
comment
@Nick.McDermaid Но как пройти аутентификацию? Кажется, что все решения в документах требуют серверной части   -  person Skarlinski    schedule 26.05.2019
comment
Хотя это не очень безопасно, для учетных записей хранения вы можете просто использовать токен SAS.   -  person Nick.McDermaid    schedule 26.05.2019
comment
@Nick.McDermaid не должен ли пользователь продолжать создавать их по истечении срока их действия? было бы лучше, если бы пользователю не нужно было ничего вводить в приложение (например, Google Cloud работает через логин)   -  person Skarlinski    schedule 26.05.2019
comment
Я никогда не использовал облака Google, но если вам не нужно входить в систему, то это анонимный доступ, который также может быть достигнут в учетных записях хранения. Это еще менее безопасно, потому что любой, у кого есть URL-адрес, может получить доступ к ресурсу. docs.microsoft.com/en- мы/azure/storage/blobs/   -  person Nick.McDermaid    schedule 26.05.2019
comment
@Nick.McDermaid Посмотрите на первую строку - с бэкэндом .net   -  person Skarlinski    schedule 26.05.2019
comment
Да, извините, я это увидел (и удалил свой комментарий, ха-ха)   -  person Nick.McDermaid    schedule 26.05.2019
comment
@Nick.McDermaid Спасибо за вашу помощь, я останусь, чтобы посмотреть, справился ли кто-то с потоком в вопросе, а если нет, то разбудит спящего гиганта, который является нашей серверной командой):   -  person Skarlinski    schedule 26.05.2019
comment
Это больше похоже на js-only github.com/shawntabrizi/Microsoft-Authentication-with -MSAL.js   -  person Nick.McDermaid    schedule 26.05.2019
comment
@Nick.McDermaid Да, кажется, я на шаг ближе к тому, что мне нужно! гуглил час. Скоро узнаем, слишком ли хорошо, чтобы быть правдой\   -  person Skarlinski    schedule 26.05.2019
comment
Вы также можете найти это полезным: docs.microsoft.com /en-us/azure/storage/common/storage-auth-aad.   -  person Gaurav Mantri    schedule 26.05.2019
comment
@Skarlinski У вас есть другие опасения по этому поводу?   -  person Tony Ju    schedule 27.05.2019
comment
@TonyJu да, удалось использовать msal для получения токена, но теперь, похоже, я не могу получить изображение из большого двоичного объекта, используя этот токен. Это может быть связано с тем, что я неправильно вызываю API-интерфейс blob rest или проблема с областью действия токена доступа):   -  person Skarlinski    schedule 27.05.2019


Ответы (1)


Вы можете аутентифицировать доступ к большим двоичным объектам Azure с помощью Azure Active Directory< /а>.

После этого вы сможете получить токен доступа для доступа к лазурному хранилищу через Rest Api. Вот пример расскажет, как войти в систему пользователя и получить токен, который будет использоваться для Microsoft Graph Api. Вы можете изменить API-интерфейс Graph на API-интерфейс хранилища.

Обновления:

Способ получения токена доступа. Область действия может быть https://storage.azure.com/.default

введите здесь описание изображения

Получите доступ к частному большому двоичному объекту с помощью маркера доступа. Вам также необходимо добавить заголовок x-ms-version.

введите здесь описание изображения

person Tony Ju    schedule 27.05.2019
comment
Спасибо! Попробую завтра. Я продолжаю быть на один шаг позади.. надеюсь, что область по умолчанию поможет - person Skarlinski; 28.05.2019
comment
@Skarlinski Если мой ответ полезен для вас, вы можете принять его как ответ, чтобы помочь другим. Спасибо. - person Tony Ju; 29.05.2019
comment
сделаю, конечно, как только я заставлю его работать! Спасибо еще раз - person Skarlinski; 29.05.2019