学习了杨波老师的《微服务安全架构和实践》关于Oauth2.0的知识,做了下简单的总结,具体内容在https://github.com/geektime-geekbang/oauth2lab
在这里插入图片描述
最安全的授权方式,适用于开放平台,客户端为不受信的第三方应用,最终客户端获取了token,用户是不知情的

1、用户 ——》客户端(第三方不受信应用)
2、客户端——〉授权服务器 请求授权(携带clientId、返回地址等)
3、授权服务器——》用户 跳转页面给用户,询问是否授权
4、用户——〉授权服务器 输入账号密码确认授权
5、授权服务器——〉客户端 跳转到第2步给定的返回地址,附带上code参数
6、客户端 ——》授权服务器 根据code获取token 和 refreshToken
7、客户端 ——〉资源服务器 根据token获取用户资源
在这里插入图片描述

简化版的授权,适用于单页应用、app等,一般不会有refreshToken,这个时候用户是能知晓token,安全性较弱(因为浏览器、app等是和用户在一起的)

1、用户 ——》客户端(第三方不受信应用)
2、客户端——〉授权服务器 请求授权(携带clientId、返回地址等)
3、授权服务器——》用户 跳转页面给用户,询问是否授权
4、用户——〉授权服务器 输入账号密码确认授权
5、授权服务器——〉客户端 跳转到第2步给定的返回地址,直接附带token
在这里插入图片描述

适用于己方app、单页应用直接和授权服务器交互,通过账号密码获取授权

1、客户端 ——》 授权服务器 直接附带上用户账号密码请求授权
2、授权服务器 ——〉客户端 直接返回token值

在这里插入图片描述
适用于 服务器之间通信,不经过用户确认,只需要服务器之间通过最基本的验证,验证方式可以自己定义(验签、证书等)

1、客户端 ——》授权服务器 经过商议好的权限认证
2、授权服务器 ——〉客户端 发放token

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐