Angular-Azure Key Vault管理Vault访问权限的机密

时间:2020-05-12 00:45:38

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

是否可以使用Azure Key Vault在Angular应用中获取Vault访问秘密?

我正在使用隐式流处理Azure Active Directory,这意味着我正在实现没有后端的所有内容。在我的Angular项目中,我正在使用Microsoft身份验证库(Angular MSAL)从Microsoft Identity Platform端点获取令牌以访问安全的Web API。现在,我想使用Azure Key Vault作为安全存储和访问机密的工具。我打算用它来保护客户端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,
    },
};

2 个答案:

答案 0 :(得分:2)

这是不可能的。此外,即使有可能,也不建议使用。 如果您可以连接到密钥库以在客户端使用javascript检索机密,则存在巨大的安全风险,因为任何人都可以访问您的机密。它不提供任何安全性。

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

希望有帮助, 问候

答案 1 :(得分:0)

您可以编写Azure函数来封装密钥库。天蓝色功能可以是受管身份,并且可以访问密钥库。该功能本身可以由Azure Active Directory保护,以便只有您的注册用户才能触发该功能。 然后,您的Angular应用程序可以调用Azure函数来获取机密。

致谢

Access key vault from Azure function

Secure Azure function with AAD