是否可以在Angular应用中使用Azure Key Vault来获取金库访问秘密?
我正在使用隐式流与Azure Active Directory一起工作,这意味着我在没有后端的情况下实现一切。在我的Angular项目中,我使用微软认证库(Angular MSAL)从微软身份平台端点获取令牌来访问安全的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,
},
};
这是不可能的。即使有可能,也不建议这样做。如果你可以连接到钥匙库,在客户端的javascript中检索秘密,这是一个巨大的安全风险,因为任何人都可以访问你的秘密。
作为最佳实践,你不应该直接从客户端代码访问安全资源。
希望能帮到你,Regards。