当前位置: 移动技术网 > IT编程>开发语言>.net > 从Client应用场景介绍IdentityServer4(三)

从Client应用场景介绍IdentityServer4(三)

2018年12月19日  | 移动技术网IT编程  | 我要评论

新概念英语第三册,华夏新闻网,av狼 av狼聚集地论坛

在学习其他应用场景前,需要了解几个客户端的授权模式。首先了解下本节使用的几个名词

resource owner:资源拥有者,文中称“user”;

client为第三方客户端;

authorization server为授权服务器;

redirection uri:简单理解为取数据的地址;

user agent:用户代理,本文中就是指浏览器;

这里把访问资源服务器简单理解成取数据。


 

resource owner password credentials模式

 

下面以我自己的理解加上对话的形式来简要说明。

user:client,这是我的redirection uri,user id和password,你去帮我拿些数据吧。

client:好的,没问题!(转向authorization server)authorization server,这是user的user id和password,我要去拿user需要的数据。

authorization server:给的user id和password正确,给你access token和refresh token,去拿数据吧。


authorization code模式

 

user:client,这是我的redirection uri,你去帮我拿些数据吧,但是我不会提供账号密码。

client:这样啊,那我们找authorization server吧,让它来当中间人。

authorization server(很负责任):user,你是要让client帮你拿数据吗。

user:是啊,这是我的redirection uri。

authorization server:client,给你个授权码authorization code,你拿着authorization code和user给你redirection uri给我验证吧。

client:好,这是authorization code和user给我redirection uri,我要去拿数据了。

authorization server:可以,验证没问题了,给你个access token和refresh token,你去拿数据吧。


implicit模式

 

user:client,这是我的redirection uri,你去帮我拿些数据吧,但是我不会提供账号密码。

client:这样啊,那我们还是找authorization server吧,让它来当中间人。

authorization server:user,你是要让client帮你拿数据吗。

user:是啊,这是我的redirection uri。

authorization server:(浏览器登场)浏览器,这是user的redirection uri和access token的碎片,你来帮他搞吧。

浏览器(很委屈):只给access token的碎片弄不了啊,我还是问redirection uri怎样才能把这些碎片拼完整吧。

redirection uri的老大(资源服务器):给你个网页,里面有方法把access token的碎片拼起来。

浏览器:client,access token拼好了,你用access token去拿数据吧。

 

implicit模式通过user的浏览器成功拿到了access token,相对于authorization code模式,省去了授权码部分。

而密码模式,需要user提供账号和密码进行验证。倘若user的账号密码可以让client获取到,可以使用密码模式,但要确保client不被黑了。


 

hybrid模式:

hybrid模式是结合了implicit模式和authorization code模式。以下是我对hybrid模式的理解,如有不对的地方,欢迎指正!

user通过身份认证后,id token和类似授权码authorization code等信息被传输到浏览器,client通过浏览器获取到authorization code,然后从authorization server获取到access token和refresh token。

 


 

最后说下refresh token

获取到access token后,它是默认有效时间为3600秒/1小时,可以在new client的accesstokenlifetime进行设置。一般情况下,access token失效后,用户需要重新授权,client才能拿到新的access token。但有了refresh token后,client检测到access token失效后,可直接向authorization server申请新的access token。当然,refresh token也是有有效期的。

absoluterefreshtokenlifetime的默认有效期为2592000秒/30天slidingrefreshtokenlifetime的默认有效期为1296000秒/15天。

refresh token支持hybridauthorization codedevice flow 和 resource owner password flows等模式 。


 

本节图片转自阮一峰的网络日志:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

以上是个人对客户端的授权模式的理解,如有不对的地方,欢迎指正

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网