安全矩阵

 找回密码
 立即注册
搜索
查看: 835|回复: 0

Oauth2 知识分享

[复制链接]

189

主题

191

帖子

903

积分

高级会员

Rank: 4

积分
903
发表于 2022-11-5 09:36:16 | 显示全部楼层 |阅读模式
Oauth2 知识分享 (qq.com)

前言
在学习CISSP时,今天群里就Oauth2展开了讨论。说真的,对于Oauth2,我也是一知半解。于是,我就针对Oauth2私下补了一下"课",整理如下。

简介
在CISSP官方学习指南(第8版)的433页,是这样描述Oauth2的。
编辑
翻译过来,大题意思如下:
Oauth2,是一种开放式身份验证方式,常用于联合SSO系统,即单点登录。然后举了一个例子来说明这个过程,后面有另一个例子,我认为更恰当。

原理
OAuth 不是一个API或者服务,而是一个验证授权(Authorization)的开放标准。OAuth的出现就是为了解决访问资源的安全性以及灵活性。如下图所示,RO选择通过委托第三方登录来访问Client,此时Client会访问第三方,请求AS验证,验证通过以后,会授权并返回token,然后Client使用token访问RS。
编辑
详情可参照OAuth2.0 详解 - 知乎 (zhihu.com)。这篇文章写得较为迷糊,如果看不明白,可以过。

例子
这里借用豆瓣和QQ的故事,从用户和程序员的角度来分析。
(一)用户视角
你想登录豆瓣去看看电影评论,但你从来没注册过豆瓣账号,又不想新注册一个再使用豆瓣,怎么办呢?可以使用第三方登录授权。
第一步:在豆瓣官网点击用qq登录
编辑
第二步:跳转到qq登录页面输入用户名密码,然后点授权并登录

编辑
第三步:跳回到豆瓣页面,成功登录
编辑

(二)程序员视角
如下图
编辑
(1)当你点击用qq登录的小图标时,实际上是向豆瓣的服务器发起了一个 http://www.douban.com/leadToAuthorize 的请求,豆瓣服务器会响应一个重定向地址,指向qq授权登录。
  (2)浏览器接到重定向地址 http://www.qq.com/authorize?callback=www.douban.com/callback ,再次访问。并注意到这次访问带了一个参数是callback,以便qq那边授权成功再次让浏览器发起这个callback请求。
(3)上一步中浏览器接到重定向地址并访问http://www.qq.com/
authorize?callback=www.douban.com/callback,qq的服务器接受到了豆瓣访问的authorize,在次例中所给出的回应是跳转到qq的登录页面,用户输入账号密码点击授权并登录按钮后,一定还会访问qq服务器中校验用户名密码的方法,若校验成功,该方法会响应浏览器一个重定向地址,并附上一个code(授权码)。
(4)接上一步,QQ服务器在判断登录成功后,使页面重定向到之前豆瓣发来的callback并附上code授权码,即
callback=www.douban.com/callback
页面接到重定向,发起 http://www.douban.com/callback 请求
豆瓣服务器收到请求后,做了两件再次与QQ沟通的事,即模拟浏览器发起了两次请求。一个是用拿到的code去换token,另一个就是用拿到的token换取用户信息。最后将用户信息储存起来,返回给浏览器其首页的视图。到此OAuth2.0授权结束。

下面是OAuth2.0的一些源代码,供参考。
https://gitee.com/sunym1993/datauoauthqq_bean
相关好文章推荐
一张图搞定OAuth2.0 - 闪客sun - 博客园 (cnblogs.com)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 06:37 , Processed in 0.012282 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表