Asp.net core 在.NET Core中注册和登录用户,IdentityServer从何而来?

Asp.net core 在.NET Core中注册和登录用户,IdentityServer从何而来?,asp.net-core,identityserver4,Asp.net Core,Identityserver4,我已经阅读了IdentityServer 4,并了解了它试图做什么,但我仍在努力理解它如何适合我正在尝试做的事情 这是我的情况 我想构建一个.NET核心API,为x数量的客户端提供动力,目前我所能想到的只是一个ReactJS应用程序和一个本地移动应用程序 在.NET Core API上,我可以公开用户注册和用户登录的端点,我可以将[Authorize]属性添加到我想要保护的端点,我甚至需要IdentityServer 4吗 如果您能解释一下这件事,我将不胜感激。最好将IdentityServe

我已经阅读了IdentityServer 4,并了解了它试图做什么,但我仍在努力理解它如何适合我正在尝试做的事情

这是我的情况

我想构建一个.NET核心API,为
x
数量的客户端提供动力,目前我所能想到的只是一个ReactJS应用程序和一个本地移动应用程序

在.NET Core API上,我可以公开用户注册和用户登录的端点,我可以将
[Authorize]
属性添加到我想要保护的端点,我甚至需要IdentityServer 4吗


如果您能解释一下这件事,我将不胜感激。

最好将IdentityServer看作“分布式身份验证”,因为它基本上就是这样。而使用Identity之类的工具,您可以直接在数据库中检查用户的凭据,使用IdentityServer从数据库中读取他们的角色、声明等,这一切基本上都是通过API层实现的

换句话说,您只需使用IdentityServer设置一个应用程序,该应用程序充当您的身份验证和授权网关,然后您的所有其他应用程序通过一个可用的身份验证方案“挂钩”到此应用程序。对于API,这类似于承载令牌。对于移动应用程序,您可能会使用混合身份验证/OpenID连接。第三方/松散相关的站点将使用OAuth工作流


无论采用何种方案,IdentityServer都会简单地返回一个主体,您的其他应用程序将使用该主体,就像它们通过Identity之类的东西直接进行身份验证一样。

与其在此处键入OpenID Connect的介绍,不如将您引向IdentityServer 4的作者所作的精彩演示:


这应该能够解释它如何适合您的拓扑结构

您可以使用Identity CoreThank@ChrisPratt实现您的既定目标,但当我有一个.NET Core API时,您提到的那些事情,例如检查用户信誉、角色等等,都是通过API实现的,我还缺少什么?谢谢@mackie,我会听一听:)