Как разместить детали строки подключения на странице Typescript без какого-либо риска для безопасности?

У меня есть приложение typescript, из которого мне нужно подключиться к хранилищу BLOB-объектов Azure. Я разместил сведения о строке подключения большого двоичного объекта в службе хранилища ключей Azure. Но чтобы вызвать URL-адрес хранилища ключей для доступа к этим ключам и секретам, мне нужно включить Client ID, Client Secrets на мою страницу Typescript. Но поскольку это передняя страница, любой может увидеть эти секреты из консоли браузера. Как мы можем избавиться от этой ситуации. любое решение, приведенное ниже, может решить мою проблему. Пожалуйста, дайте нам знать.

1. Есть ли способ скрыть эти секреты из окна консоли браузера. Таким образом, это не будет отображаться в браузере.

2. Есть ли способ использовать другую аутентификацию для хранилища ключей Azure со страницы typescipt без предоставления идентификатора клиента и секретов клиента.


person Pardha    schedule 26.04.2021    source источник


Ответы (1)


1. Есть ли способ скрыть эти секреты из окна консоли браузера. Таким образом, это не будет отображаться в браузере.

Нет. Если ваше приложение может это видеть, то может и пользователь.

2. Есть ли способ использовать другую аутентификацию для хранилища ключей Azure со страницы typescipt без предоставления идентификатора клиента и секретов клиента.

Да, хотя я думаю, что это было бы плохой идеей. Доступ к Key Vault от имени вошедшего в систему пользователя будет работать без секрета, но строка подключения по-прежнему видна и позволит пользователю продолжить доступ к хранилищу BLOB-объектов.

Лучшим вариантом здесь может быть доступ к хранилищу BLOB-объектов от имени пользователя.

  1. Назначьте роль читателя данных BLOB-объектов пользователю в учетной записи хранилища / контейнере BLOB-объектов, к которому вы хотите предоставить им доступ.
  2. Зарегистрируйте приложение в Azure AD, для которого требуется разрешение user_impersonation в хранилище Azure на вкладке разрешений API.
  3. Аутентифицировать пользователя с помощью MSAL
  4. Получите токен доступа для хранилища Azure с областью действия: https://storage.azure.com/user_impersonation
  5. Вызов API хранилища с токеном

Ключ доступа не требуется, секреты пользователю не выдаются. Все зависит от доступа пользователя, а не приложения. Поскольку мы не можем аутентифицировать интерфейсное приложение, это то, что мы можем сделать во внешнем интерфейсе.

Другой альтернативой может быть выполнение запросов из внутреннего приложения.

person juunas    schedule 26.04.2021