.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有啥区别?

Posted

技术标签:

【中文标题】.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有啥区别?【英文标题】:What is the difference between AddJwtBearer and AddOpenIdConnect in .NET Core Authentication?.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有什么区别? 【发布时间】:2020-05-08 00:21:31 【问题描述】:

我一直在研究使用 Azure AD 为我正在构建的 API 进行 .NET Core 身份验证的基础知识,并且一直在尝试查找有关身份验证方案的信息。我知道基于 cookie 和基于令牌的身份验证之间的区别,但在我看来,JwtBearer 和 OpenIdConnect 选项非常相似,因为它们都基于令牌系统工作。

我进行了很多搜索,但找不到任何地方可以解释两者之间的差异,在哪些情况下您会使用其中一个而不是另一个,甚至找不到这些方法的作用的定义。我看过很多在线教程,甚至是各种 YouTube 视频,其中大约 60% 使用 AddJwtBearer,其他使用 AddOpenIdConnect 来指定他们的身份验证方案。有人能解释一下它们的作用和区别是什么吗?

【问题讨论】:

【参考方案1】:

您使用 AddJwtBearer 来保护 API,这意味着 API 的客户端会发送 JWT 令牌来访问 API,否则无需人工交互。

AddOpenIdConnect,您用于保护网络应用程序,您可以在其中进行人工交互(登录/注销...),因为您通常会将用户重定向到您的身份提供者。

【讨论】:

以上是关于.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core 中的按操作身份验证处理程序

ASP.Net-Core 中的自定义身份验证

asp.Net core 2.2中的多种身份验证方法

ASP.NET Core 中的混合身份验证(Windows 和 AAD JwtBearer)

.NET Core 身份验证中的 AddJwtBearer 和 AddOpenIdConnect 有啥区别?

如何使 ASP.NET Core 中的身份验证 cookie 无效?