0

我有一个打字稿应用程序,我需要从该应用程序连接到 Azure Blob 存储。我已将 blob 连接字符串详细信息放在 Azure 密钥保管库服务中。但是要调用密钥库 URL 来访问这些密钥和机密,我需要在我的 Typescript 页面中包含客户端 ID、客户端机密。但作为前端页面,任何人都可以从浏览器控制台看到这些秘密。我们怎样才能摆脱这种情况。以下任何一种解决方案都可以解决我的问题。请让我们知道。

1.有没有办法从浏览器控制台窗口中隐藏这些秘密。所以它不会在浏览器中显示。

2.是否有任何方法可以在不提供客户端 ID 和客户端机密的情况下从 typecipt 页面对 Azure 密钥库使用其他身份验证。

4

1 回答 1

1

1.有没有办法从浏览器控制台窗口中隐藏这些秘密。所以它不会在浏览器中显示。

不,如果您的应用程序可以看到它,那么用户也可以。

2.是否有任何方法可以在不提供客户端 ID 和客户端机密的情况下从 typecipt 页面对 Azure 密钥库使用其他身份验证。

是的,尽管我认为这是个坏主意。代表已登录用户访问 Key Vault 可以在没有秘密的情况下工作,但连接字符串仍然可见,并且允许用户继续访问 Blob 存储。

这里更好的选择可能是以用户身份访问 Blob 存储。

  1. 将 Blob 数据读取者角色分配给您希望他们能够访问的存储帐户/blob 容器上的用户
  2. 在 Azure AD 中注册应用,需要user_impersonation从 API 权限选项卡获得 Azure 存储的权限
  3. 使用MSAL对用户进行身份验证
  4. 获取 Azure 存储的访问令牌,范围为:https://storage.azure.com/user_impersonation
  5. 使用令牌调用存储 API

不需要访问密钥,也没有给用户任何秘密。这一切都基于用户的访问权限,而不是应用程序的访问权限。由于我们无法验证前端应用程序,这就是我们可以在前端执行的操作。

另一种选择是从后端应用程序发出请求。

于 2021-04-26T05:40:40.600 回答