OAuth2解决问题域和场景
目录
文章目录
- OAuth2解决问题域和场景
- 目录
- 课程概述
- 课程大纲
- 课程特点
- 课程参考书
- 课程预览
- 架构和技术栈预览
- 开放系统间授权
- 传统单块应用安全
- 现代微服务安全
- 小结
课程概述
课程大纲
- 课程概述
- 问题域和场景
- OAuth2定义和原理
- 典型OAuth Flow和选型
- OAuth2授权服务器和资源服务器案例实操(lab)
- OAuth2客户端案例实操(lab)
- JWT令牌原理
- JWT案例实操(lab)
- Android无线应用接入OAuth2案例实操(lab)
- Angularjs单页应用接入OAuth2案例实操(lab)
- Github社交登录案例实操(lab)
- OAuth2安全风险和案例实操(lab)
- OpenId Connect简介
- 下一代微服务安全架构
- 参考资源+后续课程预览
课程特点
- 是微服务架构体系的第一个模块
- OAuth2协议深度剖析
- 结合案例和实操(Spring Security OAuth2)
- 结合开源项目
- 面向原理和架构
- 面向微服务
课程参考书
- OAuth2 inAction
对OAuth2整个协议框架的细节进行了深入的分析,也讲述了如何通过简单的方式来实现OAuth2服务器,适合用于对OAuth2的原理进行深度学习,偏向于原理 - OAuth 2.0 Cookbook
主要讲解怎样去使用用Spring Security OAuth2,偏向于实践
课程预览
- OAuth2授权中心架构和实践
- 微服务配置中心Apollo架构和实践
- 调用链接监控CAT架构和实践
- 微服务网关Zuul架构和实践
- 容错限流Hystrix/Turbine架构和实践
- 微服务注册发现Eureka/Ribbon架构和实践
- 时间序列监控KairosDB架构和实践
- 微服务监控告警ZMon架构和实践
- 综合案例分析
架构和技术栈预览
OAuth2解决问题域和场景
开放系统间授权
问题场景:资源拥有者需要通过客户应用访问受保护的资源
- 方法1:密码用户名复制
资源拥有者提供用户名密码给客户应用,客户应用将其传递给受保护的资源
缺点:开放系统间不受用,存在密码泄露的安全隐患 - 方法2:万能钥匙
资源拥有者与客户应用和受保护的资源间商定一个通用developer key
缺点:对于不受信的系统间,也会存在developer key泄露的安全隐患 - 方法3:特殊令牌
资源拥有者为客户应用和受保护的资源设置一个特殊的密码或是令牌,仅能访问受保护的资源
缺点:与OAuth2比较接近,但是还需要具体的令牌颁发、 管理、吊销
传统单块应用安全
浏览器访问应用服务器,如果未登录,则通过应用服务器上的过滤器访问进行登录授权的用户数据库进行鉴权登录,通过之后就会在浏览器建立一个Cookie,这时浏览器与应用服务器就会建立一个Session
相关文章:登录工程:传统 Web 应用中的身份验证技术
现代微服务安全
- 现代大部分应用微服务架构的原因
- 服务拆分力度的很小而不是一个单块应用,服务和服务之间的鉴权问题
- 接入的客户端越来越多,应用形态的多种多样,如浏览器单页应用、无线原生App、服务器端App
在这种情况之下,我们不再用传统的方式去做安全,而是用一个独立的服务AuthServer,并且把认证以及授权都做成Service,核心的技术点由Cookie以及Session变为Token
而在生活之中,诸如微信授权登录,微博淘宝联合登录等,背后都是一个OAuth的实现
小结
- 开放系统间授权
- 社交联合登录
- 开放API平台
- 现代微服务安全
- 单页浏览器App(HTML5/JS/无状态)
- 无线原生App
- 服务器端WebApp
- 微服务和API间调用
- 企业内部应用认证授权(IAM/SSO)