免费发布推广信息的网站,网站建设数据库设计,兰州公司网站制作,门户网站手机版在学习其他应用场景前#xff0c;需要了解几个客户端的授权模式。首先了解下本节使用的几个名词Resource Owner#xff1a;资源拥有者#xff0c;文中称“user”#xff1b;Client为第三方客户端#xff1b;Authorization server为授权服务器#xff1b;redirection URI需要了解几个客户端的授权模式。首先了解下本节使用的几个名词Resource Owner资源拥有者文中称“user”Client为第三方客户端Authorization server为授权服务器redirection URI简单理解为取数据的地址User Agent用户代理本文中就是指浏览器这里把访问资源服务器简单理解成取数据。 Resource Owner Password Credentials模式 下面以我自己的理解加上对话的形式来简要说明。UserClient这是我的redirection URIuser ID和Password你去帮我拿些数据吧。Client好的没问题转向Authorization serverAuthorization server这是user的user ID和Password我要去拿user需要的数据。Authorization server给的user ID和Password正确给你access token和refresh token去拿数据吧。authorization code模式 UserClient这是我的redirection URI你去帮我拿些数据吧但是我不会提供账号密码。Client这样啊那我们找Authorization server吧让它来当中间人。Authorization server很负责任User你是要让Client帮你拿数据吗。User是啊这是我的redirection URI。Authorization serverClient给你个授权码authorization code你拿着authorization code和user给你redirection URI给我验证吧。Client好这是authorization code和user给我redirection URI我要去拿数据了。Authorization server可以验证没问题了给你个access token和refresh token你去拿数据吧。Implicit模式 UserClient这是我的redirection URI你去帮我拿些数据吧但是我不会提供账号密码。Client这样啊那我们还是找Authorization server吧让它来当中间人。Authorization serverUser你是要让Client帮你拿数据吗。User是啊这是我的redirection URI。Authorization server浏览器登场浏览器这是user的redirection URI和access token的碎片你来帮他搞吧。浏览器很委屈只给access token的碎片弄不了啊我还是问redirection URI怎样才能把这些碎片拼完整吧。redirection URI的老大资源服务器给你个网页里面有方法把access token的碎片拼起来。浏览器Clientaccess 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相关文章从Client应用场景介绍IdentityServer4一IdentityServer4-EF动态配置Client和对Claims授权二基于IdentityServer4 实现.NET Core的认证授权IdentityServer4与ocelot实现认证与客户端统一入口使用Dapper持久化IdentityServer4原文地址: https://www.cnblogs.com/FireworksEasyCool/p/10142321.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com