为了理解我可以用于OpenId Connect Server实现的内容,我已经研究了它们各自的含义:
所以我目前的理解是这样的 IdentityServer4
和 OpenIdConnect.Server
是解决同一问题的两个替代框架。主要区别在于受支持的ASP.NET Core版本列表。
关于 Openiddict
- 它是一种基于简化服务器创建的扩展 AspNet.Security.OpenIdConnect.Server
。
我错过了什么,或者这是一般的事情吗?
所以我目前的理解是IdentityServer4和OpenIdConnect.Server是两个解决相同问题的替代框架。主要区别在于受支持的ASP.NET Core版本列表。
实际上,我认为最重要的区别在于 这两个库不共享相同的目标。 ASOS的唯一任务是帮助您处理原始的OAuth2 / OIDC协议细节:其他一切都完全超出范围。具体来说,这意味着您可以在OpenIddict和IdentityServer中找到的用户,应用程序或商店等概念在ASOS中完全不存在(这意味着您可以自由地实现自己的实现......以及您自己的抽象)。
虽然IdentityServer将公开许多允许配置特定功能的抽象和服务,但ASOS是从Katana分支出来的 OAuthAuthorizationServerMiddleware
- 具有集中的基于事件的低级API(命名为 OpenIdConnectServerProvider
)其行为与MSFT开发的ASP.NET核心安全中间件完全相同。
使用ASOS时,您必须处理原始OpenID Connect请求并实施可能敏感的事情,例如客户端身份验证(例如,使用包含客户端凭据的数据库),这就是为什么ASOS的核心目标是了解OAuth2 / OIDC协议如何工作的人。另一方面,OpenIddict和IdentityServer将为您实现这些功能。
关于Openiddict - 它是一种基于AspNet.Security.OpenIdConnect.Server简化服务器创建的扩展。
最初,这确实是我被要求设计它的方式。 OpenIddict是为非专家创建的,他们对OAuth2和OpenID Connect的协议细节不太满意。
虽然它将为您提供实现用户身份验证部分的完全灵活性(例如,在您自己的授权控制器中,使用ASP.NET Core Identity或您自己的身份验证方法),但它将处理复杂的请求验证过程并使其对您的应用程序透明,没有淹没你的大量配置选项。
与ASOS(尽可能灵活且尽可能接近规范)不同,OpenIddict通常附带更严格的验证例程,我个人认为这是最佳实践。例如,它将自动拒绝包含的授权请求 response_type=token
如果客户端是机密应用程序,即使OpenID Connect规范未禁止该应用程序。
所以我目前的理解是IdentityServer4和OpenIdConnect.Server是两个解决相同问题的替代框架。主要区别在于受支持的ASP.NET Core版本列表。
实际上,我认为最重要的区别在于 这两个库不共享相同的目标。 ASOS的唯一任务是帮助您处理原始的OAuth2 / OIDC协议细节:其他一切都完全超出范围。具体来说,这意味着您可以在OpenIddict和IdentityServer中找到的用户,应用程序或商店等概念在ASOS中完全不存在(这意味着您可以自由地实现自己的实现......以及您自己的抽象)。
虽然IdentityServer将公开许多允许配置特定功能的抽象和服务,但ASOS是从Katana分支出来的 OAuthAuthorizationServerMiddleware
- 具有集中的基于事件的低级API(命名为 OpenIdConnectServerProvider
)其行为与MSFT开发的ASP.NET核心安全中间件完全相同。
使用ASOS时,您必须处理原始OpenID Connect请求并实施可能敏感的事情,例如客户端身份验证(例如,使用包含客户端凭据的数据库),这就是为什么ASOS的核心目标是了解OAuth2 / OIDC协议如何工作的人。另一方面,OpenIddict和IdentityServer将为您实现这些功能。
关于Openiddict - 它是一种基于AspNet.Security.OpenIdConnect.Server简化服务器创建的扩展。
最初,这确实是我被要求设计它的方式。 OpenIddict是为非专家创建的,他们对OAuth2和OpenID Connect的协议细节不太满意。
虽然它将为您提供实现用户身份验证部分的完全灵活性(例如,在您自己的授权控制器中,使用ASP.NET Core Identity或您自己的身份验证方法),但它将处理复杂的请求验证过程并使其对您的应用程序透明,没有淹没你的大量配置选项。
与ASOS(尽可能灵活且尽可能接近规范)不同,OpenIddict通常附带更严格的验证例程,我个人认为这是最佳实践。例如,它将自动拒绝包含的授权请求 response_type=token
如果客户端是机密应用程序,即使OpenID Connect规范未禁止该应用程序。