发表于: 2021-05-13 23:12:47
1 1431
学习spring cloud oauth2
任务7,8,9总结
遇到的问题:
昨天没休息好 今天下午回去休息了
看书学spring cloud oauth2,但书是2018年出的,版本太旧了了,有很多代码都更新了,旧代码经常出错,还是google来学习oauth2吧
收获:
spring cloud oauth2
简单说,OAuth 就是一种授权机制。数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据。系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用。
假设有两个网站 A B, 用户在A中创建了自己用户
OAuth就是为了解决上面这些问题而诞生的。
学习OAuth 2.0之前,需要了解几个专用名词
(1) Third-party application:第三方应用程序,本文中又称"客户端"(client),即上一节例子中的"B 网站"。
(2)HTTP service:HTTP服务提供商,本文中简称"服务提供商",即上一例子中的A 网站。
(3)Resource Owner:资源所有者,本文中又称"用户"(user)。
(4)User Agent:用户代理,本文中就是指浏览器。
(5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。
(6)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。
(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源。
这里关键就是 (B)用户同意给予客户端授权。
这里面详细的步骤如下,我以前还不知道自己就授权一下,会发生这么多事情。
(A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。
C步骤中,服务器回应客户端的URI,包含以下参数:
code:表示授权码,必选项。该码的有效期应该很短,通常设为10分钟,客户端只能使用该码一次,否则会被授权服务器拒绝。该码与客户端ID和重定向URI,是一一对应关系。
state:如果客户端的请求中包含这个参数,认证服务器的回应也必须一模一样包含这个参数。
参考网址:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
评论