通过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项目开始,并将身份验证作为迈向全面授权服务器的第一步。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假装我不帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值