4

在 Angular6+ 应用程序中实现 MSAL 库以与 AZURE AD 集成时,我需要一些输入。

当我阅读微软文档时,我遇到了两个流程“隐式授权流程”和“身份验证代码流程”。微软团队自己建议,与“隐式授权流”相比,“身份验证代码流”必须被实现为安全的。

我正在开发一个 Angular6+ 应用程序,我必须将它与 AZURE AD 集成。当我检查 MSAL 库的角度时,我只能找到 1 个版本“npm i @azure/msal-angular”,我假设它实现了“隐式授权流”。我必须实现“身份验证代码流”。

任何人都可以在这方面提供帮助。

4

2 回答 2

5

这里有两个混淆,一个是关于流的安全性,另一个是关于 MSAL 是否支持身份验证代码(w/PKCE)。

  1. 验证代码流与隐式流

您不应将此理解为“身份验证代码是安全的,而隐式流程是不安全的”。这些是相对术语;也就是说,auth core 被认为比隐式流更安全。但是,在某些用例中,隐式流被认为同样好(例如,用户会话超时很短)。互联网上有一些关于这个的争论。

  1. 将 MSAL.js 与 Angular 一起使用

当前的MSAL.js 2.x(msal 浏览器)实现了身份验证代码(带 PKCE)流。你没有理由不在你的 Angular 项目中使用它。还有一个MSAL-Angular包装库,它带有一些额外的功能和粘合代码,它是实现隐式流的库(因为它基于 MSAL.js 1.x aka msal-core)。然而,你不必仅仅因为你有一个 Angular 项目就使用它。相反,您可以直接使用 MSAL.js 2.x 创建自己的身份验证服务。

于 2020-08-14T19:34:27.607 回答
0

当我第一次发布此内容时,我相信 MSAL 库不支持授权代码流 (PKCE) - 但现在已经改变 - 请参阅上方和下方的评论

其他选择?

当然,OAuth 是关于标准的——Azure AD 是基于标准的——所以你可以将任何受人尊敬的库用于你的技术堆栈。

例如,我针对 Azure AD 和其他提供程序使用了oidc-client 库

于 2020-08-14T14:23:51.603 回答