我们希望建立一个中央权限,为我们的各种应用程序(.net)进行身份验证和授权。我们看到IdentityServer4是开源免费的,而Auth0则需要花钱。有没有人同时使用这两种?任何人都可以提供建议选择哪个以及为什么?
答案 0 :(得分:8)
IdentityServer是一个库,可实现各种身份验证(非授权!)协议,让您将访问控制整合到单个系统中。只要HTTP端点可用,就可以将其托管在典型的ASP.NET Web应用程序,控制台应用程序或其他任何应用程序中。它也可以让您存储用户和访问数据,任何你想要的,无论是在存储,数据库,平面文件,或其他地方。
Auth0不是库,而是托管和托管服务。他们运行基础架构,并通过网站和API提供访问权限。类似于为您运行一些IdentityServer4,并且有一些竞争对手,例如Okta,AWS Cognito,Azure AD B2C,Google Cloud Customer Identity等。
在以下情况下选择IdentityServer
:在以下情况下选择Auth0:
答案 1 :(得分:2)
Identity Server意味着构建一个服务器应用程序来处理身份验证和授权,这可以复制Auth0为OpenIdConnect(OIDC)所做的事情,即使您使用IdentityServer4也会有一些事情要实现。您需要先构建它,然后集成您的应用程序。
Auth0允许您立即与OIDC集成以及额外的&企业特色。
答案 2 :(得分:2)
它们都实现了联邦协议,即WS-Fed,SAML和OpenID Connect。
为了使用它们的应用程序。需要适当的客户端堆栈。
如果他们没有这个,你就不能使用这些产品。
唯一的选择是传递,即Auth0。
或者查看通过ADFS WAP传递的ADFS。
如果你有堆栈,两者都可以完成这项工作。
idsrv4没有用户管理门户网站,例如创建用户,向用户添加组OOTB。
Auth0确实。
idsrv4实际上是通过代码添加功能。 Auth0有配置。通过向导。
idsrv4是开源的,因此您可以根据自己的内容进行自定义。我觉得桥接系统真的很有用。
Azure AD是另一种选择。
答案 3 :(得分:0)
IdentityServer 是一个用于 ASP.NET Core 的开源 OpenID Connect 和 OAuth 2.0 框架,在开发社区中尤其受欢迎。 IdentityServer4 成为基于 .NET 的令牌服务的事实上的标准,在实践中是 IdentityServer4 在 .NET Core 3 中的实现。到 2022 年 11 月,开发者可以自由使用并保持核心项目的维护。
它具有有用的功能,例如:
身份验证即服务。
单点登录/退出多种应用程序类型。
API 的访问控制。
联合网关。
定制。
至于Auth0,一个身份验证和授权平台,它涵盖了不同的身份用例,基本上与你分开处理身份验证。
现在(更准确地说,从 2022 年开始)这两种服务都是付费的,选择完全取决于所提供的功能和您的需求。如果您想比较 IS4 替代方案,请查看此 chart。