IdentityServer4与Auth0

IdentityServer4与Auth0,identityserver4,auth0,Identityserver4,Auth0,我们希望建立一个中央机构来为各种应用程序(.net)进行身份验证和授权。我们看到IdentityServer4是开源的、免费的,而Auth0需要花钱。有人同时使用这两种吗?有人能提供建议选择哪一个以及原因吗?Identity Server意味着构建一个服务器应用程序来处理身份验证和授权,它可以复制Auth0对OpenIdConnect(OIDC)所做的工作。即使使用IdentityServer4,也有一些事情需要实现。您需要先构建它,然后集成应用程序 Auth0允许您立即与OIDC集成,并具有其

我们希望建立一个中央机构来为各种应用程序(.net)进行身份验证和授权。我们看到IdentityServer4是开源的、免费的,而Auth0需要花钱。有人同时使用这两种吗?有人能提供建议选择哪一个以及原因吗?

Identity Server意味着构建一个服务器应用程序来处理身份验证和授权,它可以复制Auth0对OpenIdConnect(OIDC)所做的工作。即使使用IdentityServer4,也有一些事情需要实现。您需要先构建它,然后集成应用程序


Auth0允许您立即与OIDC集成,并具有其他和企业功能。

两者都实现了联邦协议,即WS-Fed、SAML和OpenID Connect

为了使用他们,你的应用程序。需要适当的客户端堆栈

如果他们没有这个,你就不能使用这些产品

唯一的选择是通过,即

或者查看通过ADFS WAP传递的ADFS

如果你有堆栈,两个都可以

idsrv4没有用户管理门户,例如创建用户、将组添加到用户OOTB

Auth0可以

idsrv4本质上是通过代码添加功能。Auth0具有配置。通过向导

idsrv4是开源的,因此您可以根据自己的心意进行定制。我发现桥接系统非常有用


Azure AD是另一个选项。

IdentityServer是一个实现各种身份验证(而非授权!)协议的库,让您可以将访问控制整合到单个系统中。只要HTTP端点可用,您就可以将其托管在典型的ASP.NET Web应用程序、控制台应用程序或任何其他应用程序中。它还允许您将用户数据存储在任何需要的位置,无论是内存、数据库、平面文件、asp.net核心成员资格系统还是其他任何位置

Auth0是一家提供托管服务的公司,可为您处理身份验证。他们运行基础设施,并通过其网站和API提供访问。这类似于让某人为您运行IdentityServer4,并且有多个竞争对手,如、等

如果:

  • 你想要免费的开源软件
  • 你有时间和精力自己运行它
  • 您希望控制备份数据存储(SQL数据库、Redis、JSON文件等)
  • 由于法规、隐私等原因,您希望自己管理所有数据
  • 您需要完全控制和灵活处理身份验证过程中发生的事情(例如,当有人登录时,在数据库中合并用户帐户)。这都是C代码,所以你可以做任何你想做的事
如果:

  • 您希望节省实施和操作的时间和精力
  • 价格不是问题(因为某些功能可能会变得昂贵)
  • Auth0提供的有限定制对于您的应用程序来说已经足够了
  • 你需要他们提供的其他功能,比如密码泄露监控
  • 您不想管理用户数据,或者不介意由用户存储数据

自2020年10月起更新——使用新的商业开源许可证来支持开发。还有其他类似的选择仍然是免费的。

谢谢。所以Auth0更像Azure AD-它是开箱即用的,但限制了自定义功能?是的,它有自己的登录屏幕如果你想让Auth0处理所有身份验证,也有办法让你拥有自己的登录页面标识服务器也会将你重定向到它的登录页面,但是,因为它在您的控制之下,您可以自定义登录页面的外观,但它们的工作方式与OIDC的工作方式相同。@MarkRedman所以我仍然对您的答案感到困惑——IS4是否可以用作集中授权“服务器”,其中包含多个不同应用程序的用户声明信息?与OP一样,我有多个使用Windows身份验证的.net应用程序,并且希望使用IS4作为一个独特的授权服务器,以发回用户声明信息。我所想到的是,IS4公开了一个restful API,在给定用户正在访问的用户名和应用程序的情况下,该API会发回特定用户的声明。查看文档,我不确定如何实现这样的东西。@los morales:可能值得浏览IdentityServer或auth0 quickstarts,并阅读OAuth和OIDC。这涉及到很多问题,需要了解每个人是如何团结在一起的。从我所读到的关于Identity Server的内容来看,如果你决定硬编码你的用户和客户端,它是免费的,但是IS4不能使用自定义数据库=>所以你必须购买他们的产品:Admin UI,这样你就可以将所有用户保存在一个数据库中。如果我错了,请纠正我。@AlexandraDamaschin:我会纠正你:IS4的演示都在内存中,但你可以自由使用用户存储、客户端存储、管理等的自定义实现。有一些内置功能,例如Asp.Identity,但它是以最小的基础提供的。如果你想要一个全面的、开箱即用的实现,这将花费你一些钱。@AlexandraDamaschin这是错误的。IdentityServer只是一个实现各种身份验证方案的库,具有很强的可扩展性。它对用户、客户端和API信息的实际存储位置没有任何要求,并提供了多个模板,包括内存(用于简单应用)、数据库、文件,甚至使用ASP.NET成员资格框架。在“Auth0 if”列表中,价格不是一个因素,节省时间听起来有点相互矛盾。设置identity server,让它运行,定制它,然后运行它,这一切都意味着时间和金钱。即使对于基本场景,IdSrv也需要一些小时的工作和一些基础设施才能运行。在哪一点上,每个余额的成本对我来说仍然是个谜…@CarlFauteux T