OAuth 2.0实战(一)-通俗光速入门(上)

简介: OAuth 2.0实战(一)-通俗光速入门(上)

1 什么是开放平台(Open Platform)

在软件行业和网络中,开放平台指软件系统通过公开其API使外部程序可增加该软件系统的功能或使用该软件系统的资源,而无需更改该软件系统的源码。

在互联网时代,把网站的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为就叫做Open API,提供开放API的平台本身就被称为开放平台。

很多应用都提供微信登录方式,减少了用户注册的繁琐。- 第一次使用牛客网时,相信很多人是直接使用三方帐号(比如QQ、微信、微博)登录

image.png牛客网平台会直接使用你三方信息作为基础信息,对用户来说方便很多。那这到底是怎么实现的呢?三方把你的个人信息给了牛客网平台,它又怎么保证你的数据安全的呢?

其背后原理就是 OAuth 2.0。

2 OAuth 2.0 是什么?

“Auth”表示 “授权”, “O” 是 Open 简称,表示 “开放” ,表示 “开放授权”。


2007 年 OAuth 1.0 诞生,妄想一套授权机制打通全场景,e.g. Web、移动应用场景等,但这些场景并非完全相同,且还有安全上的固化攻击等问题,直接宣判死刑。于是2011 年的 OAuth 2.0 扩充授权许可机制类型,更加灵活适应各种场景。


Spring Security Oauth2 是什么?

Oauth2,是一种协议,安全授权协议,而 Spring Security Oauth2 是一种框架,它是根据 Oauth2 协议开发。

Spring Security 也是一种框架,一种提供声明式的安全访问控制解决方案的安全框架,跟OAuth没有直接关系。


用户管理、认证中心、网关之间的联系:

三个不同事物,网关是单独一个方向的内容,一般开放平台或者微服务框架下鉴权的工作都是在网关内完成,也就是认证(授权)完成【授权】,在网关完成【鉴权】,用户管理是独立于认证中心的存在,没有认证中心,用户管理一样要有。


静默登录实际上是通过【静默授权】这种方式实现的,但是这个有个前提或者限制性的条件,不需要获取用户的更详细的信息比如头像、性别等信息,只能获取到用户的唯一标识比如openid和union id信息,所以,需要考虑是否能满足生产环境需求。


OAuth 2.0 是一种授权协议。那如何理解这里的“授权”呢?

2.1 授权案例知多少?

2.1.1 华为面试场景

比如我当年准备去华为南研所参加面试,要是直接走大门,门卫会一把把我拦住,质问有无工牌。当然了我没有,于是就被要求去接待大厅做登记。然后到了前台,我说是来面试的,并出示了身份证和短信通知。小姐姐确认后给了我一张通行卡证,然后就能自由出入华为南研所啦。

本来我是无权限进入华为南研所的,但是经过前台小姐姐验证后,她发现我确实是被预约来面试的,于是给了张通行卡证。这个过程就是授权。

2.1.2 文章排版场景

比如我的公众号JavaEdge,日常运营手动一个个排版,繁琐劝退我的更新频率!后来发现个“xx”第三方软件,可高效排版文章内容。可xx又是如何能访问到我的文章数据的?因为公众号提供了开放平台,xx通过开放平台的 API 就能访问到文章数据。

image.png

只因我在xx软件里扫码同意了,xx就拿到了个访问令牌,通过它可获取到我所有文章数据并帮我排版了。

这也是授权。我要是不扫码同意,公众号也不会把这些数据给到三方软件。


其实该场景使用的就是授权码许可(Authorization Code)类型。它是 OAuth 2.0 中最经典、最完备、最安全、应用最广泛的许可类型。


目录
相关文章
|
2月前
|
机器学习/深度学习 算法 JavaScript
密码学系列之四:一文搞懂序列密码
密码学系列之四:一文搞懂序列密码
|
2月前
|
JSON 安全 算法
【揭秘OIDC协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OIDC协议的奥秘,告别SSO的迷茫与困惑
【揭秘OIDC协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OIDC协议的奥秘,告别SSO的迷茫与困惑
32 0
|
2月前
|
程序员 Python
类的设计奥秘:从代码到架构的科普全解
类的设计奥秘:从代码到架构的科普全解
14 2
|
2月前
|
机器学习/深度学习 人工智能 安全
安全多方计算之五:零知识证明(从入门到入土。。)
安全多方计算之五:零知识证明(从入门到入土。。)
|
2月前
|
机器学习/深度学习 安全 算法
安全多方计算之二:一文搞懂百万富翁问题
安全多方计算之二:一文搞懂百万富翁问题
|
3月前
|
存储 安全 Java
【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的奥秘,告别SSO的迷茫与困惑
在现代的网站中,我们经常会遇到需要用户登录的情况。然而,直接要求用户注册可能会显得繁琐,导致用户的流失。为了解决这个问题,网站可以采用OAuth授权机制。通过与像GitHub或其他第三方网站的认证授权合作,网站可以获取用户的相关信息,避免了繁琐的注册过程。
48 0
【揭秘OAuth协议 — Java安全认证框架的核心基石】 从初识到精通,带你领略OAuth协议的奥秘,告别SSO的迷茫与困惑
|
3月前
|
缓存 前端开发 安全
究竟何为GET,何为POST?前端程序员的必修课
究竟何为GET,何为POST?前端程序员的必修课
59 0
|
4月前
|
网络协议 数据安全/隐私保护 网络架构
通俗科普:网关是什么?
通俗科普:网关是什么?
4085 0
|
4月前
|
API 数据格式
科普术语:接口
科普术语:接口
27 0
|
12月前
|
XML 安全 JavaScript
技术汇总:第八章:CAS单点登录
技术汇总:第八章:CAS单点登录
302 0