.NET核心身份与IdentityServer4

fer*_*and 9 asp.net-core identityserver4 asp.net-core-identity

问题:我应该使用.Net Core Identity或IdentityServer 4 with Identity

我需要使用登录/注册功能构建应用程序,并允许用户使用API​​从我的软件导入/导出数据.我也希望有外部登录,如谷歌,推特等.

而且我无法理解为什么在只使用Identity可以完成所有事情时我需要Identity Server.

我为什么需要或想要IdentityServer?我只需要尽可能简单地完成工作.

lea*_*ege 13

你真的无法比较这两者.

ASP.NET Identity是一个用于管理用户,角色,声明,电子邮件确认令牌等的数据库API.您可以使用它来实现注册,登录,更改密码等.

IdentityServer是OpenID Connect和OAuth 2.0实现.它为您提供单点登录和API访问控制等功能.如果要在多个客户端应用程序之间共享用户,这非常有用.

您可以将两者结合使用 - 使用IdentityServer进行协议工作,使用ASP.NET Identity进行中央登录页面上的用户管理.

  • @kuldeep 协议工作很可能意味着授权流程、请求令牌等。 (2认同)

Tom*_*art 9

这取决于.

IdentityServer将为您提供OAuth 2.0和OpenID Connect实施,它将为您处理所有详细信息(为您提供端点,令牌管理,范围,授权等).它独立运行,因此您可以将它用于多个客户端(SPA,移动设备,Web应用程序),并且与应用程序的其余部分完全隔离.如果您愿意,可以将它与ASP.NET Core Identity一起使用.

如果您不使用IdentityServer,则必须自己编写其中的一些内容,因为ASP.NET Core Identity是一个成员资格系统,它不提供任何现成的端点,也不提供令牌管理或支持不同的授权方式.

您需要评估自己编写这些内容是否更好,但设置更简单,因为您可能不需要IdentityServer提供的所有内容,尽管它可能会限制您的使用.

您还可以看一下比IdentityServer 简单的OpenIddict.