.NET核心身份与IdentityServer4

时间:2018-01-20 10:53:32

标签: asp.net-core identityserver4 asp.net-core-identity

问题:我应该使用带有身份的.Net核心身份或IdentityServer 4

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

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

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

2 个答案:

答案 0 :(得分:11)

你真的无法比较两者。

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

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

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

答案 1 :(得分:7)

取决于。

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

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

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

您还可以查看{Identity}不如IdentityServer复杂的OpenIddict

相关问题