ASP.NET Core 中的 Jwt 令牌身份验证

Posted

技术标签:

【中文标题】ASP.NET Core 中的 Jwt 令牌身份验证【英文标题】:Jwt token authentication in ASP.NET Core 【发布时间】:2021-12-17 11:55:34 【问题描述】:

我正在构建一个 ASP.NET Core Web 应用程序和 Angular,我想使用基于令牌的身份验证来保护它。我对身份验证机制相对较新,所以没有什么澄清。

我决定使用本教程链接使用基于 jwt 令牌的身份验证 https://medium.com/c-sharp-progarmming/asp-net-core-5-jwt-authentication-tutorial-with-example-api-aa59e80d02da

我还遇到了另一个教程,它解释了使用 owin 进行身份验证的基于令牌 https://www.c-sharpcorner.com/UploadFile/ff2f08/token-based-authentication-using-Asp-Net-web-api-owin-and-i/

现在我的问题是 link1 实现了哪个协议?是欧文吗?我们是否需要一个单独的服务器来维护称为 OAuth 授权框架的东西,如链接 2 中所述。

OWIN、OAuth 和 Identity 之间有什么区别?如果我遵循 link1 并使用基于 jwt 令牌的身份验证来保护应用程序,那么所有这些概念是否在内部使用?

【问题讨论】:

【参考方案1】:

OWIN 是一个中间件,OAuth 是协议。如果您使用的是 .NET core 或 .NET 5,请尝试使用 .NET core 中间件进行身份验证/授权。关注第一个链接(中)

如果您需要一个完整的身份服务器,那么您必须创建一个单独的身份服务器,如果您只需要令牌,您可以在您的项目中实现它们,但推荐的方法是创建一个用于身份管理的服务器。

【讨论】:

以上是关于ASP.NET Core 中的 Jwt 令牌身份验证的主要内容,如果未能解决你的问题,请参考以下文章

从 ASP.NET Core 中的 API 读取 JWT 令牌

ASP.NET Core API 使用 JWT 不记名令牌进行身份验证

如何使用 Microsoft 身份平台身份验证在 ASP.NET Core Web 应用程序中获取 JWT 令牌?

ASP.net Core 2.0 JWT 令牌刷新

Asp.Net Core API OpenId-Connect 身份验证与 JWT 令牌使用 IdentityModel

ASP.NET Core JWT 令牌无法通过 HttpClient 工作