2. IdentityServer4 - OAuth2.0身份验证方式

1. 一个例子

有三个干系人:房主,中介,购房者。房主把钥匙放在了中介那里。

1.购房者有看房意愿,只能找中介,告诉中介,我是购房者张三。

2.中介看到是张三,就和房主沟通,房主同意,就把钥匙给了张三。

3.张三带着钥匙去看房。

重复上面的场景:

1.网站A被浏览器打开,用户想登录,网站就把用户跳转到了IdentityServer4服务器的页面,页面中要求输入用户名密码。

2.IdentityServer4服务器发现zhang3是合法用户,也有权限访问网站A,就把AccessToken传回给zhang3,也就是又跳转回网站A同时带着AccessToken。

3. zhang3用这个AccessToken继续访问网站A。

2. OAuth 2.0 的四种方式

例子中使用了四种方式中的一种,叫授权码模式。

2.1 授权码模式

IdentityServer4服务器不想让网站A知道用户名和密码,所以有如下详细流程:

1. 网站A在跳转链接中添加自己的标志符,跳转到IdentityServer4服务器页面

2. IdentityServer4服务器页面中要求用户再输入用户名密码,这样,IdentityServer4服务器就知道了用户要访问的应用,也就是网站A,也知道了用户名密码。

3. IdentityServer4服务器查询自己的数据库,发现用户合法,就发给网站A一个授权码(authorization code)。

4. 网站A收到了授权码,再使用这个授权码跳转到IdentityServer4服务器,IdentityServer4服务器再发放access_token到网站A。

5.网站A收到access_token,允许用户继续访问。

2.2 第二种方式:隐藏式

1. 网站A在跳转链接中添加自己的标志符,然后跳转到IdentityServer4服务器

2. IdentityServer4服务器查询自己的数据库,发现合法,就发给网站A一个access_token

3.网站A收到access_token,允许用户继续访问。

2.3 第三种方式:密码式

1. 用户要在网站A中输入用户名密码,然后跳转到IdentityServer4服务器

2. IdentityServer4服务器查询自己的数据库,发现用户合法,就发给网站A一个access_token

3.网站A收到access_token,允许用户继续访问。

2.4 第四种方式:凭证式

1. 网站A中在跳转链接中添加自己的标志符和密码,然后跳转到IdentityServer4服务器

2. IdentityServer4服务器查询自己的数据库,发现用户合法,就发给网站A一个access_token

3.网站A收到access_token,允许用户继续访问。

3. 更新令牌

 IdentityServer4服务器在发放access_token时会带有一个refresh_token, 网站A中的access_token过期时,可直接用refresh_token来换取access_token,不用再走复杂流程。

4. 参考

OAuth 2.0 的四种方式 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.htmlOAuth 2.0 — OAuthhttps://oauth.net/2/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ljfblog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值