微服务架构实战 160 讲
杨波
拍拍贷研发总监、资深架构师、微服务技术专家
48732 人已学习
新⼈⾸单¥98
课程目录
已完结/共 171 讲
微服务架构实战 160 讲
登录|注册
留言
29
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 23 | 下一代微服务安全架构
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 第一模块课程介绍
02 | 微服务安全要解决什么问题
03 | 白话 OAuth2
04 | OAuth2 的正式定义
05 | OAuth2 有哪些典型模式
06 | OAuth2 模式该如何选型
07 | Spring Security OAuth2 架构简介
08 |【实验】授权码模式授权服务器
09 |【实验】简化模式授权服务器
10 |【实验】密码模式授权服务器
11 |【实验】客户端模式授权服务器
12 | 实验一扩展环节
13 |【实验】Web 应用接入授权服务器
14 | 实验二扩展环节
15 | 什么是 JWT 令牌
16 |【实验】授权服务器支持 JWT 令牌
17 | 实验三扩展环节
18 |【实验】Android 无线应用接入授权服务器
19 |【实验】AngularJS 单页应用实验和课后扩展
20 |【实验】GitHub社交登录实验和课后扩展
21 | 【实验】OAuth2安全风险CSRF实验
22 | OpenId Connect简介
23 | 下一代微服务安全架构
24 | 参考资源和后续课程预览
25 | Apollo作者的产品介绍
26 | 第二模块课程介绍
27 | 课程概述
28 | 业务需求
29 | 配置定义和场景
30 | 开关驱动开发原理
31 | 携程 Apollo 配置中心介绍
32 | Apollo核心概念
33 | Apollo快速起步(Lab01)
34 | Apollo快速起步扩展实验
35 | Apollo架构设计之服务器端
36 | Apollo架构设计之客户端
37 | Apollo架构设计之高可用和监控
38 | Apollo分布式部署指南
39 | Apollo Java客户端和多语言接入
40 | Apollo Client API实操(Lab02)
41 | Apollo Client和Spring集成~XML方式(Lab03)
42 | Apollo Client和Spring集成~代码方式(Lab04)
43 | Apollo Client和Spring Boot集成(Lab05)
44 | Apollo开放平台接入实操(Lab06)
45 | Spring Cloud Config简介
46 | Apollo vs Spring Cloud Config
47 | Apollo FAQ和开发常见问题
48 | 参考资源和后续课程预览
49 | 第三模块课程介绍
50 | Zuul网关和基本应用场景
51 | Zuul网关高级应用场景
52 | Zuul网关架构剖析
53 | Zuul网关代码剖析(Code Review)
54 | Zuul网关过滤器管理工具(Code Review)
55 | 前置过滤器实验(Lab01)
56 | 路由过滤器实验(Lab02)
57 | 后置过滤器实验(Lab03)
58 | Zuul网关对接Apollo(Lab04)
59 | Zuul网关生产部署实践
60 | Zuul网关路由管理实践
61 | 基于网关的两层路由体系
62 | Spring Cloud Zuul(Lab05)
63 | Zuul2.0简介
64 | Zuul网关生产最佳实践
65 | 参考资源和后续课程预览
66 | 第四模块课程介绍
67 | 调用链监控业务需求
68 | 调用链监控原理
69 | 调用链监控产品和比较
70 | 点评 CAT 背景介绍
71 | CAT 典型报表
72 | CAT 告警简介
73 | CAT 架构设计
74 |【实验】CAT 本地部署
75 | CAT 埋点案例和代码剖析(Code Review)
76 |【实验】CAT 埋点案例
77 | Zuul 网关集成 CAT 代码剖析(Code Review)
78 |【实验】Zuul 网关集成 CAT
79 | CAT 生产埋点实践
80 | CAT 生产部署实践
81 | CAT 生产治理实践
82 | Spring Cloud Sleuth 简介
83 |【实验】Spring Cloud Sleuth
84 | 参考资源和后续课程预览
85 | 第五模块课程介绍
86 | 容错限流需求
87 | 容错限流原理
88 | Netflix Hystrix 背景介绍
89 | Hystrix 设计原理
90 | Hystrix 主要概念
91 | 信号量 vs 线程池隔离
92 | Hystrix 主要配置项
93 |【实验】Hystrix 基础实验
94 | Hystrix 模拟案例分析 (Code Review)
95 |【实验】Hystrix + Dashboard 实验(上)
96 |【实验】Hystrix + Dashboard 实验(下)
97 | 网关集成 Hystrix (Code Review)
98 |【实验】Spring Cloud Hystrix 实验
99 | Netflix Turbine 简介
100 | Hystrix 生产最佳实践
101 | 参考资源和后续课程预览
102 | 第六模块课程介绍
103 | 服务发现需求和模式(上)
104 | 服务发现需求和模式(下)
105 | Netflix Eureka 和 Ribbon 背景介绍
106 | Eureka 和 Ribbon 架构设计原理
107 |【实验】Spring Cloud Eureka 和 Ribbon 基础实战
108 |【实验】Spring Cloud Eureka 和 Ribbon 高级实验
109 | Spring Cloud Eureka 和 Ribbon 主要配置项
110 | Eureka进阶:自保护模式
111 | Eureka进阶:健康检查和蓝绿部署
112 |【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(上)
113 |【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(下)
114 | 常用服务发现组件比较
115 | ServiceMesh 和 Istio 简介
116 | 基于 Eureka、Zuul 和容器云的持续交付架构
117 | 参考资源和后续课程预览
118 | 第七模块课程介绍
119 | 监控模式分类
120 | BusDevOps 和测量驱动开发 MDD
121 | Prometheus 简介
122 | Prometheus 架构设计
123 | Prometheus 基本概念
124 |【实验】Prometheus 起步查询实验(上)
125 |【实验】Prometheus起步查询实验(中)
126 |【实验】Prometheus起步查询实验(下)
127 |【实验】Prometheus + Grafana 展示实验(上)
128 |【实验】Prometheus + Grafana 展示实验(下)
129 |【实验】Prometheus + Alertmanager 告警实验(上)
130 |【实验】Prometheus + Alertmanager 告警实验(下)
131 |【实验】Java 应用埋点和监控实验
132 |【实验】NodeExporter 系统监控实验
133 |【实验】Spring Boot Actuator 监控实验
134 | Prometheus 监控最佳实践
135 | 主流开源时序数据库比较
136 | 开源分布式监控平台 ZMon 简介
137 | 微服务监控体系总结
138 | 参考资源和后续课程预览
139 | 课程概述和背景
140 | 架构和设计
141 | 开发环境搭建
142 | 基础代码(code review)
143 | 数据访问模块(code review)
144 | OAuth2服务模块(code review)
145 | Web服务模块(code review)
146 | 启动流程(code review)
147 | 起步准备实验(lab02)
148 | OAuth2授权码模式实验(lab03)
149 | OAuth2简化模式实验(lab04)
150 | OAuth2用户名密码模式实验(lab05)
151 | OAuth2客户端模式实验(lab06)
152 | OAuth2令牌校验实验(lab07)
153 | OAuth2令牌刷新实验(lab08)
154 | 项目复盘和扩展环节
155 | 参考资源和后续课程预览
156 | 课程概述和背景
157 | 需求和架构设计
158 | 开发环境搭建(lab01)(上)
159 | 开发环境搭建(lab01)(下)
160 | 项目业务代码(Code Review)
161 | Apollo配置中心集成(lab02)
162 | Zuul-Eureka-Ribbon-Hystrix集成(Code Review)
163 | Gravitee OAuth2集成(lab03)
164 | Zuul网关集中令牌校验(Code Review)
165 | CAT调用链集成(lab04)(上)
166 | CAT调用链集成(lab04)(下)
167 | Demo展示(lab05)(上)
168 | Demo展示(lab05)(下)
169 | Prometheus监控集成(Code Review)
170 | 生产扩展环节
171 | 课程复盘总结&结课测试
本节摘要
登录 后留言

全部留言(29)

  • 最新
  • 精选
小猴子
老师你的下一代微服务安全架构中第二种模式用户带着JWT到网关不经过授权服务器再次验证完全就是有问题不安全的为啥还讲这种?为啥要省一步操作埋下这么大的隐患?这是企业级应用?

作者回复: jwt是无状态自包含自验证,实现比较轻量,目前业界蛮流行的,很多应用采用jwt,因为大部分应用场景安全并不非常严格,另外jwt也可合理缩短有效期,或在网关上进一步定制加强安全验证。

2018-12-28
2
4
shine
OAuth是为访问第三方资源设计的,微服务架构下,访问的都是自身的资源,传统基于Token授权框架完全适用,整体实现比OAuth要简化不少,那么引入OAuth作为应用的授权框架的意义是什么?

作者回复: oauth2是一个授权框架和规范,这个规范试图覆盖主要的微服务安全场景(第三方访问,无线应用,企业内部应用),目前在第三方访问和无线应用用得比较多,企业内部(包括内部微服务间调用)其实没有这么严格,各种不同做法(传统token,key,用户名/密码,ip黑白名单等)。

2018-09-16
3
张顺青
不能缓存下来看吗

作者回复: 谢谢反馈🌹会反馈给极客时间

2018-05-22
3
shine
网关的OAuth Filter和服务的OAuth Filter具体分别处理什么?请求资源服务接口时,权限访问控制的步骤应该是放在网关还是具体的服务上?感觉使用网关统一控制处理,能覆盖大部分场景,应该会有一些场景还是难以满足,比如一些数据级的权限。比如论坛删帖的场景,用户可以删除自己的帖子,版主可以删管理的版块下的帖子,系统管理员可以删所有帖子,如果要在网关统一处理,需要分成3个独立的服务接口,如果在服务自身处理,可以在一个接口内提供。

作者回复: ppt中,网关上的OAuth Filter主要用于access token校验,获取jwt token;服务上的OAuth Filter,主要用于jwt的解释,获取用户和权限等信息,填充SecurityContext类似构件。用户权限在哪里做?既可以在网关上集中做,也可以在服务端自己做,都能做到,各有优劣,视企业和架构上下文选择即可。

2018-09-16
2
宛珩
access token 被他们截取后,如何保证其安全性?

作者回复: access token如果是bearer的话,就像钱一样,别人偷走也可以用的,没有绝对的安全,一般传输层用https防截取,然后缩短token过期时间到安全可接受范围。

2018-08-29
2
学明
哎,这个留言点半天才点开。 请教问题,以前使用session来管理会话,同事控制5分钟无活跃请求失效,重新登录。如果使用token的方式,如何方便实现呢?

作者回复: 传统单块web应用常用session式会话,现代微服务一般用基于令牌的分布式会话。令牌token有有效期,可在资源端(或通过网关集中)通过授权服务器集中校验,过期校验不通过。如果用jwt令牌,内含过期时间,资源端可自校验。

2018-08-14
2
Cutler
如果用户被诱导安装了非法的证书,https也是可以被劫持的,用户的access_token会被泄露,黑客就可以做任何事情了。 这种情况可以对请求参数进行签名,为防止重放攻击还可以在参数中加入随机nonce值。 金融级产品应该采用非对称签名+对称加密的方式对请求参数进行保护。

作者回复: 很专业👍 在我的另外一门课《Spring Boot和Kubernetes云原生微服务实践》中,专门讲解了基于JWT令牌的微服务认证授权机制。JWT支持对称或者公私钥签名。

2020-07-02
1
rajon
有spring cloud gateway网关集成oauth2的例子吗

作者回复: Spring Cloud Gateway比较新,这个我还没有实现过,找了一些样例供你参考,你自己需要进一步调研和尝试: https://github.com/artemMartynenko/spring-cloud-gateway-oauth2-sso-sample-application https://github.com/spring-cloud-samples/sample-gateway-oauth2login https://github.com/spring-cloud/spring-cloud-gateway/issues/179#issuecomment-406238177

2019-06-14
1
大鹏
老师,有两个问题: 1.客户有没有可能绕过网关,直接访问后台微服务。这样即使token被gateway在redis中掉销了,也能访问到后台数据。后台微服务jwt自检验对这种情况不起作用。 2.为什么颁发的是access token ,经过gateway的时候再换成jwt token ,因为access token更轻量级吗?

作者回复: 你好,1,如果采用网关统一认证,那么所有API请求必须经过网关,这个在物理部署架构上可以做到。2,access token换成jwt token,是因为传统访问令牌access token一般是无意义的随机字符串,一般不包含用户名/角色等用户信息(后台服务通常需要这些信息),转成jwt的话,里头可以包含这些信息。当然也可以不转jwt,直接把用户名等信息通过HTTP Header往后传递,更简单一点。

2019-06-05
1
王盛武
波波老师,请问,如果网关->A服务, A服务调用B服务; 网关把JWT传给了A, 但是A调用了B服务的时候如何带JWT呢? 是否A->B也要经过网关呢?

作者回复: 不用经网关,直要能通过http header往后传递即可,比如在spring中很容易做到,比如从request context里头获取jwt,通过http client再以http header方式往后传递。

2018-12-13
1
收起评论