ADAL 和 MSAL 混淆

Posted

技术标签:

【中文标题】ADAL 和 MSAL 混淆【英文标题】:ADAL and MSAL confusion 【发布时间】:2021-04-10 11:09:11 【问题描述】:

我的参考资料

据此,

从 2020 年 6 月 30 日起,我们将不再向 Azure Active Directory 身份验证库 (ADAL) 和 Azure AD 图形。我们将继续提供技术支持和安全保障 更新,但我们将不再提供功能更新。应用 将需要升级到 Microsoft 身份验证库 (MSAL) 和微软图形。了解更多

还有这个,

从 2022 年 6 月 30 日开始,我们将终止对 ADAL 和 Azure AD 的支持 Graph 将不再提供技术支持或安全保障 更新。在此时间之后使用 Azure AD Graph 的应用程序将不再 从 Azure AD Graph 端点接收响应。使用 ADAL 的应用程序 现有的操作系​​统版本将在此时间之后继续工作,但将 没有获得任何技术支持或安全更新。

和this link,

using Microsoft.IdentityModel.Clients.ActiveDirectory; // ADAL
using Microsoft.Identity.Client; // MSAL

ADAL 应替换为 MSAL。但是,我的项目没有引用上述任何一个库。

这些是我项目中的参考资料。

Microsoft.IdentityModel.JsonWebTokens
Microsoft.IdentityModel.Protocols.OpenIdConnect
Microsoft.IdentityModel.Tokens
Microsoft.Owin
Microsoft.Owin.Security
Microsoft.Owin.Security.Cookies
Microsoft.Owin.Security.OpenIdConnect
Owin

问题

我对这个主题的了解越多,我就越感到困惑,因为前一分钟我认为 ADAL 只是授权而不是身份验证,而下一分钟我看到它被称为 ADAL 身份验证。我只是想知道我是否需要更新我的身份验证代码才能继续工作。

由于我的项目没有引用Microsoft.IdentityModel.Clients.ActiveDirectory,并且只使用Azure AD进行身份验证而不是授权,这是否意味着此更改不会影响我? ADAL 和 MSAL 仅用于授权而不是身份验证,对吗?如果是这样,他们为什么引用 MSAL 和 Microsoft Graph,有什么区别?

【问题讨论】:

【参考方案1】:

由于您没有使用任何一个库(Microsoft.IdentityModel.Clients.ActiveDirectoryMicrosoft.Identity.Client)并且您仅使用 Azure AD 进行身份验证,因此我认为此更改不会影响您的项目。

关于他们为什么引用 MSALMicrosoft Graph 而不是 ADALAzure AD Graph 的问题。事实上,两者相似,变化很小。你可以参考这个document了解它们之间的区别。

【讨论】:

以上是关于ADAL 和 MSAL 混淆的主要内容,如果未能解决你的问题,请参考以下文章

ADAL 到 MSAL 迁移保护 Web API

ADAL 到 MSAL 的迁移(HttpActionContext.ControllerContext.RequestContext.Principal.IsAuthenticated 变得错误)

如何在不使用 ADAL.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成

如何使用MSAL.js为Azure DevOps获取有效的AAD v2令牌

如何使用 MSAL.js 为 Azure DevOps 获取有效的 AAD v2 令牌

Gradle ShadowJar 输出包含混淆和非混淆类