曂沅仴駦 发表于 2024-6-14 21:23:28

通过OpenIddict设计一个授权服务器01-先容

https://dev.to/robinvanderknaap/setting-up-an-authorization-server-with-openiddict-part-i-introduction-4jid
本文是使用OpenIddict设置授权服务器系列文章的一部门。本系列中的文章将引导您完成使用OpenIddict在ASPNET Core平台上设置OAuth2+OpenID Connect授权服务器的过程。
通过设置授权服务器,可以支持基于令牌的身份验证和授权。它还答应您在一个中心位置对所有应用程序的用户举行身份验证,即单一登录(SSO)。
授权服务器可以同时提供一种或多种身份验证方法,如本地用户名密码,也可以提供外部身份验证提供商,如谷歌、脸书或ADFS。
通过实现OAuth2和OpenID Connect,您能够促进多种授权场景:Web应用程序、桌面应用程序、机器对机器通讯,乃至客堂设备的授权。Oauth2和OpenID Connect都是行业标准。
identity server

十多年来,该项目一直在举行中。NET实现安全令牌服务,以及后来的OAuth2+OpenID Connect是IdentityServer。最近,IdentityServer的创建者/维护者决定对未来版本的Identity服务器举行双重许可。如今,除非你正在举行一个开源项目,否则你必须付出贸易许可证的费用。
尽管对许多项目或公司来说,为好的软件付费不应该是一个问题,但无论怎样,我照旧去寻找替代方案。
OpenIddict

IdentityServer的一个替代方案是OpenIddict。OpenIddict提供了一种在任何ASP中实现OpenID Connect服务器的办理方案。NET Core 2.1、3.1和5.0应用程序,并从OpenIddict 3.0开始,任何ASP。NET 4.x或OWIN应用程序。
OpenIddict比IdentityServer稍微低一点。Identity Server为您提供了一个开箱即用的运行办理方案,要使OpenIddict发挥作用,您必要本身实现一些细节,如创建声明标识和设置精确的端点。
在本文中,我们将使用OpenIddict来实现我们的授权服务器。我们将以客户端根据流、授权代码流和设置革新令牌为例举行实现。我们还将演示怎样使用OpenIDConnect来检索用户信息。
OAuth2 和OpenID Connect

OAuth2和OpenIDConnect有时会令人困惑,至少对我来说是这样。
它帮助我将授权服务器视为另一个web应用程序。这是一个应用程序,您可以使用用户名密码组合或其他外部提供商登录。到如今为止,没有什么差别于我们构建的任何其他web应用程序。
在设置身份验证之后,我们可以实现OAuth2和OpenIDConnect流(这就是OpenIddict发挥作用的地方)。这些流被其他应用程序(客户端)使用,基本上是在问“我能代表这个用户做一些事情吗?”。
为了回答这个问题,客户端首先将用户重定向到授权服务器。如果尚未举行身份验证(SSO),则用户将对本身举行身份验证。之后,询问用户是否答应客户端代表用户举行哀求。如果是,外部应用程序将吸收一个访问令牌,以代表用户举行哀求。
除了访问令牌(OAuth2)之外,还可以颁发单独的身份令牌(OpenID Connect)。客户端可以使用身份令牌来提取用户信息。
在下一篇文章中,我们将从创建一个新的ASP.NET Core项目开始,并将身份验证作为迈向全面授权服务器的第一步。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 通过OpenIddict设计一个授权服务器01-先容