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 文件中 安装库 的所有详细信息。
Microsoft用于 Node.js的身份验证库 (v5.0.6):一个 Node.js 库,可用于在 JavaScript 应用程序中通过Microsoft标识平台进行身份验证和令牌获取。 实现以下 OAuth 2.0 协议,并且符合 OpenID。 请参阅GitHub上的源。
适用于 JavaScript 的 Microsoft 身份验证库(v5.4.0):基于浏览器的、与框架无关的浏览器库,可用于在 JavaScript 应用程序中通过Microsoft标识平台进行身份验证和令牌获取。 使用 PKCE 实现 OAuth 2.0 授权代码流,并且符合 OpenID。 请参阅GitHub上的源。
MSAL 中的本机身份验证支持:MSAL JS 提供本机身份验证 API,允许应用程序在其 Web 应用程序中实现具有端到端可自定义流的本机体验。 使用本机身份验证,用户可以完全自定义用户界面,包括设计元素、徽标放置和布局,确保外观一致且具有品牌。 原生身份验证功能适用于客户外部 ID 中的 SPA
用于 React 的 Microsoft 身份验证库 (v5.0.6):使用 React 的应用的 msal-browser 库包装器。 请参阅GitHub上的源。
适用于 Angular 的 Microsoft 身份验证库 (v5.1.1):使用 Angular 框架的应用的 msal-browser 库包装器。 请参阅GitHub上的源。
Microsoft Node 的身份验证扩展:Node 的 Microsoft 身份验证扩展为客户端应用程序提供安全机制,用于执行跨平台令牌缓存序列化和持久性。 它为用于 Node 的 Microsoft 身份验证库(MSAL)提供额外的支持。
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,这些版本已不再获得积极支持。
- 适用于 JavaScript 的 Microsoft 身份验证库 v2.x
- 适用于 Node.js v1.x 的Microsoft身份验证库
- 用于 React 的 Microsoft 身份验证库 v1.x
- 适用于 Angular 的 Microsoft 身份验证库 v2.x
包结构
有多种不同的包适用于不同的平台。 可以在以下包结构中查看包与它们实现的不同身份验证流之间的关系。
Samples
code samples演示了如何将适用于 JavaScript 的 Microsoft 身份验证库与身份平台配合使用。 每个代码示例都包含一个 README.md 文件,描述如何生成项目(如果适用)并运行示例应用程序。
有关面向 JavaScript 及其他语言、框架和平台的完整示例列表,请参阅 Microsoft 标识平台 代码示例。
对于本机身份验证功能, 示例应用 演示如何在 React 和 Angular Web 应用程序中使用本机身份验证。 每个代码示例都包含一个 README.md 文件,描述如何生成项目并运行示例应用程序。 当前本机身份验证 API 不支持跨域资源共享(CORS),示例应用将使用本地代理运行。
程序包版本控制
所有库都遵循 语义版本控制。 建议使用每个库的最新版本,以确保具有最新的安全修补程序和 bug 修复。
安全报告
如果发现我们的库或服务存在安全问题,请尽可能详细地将其报告给Microsoft 安全响应中心(MSRC)。