Oauth2 鉴权逻辑的简要总结
相关文档
以下总结不涉及官话,均为个人理解。
四个角色
- 用户(资源拥有者)
- 客户端(严格讲应该理解为客户端上的某个前端服务)
- 授权服务器(一般和资源服务器是同属一家)
- 资源服务器(目标资源所在的地方)
四个模式
1. 客户端凭证模式 client_credentials
流程
- 没有校验用户,过程简便
- 适用于内部服务间的调用(带个 credential 就在我方内部设施访问自如,除了自己人没谁了)
2. 密码模式 password
流程
- 有校验用户, 但用户需要在客户端的第三方页面输入 username, password,不安全
- 这种模式已在 Spring Security 6 中被弃用
3. 隐式授权模式 implicit
流程
- 有校验用户,且是在验证服务器提供的页面做校验,没有暴露给第三方
- token 因为存在客户端所以有泄露风险
- 这种模式适用于只运行在客户端,没有后端的服务
- 出于安全考虑,OAuth 2.0 规范在2019年更新中不再推荐使用 Implicit 模式,新版 Spring Security 中也不再显式支持
4. 授权码模式 authorization_code
流程
- 有校验用户,且是在验证服务器提供的页面做校验,没有暴露给第三方
- 客户端只与服务后端通信,不存任何 A 相关的敏感信息,所有敏感信息都在服务端,相对安全
- 应用广泛,可以用于第三方,也可以用在第一方
评论
其他文章