MSAL.NET(Microsoft.Identity.Client)是一个身份验证库,可用于从Microsoft Entra ID获取令牌以访问受保护的 Web API(Microsoft API 或注册Microsoft Entra ID的应用程序)。
MSAL.NET 可在多个.NET平台(桌面、移动和 Web)上使用。
支持的平台和应用程序体系结构
MSAL.NET 支持不同的应用程序拓扑,包括:
- 本机客户端(移动或桌面应用程序)代表用户调用Microsoft 图形 API。
- 守护程序、服务或 Web 客户端(Web 应用或 Web API)代表用户或没有用户调用Microsoft 图形 API。
有关支持的方案的详细信息,请参阅 方案。
MSAL.NET 支持多个平台,包括.NET、.NET框架和.NET MAUI。
注释
并非所有身份验证功能都适用于所有平台。
- 移动平台不允许机密客户端流。 它们不打算充当后端,并且无法安全地存储机密。
- 在公共客户端(移动和桌面)上,默认浏览器和重定向 URI 不同于平台到平台,代理可用性会有所不同( 浏览器使用情况文档中的详细信息)。
注释
MSAL.NET 已针对将 Microsoft Entra ID 用作身份提供程序 (IDP) 的场景进行了优化。 虽然可以将 MSAL.NET 与支持 OAuth 2.0 的第三方身份提供程序(IdP)配合使用, 0(尤其是在使用嵌入式浏览器或系统浏览器时(请参阅 浏览器使用情况文档))时,无法保证互操作性。 Microsoft 不为因第三方身份提供程序 (IDP) 集成而引发的问题提供支持。 此类方案被视为尽力而为,可能无法解决。
注释
MSAL.NET 版本 4.61.0 及更高版本不支持 通用 Windows 平台、Xamarin Android 和 Xamarin iOS。 有关弃用的详细信息,请阅读宣布即将弃用 MSAL.NET for Xamarin 和 UWP。
为何使用 MSAL.NET?
MSAL.NET 提供了多种获取令牌的方法。 使用 MSAL.NET 比使用泛型 OAuth 库或针对协议编写调用要容易得多。 MSAL.NET 提供了多项开箱即用的优势,可简化开发人员的工作流程:
- 维护令牌缓存并在令牌即将过期时为你刷新令牌。
- 帮助你指定希望应用程序登录的受众(组织、多个组织、工作、学校和Microsoft个人帐户、具有Microsoft Entra 外部 ID的社交标识或主权和国家云中的用户)。
- 帮助你通过 配置文件 设置应用程序。
- 通过公开可操作的异常、日志记录和遥测,帮助对应用进行故障排除。
MSAL.NET 入门
- 了解 MSAL.NET 使用方案。
- 向 Microsoft Entra ID 注册应用。
- 了解 客户端应用程序的类型:公共客户端和机密客户端。
- 了解如何 获取令牌 以访问受保护的 API。
Considerations
MSAL.NET 用于获取令牌。 它不用于保护 Web API。 如果有兴趣使用 Microsoft Entra ID 保护 Web API,请查看:
- 适用于 ASP.NET Core 的 Microsoft Entra ID。 示例展示了使用 MSAL.NET 调用 Web API 的 Web 应用。
- active-directory-dotnet-native-aspnetcore-v2 演示如何使用 Microsoft Entra ID 从WPF应用程序调用 ASP.NET Core Web API。
- 适用于 .NET 的 IdentityModel 扩展 开源库提供 ASP.NET 和 ASP.NET Core 用于保护 API 的中间件。
从Azure Active Directory身份验证库迁移 (ADAL)
.NET的 Microsoft 身份验证库 (MSAL)是可用于身份验证令牌获取的受支持库。 如果你或你的组织正在使用Azure Active Directory身份验证库 (ADAL),则应迁移到 MSAL。 ADAL 于 2023 年 6 月 30 日结束。
注释
尽管 ADAL 自 2023 年 6 月 30 日以来已弃用,但依赖于 ADAL 的应用程序不应中断,因为基础终结点将保持活动状态。 但是,ADAL 不会提供新功能或支持。
Releases
有关以前的版本,请参阅GitHub上的版本。
有关正在进行的工作和将来的版本,请参阅 里程碑。
有关版本控制的详细信息,请参阅语义版本控制 - API 更改管理,以了解 MSAL.NET 公共 API 中的更改。
Samples
请参阅 我们的综合示例列表。