适用于 JavaScript 的 Microsoft 身份验证库(MSAL.js)

JavaScript 版 Microsoft Authentication Library 使客户端和服务器端 JavaScript 应用程序能够使用 Microsoft Entra ID 对工作和学校帐户、Microsoft 个人帐户(MSA)以及通过 Azure AD B2C 服务接入的社交身份提供者(如 Facebook、Google、领英、Microsoft 帐户等)的用户进行身份验证。 它还使应用能够获取令牌来访问Microsoft Cloud服务,例如Microsoft Graph。

核心库和封装库

该 lib 文件夹包含当前开发中 MSAL.js 库的源代码。 你还将找到有关在其各自的 README.md 文件中 安装库 的所有详细信息。

v5 中的新增功能

MSAL.js v5 引入了几个关键功能:

  • Cross-Origin-Opener-Policy (COOP) 支持:在具有严格 COOP 标头的环境中支持弹出式身份验证流程。
  • 模型上下文协议(MCP)身份验证:支持 AI 代理和工具集成的身份验证流。
  • 嵌套应用身份验证 (NAA):使用 createNestablePublicClientApplication 为在 Microsoft 365 主机应用程序内运行的应用启用身份验证。
  • localStorage AES-GCM 加密:使用 AES-GCM 加密 localStorage 中的令牌缓存以提高安全性。
  • 工厂函数:使用 createStandardPublicClientApplication 或 createNestablePublicClientApplication 通过异步配置初始化 MSAL。
  • 平台代理(WAM)集成:通过allowPlatformBroker配置选项启用Windows身份验证管理器(WAM)中转身份验证。

有关 MSAL JavaScript v5.x 的迁移指南,请参阅:

长期支持 (LTS) 中的库

下表显示了每个 MSAL.js 库的活动版本和 LTS 版本:

Library 当前版本 LTS 版本
msal-browser v5.x v2.x
msal-node v5.x v1.x
msal-react v5.x v1.x
msal-angular v5.x v2.x

托管在 msal-lts branch 上的 LTS 库已不再处于积极开发状态,但仍会获得关键安全缺陷修复支持。

注释

msal-lts 分支还包括 msal-browser 的 v3.x 和 v4.x,这些版本已不再获得积极支持。

包结构

有多种不同的包适用于不同的平台。 可以在以下包结构中查看包与它们实现的不同身份验证流之间的关系。

MSAL JavaScript 包结构图的屏幕截图。

Samples

code samples演示了如何将适用于 JavaScript 的 Microsoft 身份验证库与身份平台配合使用。 每个代码示例都包含一个 README.md 文件,描述如何生成项目(如果适用)并运行示例应用程序。

有关面向 JavaScript 及其他语言、框架和平台的完整示例列表,请参阅 Microsoft 标识平台 代码示例。

对于本机身份验证功能, 示例应用 演示如何在 React 和 Angular Web 应用程序中使用本机身份验证。 每个代码示例都包含一个 README.md 文件,描述如何生成项目并运行示例应用程序。 当前本机身份验证 API 不支持跨域资源共享(CORS),示例应用将使用本地代理运行。

程序包版本控制

所有库都遵循 语义版本控制。 建议使用每个库的最新版本,以确保具有最新的安全修补程序和 bug 修复。

安全报告

如果发现我们的库或服务存在安全问题,请尽可能详细地将其报告给Microsoft 安全响应中心(MSRC)。