springcloud的资源管理(一)-oauth2认证详解

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

目录

一:oauth2认证

二:授权码模式

三:密码模式

四:简化模式

五:客户端模式


一:oauth2认证

  oauth2主要是对系原系统的认证管理,其中认证的主要流程分为4:oauth2流程认证。然后我自己做了一下理解

二:授权码模式

  1.授权流程

  2.交互过程

    一共是5次交互,3次必要性交互,2次非必须交互

   第一次必要性交互:第三方和用户服务器的交互(即图中的第一步和第二步),其中产出了临时授权码code

   第二次必要性交互:第三方和认证服务器的交互(即图中的第三步和第五步),其中产出access token

                                       第一次非必须交互(即图中的第四步):认证服务器校验授权码和身份凭证,这里可能是与用户服务器,                                                                                                                 也可能是在临时缓存  中获取并校验。

  第三次必要性交互:第三方和资源服务器的交互(即图中的第六步和第八步):第三方获取到需要的资源

                                      第二次非必须的交互(即图中的第七步):认证access token,其他同上。

  3.优缺点:

    优点是:用户可以控制自身的一些权限是否给第三方,第三方只能获取到用户临时产生的一个访问的code,安全性。

    缺点是:认证过程繁琐,但实际上从安全考虑,我认为这个缺点可忽略不计

  

  4.常见的应用场景:各大应用内的qq,微信登录等。

  5.场景分析:比如csdn内的qq登录

                        a.主要就是你点qq登录,会跳转到qq登录的页面,这是的请求已经跳转到qq服务器了,然后你输入账号或者

                           扫码登录,这是所有请求都在qq服务器完成的。

                         b.正确登录后,qq服务器返回用户的code,然后csdn再去请求信息。(这一步用户不可见)

                         c.csdn获取到qq名称,头像等。

  

三:密码模式

 1.流程说明

 

2,交互说明:

  一种产生了4次交互,2次必须,2次非必须。

  第一次必要交互:第三方和认证服务器交互(即图中的第一步和第三步),注意这里用户直接给与了第三方账号和密码了。

                                 第一次非必须交互(即图中的第二步):认证服务器校验账号密码和身份凭据

  第二次不要交互:第三方和资源服务器交互(即图中的第四步和第六步),返回所需数据信息

                                  第二次非必须交互(即图中的第五步):认证服务器校验access token

 3.优缺点

   这种授权方式向第三方直接暴露了用户的账号密码既不安全。这种方式适用于一些比较大出名的第三方。

 4.实际案例:qq客户端内的qq游戏大厅登录qq游戏大厅(或者说同一个生态体系内的相互登录)

 5.案例分析:

                    a.在qq客户端通过右下角的qq游戏大厅的图标登录。

                     b.在弹出的游戏大厅的登录界面可以看到用户的账号密码。

                   

四:简化模式

  1.流程说明

   

2.交互说明

  一共4次必要交互,2次非不要交互(图中并没有画出,主要就是验证token等数据)

  第一次:第三方将用户导向认证服务器(即图中第一步)

  第二次:认证服务器跳转到转向服务器(即图中第二步),这里是当用户同意授权时,将access token放入浏览器的hash部分

  第三次:跳转服务器的下一步(这里产生了2个分支)

                 第三步分支1和下一步:这里是跳转服务器解析出hash中的access token并将其返回给第三方,迪桑饭拿着去请求资源

                 第三步分支2:跳转服务器解析出access token,直接访问资源服务器

  第四次:资源服务器返回资源给第三方

3.优缺点

  这种模式缺点较大:整个过程所有的url都暴露在浏览器中,信息安全度较低。

4.实际场景分析:这种模式直接就不建议用。

五:客户端模式

 1.流程说明

 

  2.说明:

    从流程中,这个模式不涉及用户。这里我就不说明,应该都能看得懂吧。

猜你喜欢

转载自blog.csdn.net/qq_35755863/article/details/93025305