集成 Microsoft.Identity.Web 与 ASP.NET Framework 和 .NET Standard

Microsoft。Identity.Web 将Microsoft Entra ID身份验证扩展到 .NET Framework 和 .NET Standard 应用程序。 本文可帮助你为方案选择合适的包和集成模式。

选择场景

选择与应用程序类型匹配的集成模式。 Microsoft Entra为 Web 应用和后台服务提供不同的包。

MSAL.NET与Microsoft.Identity.Web包

针对控制台应用、守护程序服务和非 Web .NET Framework 应用程序

使用 Microsoft.Identity.Web.TokenCache 和 Microsoft.Identity.Web.Certificate 包,与 MSAL.NET 一起用于:

  • 令牌缓存序列化(SQL Server、Redis、Cosmos DB、PostgreSQL)
  • 从 KeyVault、证书存储或文件系统加载证书
  • 控制台应用程序和守护程序服务
  • .NET标准 2.0 库

适用于 Microsoft.Identity.Web 的 MSAL.NET 指南


用于 ASP.NET MVC/Web API 的 OWIN 集成

适用于 ASP.NET MVC 和 Web API 应用程序

使用 Microsoft.Identity.Web.OWIN 包以实现功能齐全的 Web 身份验证。

  • 用于自动获取令牌的 TokenAcquirerFactory
  • 用于轻松访问Microsoft Graph和下游 API 的控制器扩展
  • 分布式令牌缓存支持
  • 增量同意处理

OWIN 集成指南


比较集成选项

下表总结了两种集成方法之间的主要差异。

功能 MSAL.NET + 令牌缓存/证书 OWIN 集成
Microsoft.Identity.Web.TokenCache
Microsoft.Identity.Web.Certificate
Microsoft.Identity.Web.OWIN
目标 控制台应用、守护程序、工作服务 ASP.NET MVC,ASP.NET Web API
身份验证 手动 MSAL.NET 配置 自动 OWIN 中间件
令牌获取 手动操作 IConfidentialClientApplication 使用控制器扩展自动
令牌缓存 所有提供程序(SQL、Redis、Cosmos、PostgreSQL) 所有提供程序(SQL、Redis、Cosmos、PostgreSQL)
证书加载 KeyVault、store、file、Base64 通过 MSAL.NET 配置
Microsoft Graph 手动 GraphServiceClient 设置 this.GetGraphServiceClient()
下游 API 使用令牌手动进行 HTTP 调用 this.GetDownstreamApi()
增量许可 手动验证处理 自动使用 MsalUiRequiredException

查看可用的包

Microsoft.Identity.Web 1.17+ 开始,可以在非 ASP.NET Core 环境中使用 Microsoft Identity 库。 以下包面向 .NET Framework 和 .NET Standard 工作负荷。

可用包

Package Purpose 目标应用程序
Microsoft。Identity.Web.TokenCache 用于 MSAL.NET 的令牌缓存序列化程序 控制台、守护程序、工作者服务
Microsoft.Identity.Web.Certificate 证书加载工具 控制台、守护程序、工作者服务
Microsoft。Identity.Web.OWIN OWIN 中间件集成 ASP.NET MVC,ASP.NET Web API

了解包权益

这些包无需 ASP.NET Core即可简化常见身份验证任务。

功能 益处
令牌缓存序列化 内存中、SQL Server、Redis、Cosmos DB、PostgreSQL 的可重用缓存适配器
证书助手 从 KeyVault、文件系统或证书存储中简化的证书加载
OWIN 集成 ASP.NET MVC/Web API 的无缝身份验证
.NET 标准版 2.0 与 .NET Framework 4.7.2+、.NET Core 和 .NET 5+ 兼容
最小依赖项 目标包没有 ASP.NET Core 依赖项

浏览示例应用程序

将这些示例用作你自己的实现的起点。

MSAL.NET 示例

OWIN 示例