目录
一: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.说明:
从流程中,这个模式不涉及用户。这里我就不说明,应该都能看得懂吧。