将应用程序迁移到 Microsoft 身份验证库 (MSAL)

如果有任何应用程序使用 Azure Active Directory 身份验证库 (ADAL) 进行身份验证和授权功能,则现在需要将它们迁移到 Microsoft 身份验证库 (MSAL)

  • Microsoft 对 ADAL 的所有支持和开发(包括安全修补程序)已在 2023 年 6 月 30 日结束。
  • 在该弃用日期之前,没有计划的 ADAL 功能版本或新的平台版本。
  • 自 2020 年 6 月 30 日以来,未向 ADAL 添加过任何新功能。

警告

Azure Directory 身份验证库 (ADAL) 已弃用。 虽然使用 ADAL 的现有应用可以继续工作,但 Microsoft 将不再发布 ADAL 的安全修补程序。 使用 Microsoft 身份验证库 (MSAL),以避免应用的安全性面临风险。

为什么要切换到 MSAL?

如果已经使用 Azure AD (v1.0) 终结点开发了应用,那么你可能正在使用 ADAL。 由于 Microsoft 标识平台 (v2.0) 终结点已发生重大变化,因此新库 (MSAL) 完全是为新终结点构建的。

MSAL 设计用来提供安全的解决方案,使开发人员无需担心实现细节。 它简化并管理令牌的获取、管理、缓存和刷新,并使用最佳做法来实现复原能力。 建议使用 MSAL 来提高你开发的客户端应用程序中身份验证和授权的复原能力

与 ADAL 相比,MSAL 具有多种优势,包括以下功能:

功能 MSAL ADAL
安全性
2023 年 6 月之后的安全修补程序 2023 年 6 月之后的安全修补程序 - MSAL 提供该功能 2023 年 6 月之后的安全修补程序 - ADAL 不提供该功能
根据 Microsoft Graph 和其他支持连续访问评估 (CAE) 的 API 的策略或关键事件主动刷新和撤销令牌。 根据 Microsoft Graph 和其他支持连续访问评估 (CAE) 的 API 的策略或关键事件主动刷新和撤销令牌 - MSAL 提供该功能 根据 Microsoft Graph 和其他支持连续访问评估 (CAE) 的 API 的策略或关键事件主动刷新和撤销令牌 - ADAL 不提供该功能
符合 OAuth v2.0 和 OpenID Connect (OIDC) 的标准 符合 OAuth v2.0 和 OpenID Connect (OIDC) 的标准 - MSAL 提供该功能 符合 OAuth v2.0 和 OpenID Connect (OIDC) 的标准 - ADAL 不提供该功能
用户帐户和体验
Microsoft Entra 帐户 Microsoft Entra 帐户 - MSAL 提供此功能 Microsoft Entra 帐户 - ADAL 提供此功能
Microsoft 帐户 (MSA) Microsoft 帐户 (MSA) - MSAL 提供该功能 Microsoft 帐户 (MSA) - ADAL 不提供该功能
Azure AD B2C 帐户 Azure AD B2C 帐户 - MSAL 提供该功能 Azure AD B2C 帐户 - ADAL 不提供该功能
身份验证体验
通过主动令牌刷新进行持续访问评估 主动令牌续订 - MSAL 提供该功能 主动令牌续订 - ADAL 不提供该功能
限制 限制 - MSAL 提供该功能 限制 - ADAL 不提供该功能
Auth 中介支持 基于设备的条件访问策略 - MSAL 内置了该功能 基于设备的条件访问策略 - ADAL 不提供该功能
令牌保护 令牌保护 - MSAL 提供该功能 令牌保护 - ADAL 不提供该功能

MSAL 相比 ADAL 的其他功能

  • 所有权证明令牌
  • 在移动设备上进行的 Microsoft Entra 基于证书的身份验证 (CBA)
  • 移动设备上的系统浏览器
  • 其中 ADAL 只有身份验证上下文类,MSAL 则公开了客户端应用(公共客户端和机密客户端)集合的概念。

MSAL 中的 AD FS 支持

可使用 MSAL.NET、MSAL Java、MSAL.js 和 MSAL Python 从 Active Directory 联合身份验证服务 (AD FS) 2019 或更高版本获取令牌。 MSAL 不支持早期版本的 AD FS,包括 AD FS 2016。

如果需要继续使用 AD FS,应升级到 AD FS 2019 或更高版本,然后再将应用程序从 ADAL 更新为 MSAL。

如何迁移到 MSAL

在开始迁移之前,需要确定哪些应用正在使用 ADAL 进行身份验证。 按照以下文章中的步骤使用 Azure 门户获取列表:

确定使用 ADAL 的应用后,根据应用类型将它们迁移到 MSAL:

单页应用 (SPA)

MSAL 支持各种应用程序类型和场景。 请参阅针对多种应用程序类型的 Microsoft 身份验证库支持

以下链接提供了适用于不同平台的 ADAL 到 MSAL 迁移指南:

迁移帮助

如果对将应用从 ADAL 迁移到 MSAL 有疑问,可以参考以下选项:

  • 将问题发布在 Microsoft Q&A 上并用 [azure-ad-adal-deprecation] 标记。
  • 在库的 GitHub 存储库中创建问题。 请参阅 MSAL 概述文章的语言和框架部分,获取指向每个库的存储库的链接。

如果你与独立软件供应商 (ISV) 合作开发应用程序,建议你直接联系他们,了解他们向 MSAL 迁移的过程。

后续步骤

若要详细了解 MSAL(包括使用情况信息以及可用于不同编程语言和应用程序类型的库),请参阅: