Как обезопасить Azure данные контейнера BLOB-объектов из приложения Angular? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть несколько json файлов в контейнере BLOB-объектов Azure, который содержит информацию о профиле пользователя, и у меня есть приложение Angular, которое вызывает Azure контейнер BLOB-объектов и извлекает все эти json файлы. Каждый json файл имеет свой собственный URL, например, https: // {accountName} / profile / {filename}. Я кеширую эти URL, а не генерирую каждый URL на каждый refre sh. Теперь проблема заключается в том, что данные контейнера имеют общедоступный c уровень доступа, и любой, у кого есть этот URL, может получить доступ к файлам.

Один из способов - использовать токен SAS (подпись общего доступа) и срок действия URL истекает после указания c интервал времени, но в моем случае это будет иметь огромное влияние на производительность. Потому что я должен генерировать токен для всех файлов снова и снова. Кроме того, я не могу открыть секретный ключ доступа в своем приложении Angular, поэтому мне нужно написать API, который будет выполнять эту работу.

Есть ли другой способ? Мое приложение Angular развернуто как контейнер docker в кластере kubernetes (AKS)

Я нашел эту ссылку https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-requests-to-azure-storage, но в моем случае ничего не помогло.

1 Ответ

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

Если вы хотите ограничить использование для доступа к хранилищу больших двоичных объектов, вы можете интегрировать Azure AD с вашим приложением angular. После того, как ваши пользователи выполнят Azure AD auth, они получат Azure AD токен доступа, затем они могут использовать call Azure blob rest api с токеном доступа для получения содержимого блоба. Но учтите, что вам нужно помнить некоторые вещи

  1. Вам необходимо настроить специальную роль Azure RAB C для своих пользователей. Роли: Владелец данных BLOB-объектов хранения , Автор данных BLOB-объектов хранения или Устройство чтения данных BLOB-объектов хранения .

  2. Вам нужно настроить CORS для Azure учетной записи хранения.

Для получения дополнительной информации, пожалуйста, обратитесь к

  1. Как настроить Angular Использование приложения Azure Аутентификация AD

  2. Как настроить CORS для Azure учетная запись хранения

  3. Azure AD и Azure Blob

  4. Azure BLOB Остальное API

...