是否可以在Angular应用程序中使用Azure Key Vault来获取保管库访问密钥?
我正在使用隐式流使用Azure Active Directory,这意味着我将在没有后端的情况下实现所有内容。在我的Angular项目中,我使用Microsoft Authentication Library (Angular MSAL)从Microsoft Identity Platform端点获取令牌,以访问安全的web API。现在,我想使用Azure Key Vault作为安全存储和访问机密的工具。我计划用它来保护client-id,b2c-policy-name,b2c-scope。
我还没有找到任何关于在前端实现逻辑来管理Azure密钥库的可能性的信息。同时,我使用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,
},
};发布于 2020-05-12 13:00:28
这是不可能的。此外,即使有可能,也不建议这样做。如果你可以在客户端连接到key vault来检索javascript中的秘密,这是一个巨大的安全风险,因为任何人都可以访问你的秘密。它不提供任何安全性。
作为最佳实践,您永远不应该直接从客户端代码访问受保护的资源。
希望这能有所帮助,
发布于 2020-09-17 19:20:05
您可以编写Azure函数来封装密钥库。azure功能可以是受管理的身份,并且可以访问密钥库。该功能本身可以由Azure Active Directory保护,以便只有你的注册用户才能触发该功能。然后,您的Angular应用程序可以调用Azure函数来获取秘密。
问候
https://stackoverflow.com/questions/61741877
复制相似问题