代码之家  ›  专栏  ›  技术社区  ›  ferdinand

.NET Core Identity vs IdentityServer4

  •  64
  • ferdinand  · 技术社区  · 8 年前

    问题是:我应该使用吗。Net核心标识或具有标识的IdentityServer 4

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

    我不明白为什么我需要Identity Server,而所有的事情都可以只用Identity完成。

    为什么我需要或想要IdentityServer?我只需要把工作做好,尽可能简单。

    2 回复  |  直到 7 年前
        1
  •  51
  •   leastprivilege    8 年前

    你真的无法将两者进行比较。

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

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

    您可以结合使用IdentityServer进行协议工作和ASP。NET标识,用于中央登录页上的用户管理。

        2
  •  37
  •   TomáÅ¡ Linhart    8 年前

    视情况而定。

    IdentityServer将为您提供OAuth 2.0和OpenID Connect实现,它将为您处理所有细节(提供端点、令牌管理、作用域、授权等)。它独立运行,因此您可以将其用于多个客户端(SPA、移动、web应用程序),并且它与应用程序的其余部分很好地隔离开来。如果您愿意,可以将其与ASP一起使用。NET核心标识。

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

    您需要评估自己编写这些东西是否更好,但要有一个更简单的设置,因为您可能不需要IdentityServer提供的所有内容,尽管它可能会限制您将来的工作。

    你也可以看看 OpenIddict 这没有IdentityServer复杂。

    推荐文章