.NET Core Web API 身份验证和 .NET 身份

.NET Core Web API Authentication and .NET Identity

我最近接手了一个 .NET core MVC 项目,不得不用 API 扩展它。对于身份验证,使用 .NET 核心身份。来自 swift iOS/Mac 开发,我开始了一个演示项目并进行了一些基本的身份验证。

Microsofts Docs 上阅读身份时,他们关注 WebApps。所以我的问题是:

我的目标是创建受 jwt-auth 保护的路由,并能够获得带有用户名和密码的 jwt。

ASP.NET Core Identity 不适合保护 API,其他身份提供者的使用由 Docs:

指导

ASP.NET Core Identity adds user interface (UI) login functionality to ASP.NET Core web apps. To secure web APIs and SPAs, use one of the following:

  • Azure Active Directory
  • Azure Active Directory B2C (Azure AD B2C)
  • IdentityServer4

并且根据之前的 link:

IdentityServer4 is an OpenID Connect and OAuth 2.0 framework for ASP.NET Core. IdentityServer4 enables the following security features:

  • Authentication as a Service (AaaS)
  • Single sign-on/off (SSO) over multiple application types
  • Access control for APIs
  • Federation Gateway

所以你需要IdentityServer4

您应该为此使用身份服务器 4。

参考身份服务器 4 的简单示例,使用令牌保护客户端。

identity-server4 simple example

您需要了解更多内容,请参阅 identity server 4 official doc

另外你也可以关注step by step identity server setup video tutorial.