【问题标题】:Angular - Azure Key Vault Managing Vault Access secretsAngular - Azure Key Vault 管理 Vault 访问机密
【发布时间】:2020-08-27 17:06:21
【问题描述】:

是否可以使用 Azure Key Vault 在 Angular 应用中获取保管库访问机密?

我正在使用隐式流处理 Azure Active Directory,这意味着我在没有后端的情况下实现所有内容。在我的 Angular 项目中,我使用 Microsoft 身份验证库 (Angular MSAL) 从 Microsoft Identity Platform 端点获取令牌以访问安全的 Web API。现在,我想使用 Azure Key Vault 作为安全存储和访问机密的工具。我打算用它来保护client-id、b2c-policy-name、b2c-scope。

我没有找到有关在前端实现逻辑以管理 Azure Key Vault 的可能性的任何信息。同时,我使用 ENV 创建了一个 Node JS 服务器项目来管理 Azure Key Vault,它运行成功,但我想在我的 Angular 应用程序中获得同样的效果。

export const msalConfig: Configuration = {
    auth: {
        clientId: MY_CLIENT_ID, // I want to use Key Vault here
        authority: b2cPolicies.authorities.signUpSignIn.authority,
        redirectUri: 'http://localhost:6420/',
        postLogoutRedirectUri: 'http://localhost:6420/',
        navigateToLoginRequestUrl: true,
        validateAuthority: false,
      },
    cache: {
        cacheLocation: 'localStorage',
        storeAuthStateInCookie: isIE,
    },
};

【问题讨论】:

    标签: angular azure-active-directory azure-keyvault msal


    【解决方案1】:

    这是不可能的。另外,即使可以,也不推荐。 如果您可以连接到密钥库以在客户端的 javascript 中检索机密,这是一个巨大的安全风险,因为任何人都可以访问您的机密。它不提供任何安全性。

    作为最佳实践,您永远不应直接从客户端代码访问受保护的资源。

    希望对您有所帮助, 问候,

    【讨论】:

      【解决方案2】:

      您可以编写一个 Azure 函数来封装密钥保管库。 azure 函数可以是托管标识,并且可以访问密钥保管库。 Azure Active Directory 可以保护该功能本身,以便只有您的注册用户才能触发该功能。 然后,您的 Angular 应用程序可以调用 Azure 函数来获取密钥。

      问候

      Access key vault from Azure function

      Secure Azure function with AAD

      【讨论】:

        猜你喜欢
        • 2020-02-11
        • 2021-07-29
        • 2019-06-09
        • 2020-01-04
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 2020-04-26
        • 1970-01-01
        相关资源
        最近更新 更多