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

最佳答案

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

Auth0是提供托管服务的公司,该服务可以为您处理身份验证。他们运行基础架构,并通过其网站和API提供访问权限。这类似于让某人为您运行IdentityServer4,并且有多个竞争对手,例如Okta for DevsAWS CognitoAzure AD B2CGoogle Cloud Identity/Firebase等。

如果满足以下条件,请选择IdentityServer:

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

  • 如果满足以下条件,则选择Auth0:
  • 您想节省实现和操作的时间和精力。
  • 价格不是问题(因为某些功能可能会变得昂贵)。
  • Auth0提供的有限定制足以满足您的应用程序的需求。
  • 您需要它们提供的其他功能,例如密码破坏监视。
  • 您不想管理用户数据,或者不介意由用户存储数据。
  • 关于identityserver4 - IdentityServer4与Auth0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47058697/

    10-10 15:35