Microsoft 身份验证库 (MSAL) 的概述
借助 Microsoft 身份验证库 (MSAL),开发人员能够从 Microsoft 标识平台获取安全令牌,以便对用户进行身份验证并访问受保护的 Web API。 它可用于提供对 Microsoft Graph、Microsoft API、第三方 Web API 或你自己的 Web API 的安全访问。 MSAL 支持不同的应用程序体系结构和平台,包括 .NET、JavaScript、Java、Python、Android 和 iOS。
MSAL 是一个令牌获取库,它提供多种获取令牌的方法,并为受支持的平台提供一致的 API。 使用 MSAL 具有以下好处:
- 无需直接针对 OAuth 协议编写应用程序。 管道由库处理。
- 可以代表用户或应用程序获取令牌(如果适用于平台)。
- 库在令牌缓存即将过期时为你维护令牌缓存并刷新令牌。 你不需要自行处理令牌过期。
- 可帮助你指定你希望应用程序登录的受众。 登录受众可以包括个人 Microsoft 帐户、具有Microsoft Entra 外部 ID组织、工作、学校或主权和国家云中的用户的社会标识。
- 可帮助你通过配置文件设置应用程序。
- 可显示可操作异常、日志和遥测,从而帮助你对应用进行故障排除。
应用程序类型和方案
使用 MSAL,可以为许多应用程序类型获取令牌:Web 应用程序、Web API、单页应用(JavaScript)、移动和本机应用程序,以及守护程序和服务器端应用程序。
MSAL 可用于多个应用程序方案,包括:
- 单页应用程序 (JavaScript)
- 登录用户的 Web 应用程序
- Web 应用程序登录用户并代表用户调用 web API
- Web API 身份验证,确保只有经过身份验证的用户才能访问它
- Web API 代表已登录用户调用其他下游 Web API
- 桌面应用程序代表已登录用户调用 Web API
- 代表以交互方式登录的用户调用 Web API 的移动应用程序
- 桌面/服务守护程序应用程序代表自己调用 Web API
语言和框架
Library | 支持的平台和框架 |
---|---|
MSAL.NET | .NET Framework、.NET、Xamarin、通用 Windows 平台 |
MSAL Java | Windows、macOS、Linux |
MSAL Python | Windows、macOS、Linux |
MSAL.js | JavaScript/TypeScript 框架,例如 Vue.js、Ember.js 或 Durandal.js |
MSAL Node | Express 的 Web 应用、Electron 的桌面应用、跨平台控制台应用 |
MSAL React | 采用 React 和基于 React 的库(Next.js、Gatsby.js)的单页应用 |
MSAL Angular | 采用 Angular 和 Angular.js 框架的单页应用 |
适用于 Android 的 MSAL | Android |
适用于 iOS 和 macOS 的 MSAL | iOS 和 macOS |
MSAL Go | Windows、macOS、Linux |