是否可以使用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,
},
};
答案 0 :(得分:2)
这是不可能的。此外,即使有可能,也不建议使用。 如果您可以连接到密钥库以在客户端使用javascript检索机密,则存在巨大的安全风险,因为任何人都可以访问您的机密。它不提供任何安全性。
作为最佳实践,您永远不要直接从客户端代码访问受保护的资源。
希望有帮助, 问候
答案 1 :(得分:0)
您可以编写Azure函数来封装密钥库。天蓝色功能可以是受管身份,并且可以访问密钥库。该功能本身可以由Azure Active Directory保护,以便只有您的注册用户才能触发该功能。 然后,您的Angular应用程序可以调用Azure函数来获取机密。
致谢