适用于 JavaScript 的 MSAL 库使客户端 JavaScript 应用程序能够通过 Azure AD B2C 服务,使用 Microsoft Entra ID 工作和学校帐户、Microsoft 个人帐户 (MSA) 以及 Facebook、Google、领英、Microsoft 帐户等社交身份提供程序对用户进行身份验证。 它还使应用能够获取令牌来访问Microsoft Cloud服务,例如Microsoft Graph。
该 @azure/msal-browser 包使用带有 PKCE 的 OAuth 2.0 授权代码流在 JavaScript 单页应用程序中启用身份验证。 它不支持隐式流。 当前版本 MSAL.js v5.x。 如果使用的是较旧版本,请参阅要升级的 迁移指南 。
先决条件
@azure/msal-browser旨在用于 单页应用程序场景。在使用
@azure/msal-browser之前,您需要在Microsoft Entra ID 中注册单页应用程序,以获取可用于配置的有效clientId,并注册您的应用可接受重定向流量的路由。
主要功能
MSAL Browser 为单页应用程序提供以下功能:
- 使用弹出窗口或重定向流程让用户登录
- 通过缓存或刷新以无提示方式获取令牌
- 支持 Cross-Origin-Opener-Policy (COOP) 弹出流
- 模型上下文协议 (MCP) 身份验证
- 通过平台代理程序(WAM)实现的设备绑定令牌
- localStorage 中使用 AES-GCM 加密的令牌缓存
- 所有权证明 (PoP) 令牌
- 跨选项卡和应用程序的单一登录
- Microsoft 365应用的嵌套应用身份验证 (NAA)
Installation
通过 NPM
npm install @azure/msal-browser
Samples
该msal-browser-samples文件夹包含库的示例应用程序。
有关运行示例的更多说明,请参阅 README.md VanillaJSTestApp2.0 文件夹的文件。
可以在GitHub上的Azure示例空间中找到教程支持的更多高级示例:
- JavaScript SPA 调用 Express.js Web API
- JavaScript SPA 使用代理流通过 Express.js Web API 调用 Microsoft Graph
- 有关Azure 应用服务和Azure 存储的部署教程
框架包装器
如果您使用 Angular 或 React 等框架,您可能会对我们的封装库感兴趣:
- Angular:
@azure/msal-angular(当前:v5.1.1) - React:
@azure/msal-react(当前:v5.0.6)