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 API OpenId-Connect 身份验证与 JWT 令牌使用 IdentityModel