Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
15
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 35 | 安全认证架构演进:微服务阶段
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
16 | 微服务接口参数校验为何重要?
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类型接口?
20 | 为什么框架层就要考虑分环境配置?
21 | 异步处理为何要复制线程上下文信息?
22 | 为你的接口添加Swagger文档
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来的(上)
25 | 网关和BFF是如何演化出来的(下)
26 | 网关和反向代理是什么关系?
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上)
30 | Faraday网关代码解析(下)
31 | 生产级网关需要考虑哪些环节?
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶段(上)
34 | 安全认证架构演进:单块阶段(下)
35 | 安全认证架构演进:微服务阶段
36 | 基于JWT令牌的安全认证架构
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(15)

  • 最新
  • 精选
循序渐进
Token被截获怎么办?

作者回复: 这个和你的钥匙被别人偷去是一个问题,没有办法绝对避免,但是可以减轻风险。一些措施,采用https保证传输层的安全,设置合理的token过期时间,提供主动吊销token的接口,复杂的还可以把token和设备id进行绑定。

2019-08-10
15
Young
老师,在我的理解中,token一般是在第三方认证中无法与第一方服务共享session才使用了token作为访问的令牌,在完全第一方的应用场景下,我觉得以针对课程中这个案例,之前的集中状态会话形式下通过redis多服务共享session也能实现单点登录,只要把基于session的登录接口和逻辑单独抽离出来作为一个单独服务部署,专门用于登录和维护session的生命周期,这样改造也能够满足你这节课所列微服务场景的需要,而案例中所说的架构师放弃了像我这样基于session继续改造的方案而特地弃用session人为造了一个和session差不多作用的token主要是出于哪方面的考虑呢?是session本身有什么局限性吗?如果是的话能否列举一个session做不了而token更适用的第一方场景呢?

作者回复: 你好,微服务场景下,考虑token而不是session,主要考虑是: 1.) 微服务场景下,不仅有传统Web应用(session适合),还有单页,无线原生,甚至其它设备等不用浏览器的场景,这些场景token更合适。 2.) oauth2/token/jwt是目前业界服务间授权认证的开放标准。 简单讲,session主要适用于传统web场景,而token可以同时适用于各种微服务场景(同时包括你讲的第一方和第三方场景),所以,综合考虑采用统一token方式,这样不需要维护两套体系。 当然,如果你理解底层原理,session和token本质上是类似, 只是形式有变化。

2019-08-20
11
Sruby
波波老师的架构图是用什么工具画的,都挺漂亮的。

作者回复: 我的课程架构图都是用ppt制作(windows的话用powerpoint, mac用keynote)。 架构图其实和工具关系不大,关键要心中有图+一定的抽象总结能力:)

2019-10-26
7
永旭
老师你好, web 和 h5 页面有什么区分吗 ? h5页面怎么理解好呢 ?

作者回复: web主要指传统mvc应用,带服务器端动态生成页面的。html5和单页spa应用类似,属于js+html应用直接住在用户浏览器里头的,通过API直接调用后台获取数据的。h5应用是有些公司特定叫法,单页spa应用是更通用叫法。

2019-07-31
6
DDs moving castle
波波老师,课里说的将token设置在根域下 cookie中实现SSO单点登录,这个是可以实现的,但有个问题,这种SSO的模式相当于由Auth Service统一维护登录态,如果Auth Service不可用,整个微服务架构也就不可用了,不仅不能登录认证,也不能做校验登录和鉴权,这样会不会有些风险?? 之前我们公司在不是微服务架构时使用过基于开源的CAS Server的SSO,使用的模式是,统一在CAS Server登录后,CAS Server维护登录状态,每个应用也维护登录状态,浏览器既有CAS Server给的cookie,也有应用给的cookie,这样如果不是需要单点登录到第二个系统,就暂时不用和CAS Server交互了,只需要和已登录的应用,通过这个应用给的cookie交互即可,这样即使CAS Server挂了,只是不能登录,但不会使得应用也不可用。 请问这种除了中心的Auth Service维护登录状态,每个应用也维护登录状态的方式在微服务SSO场景下可行吗??如何实现?? (比如V3.5架构中,可以使用网关维护登录状态,这样后端微服务不变,也不用再管登录认证这些事)

作者回复: 下一节有方案,V3.6基于JWT的安全认证方案,这个方案是全程无状态,Auth Serivce不需要维护状态,网关也不需要维护状态。 基于JWT的安全认证方案是目前微服务架构的一种主流方案,尤其适合安全不是特别敏感场景。

2019-11-07
2
春哥
微服务每次都去校验token,是不是影响性能?

作者回复: token可以缓存起来(例如放redis),让网关集中校验的话,可以非常快,每次校验可以做到小于10ms,对性能影响可控。 如果安全不敏感,也可以考虑jwt无状态校验,就不需要集中校验。

2020-03-31
1
What are you 弄啥嘞
Auth Service 里面的 UserDB 跟 Account Service 里面的 User 是什么关系? 有冗余吗? 如果我不希望用户数据有冗余, 是不是可以将 UserDB 的数据归纳到 Account Service 里面, 然后 AuthService 获取用户数据的时候, 统一走 Gateway 提供的用户信息服务, 这种架构会有什么问题吗?

作者回复: AuthService可以做成只负责令牌颁发和校验等逻辑,不包括具体的用户身份(user identity)数据,它实际需要用户数据(或者去认证用户)的时候,可以再去调用User或者Account相关的API。 可以看一下Spring Security OAuth2,它可以内置带UserDB,也可以对接其它的User/Account API。 另外也可以看一下hydra(https://github.com/ory/hydra)这个oauth2/oidc开源产品,它只是负责oauth2/oidc相关逻辑,不负责用户和认证,但是可以对接不同的用户身份(user identity)服务。

2020-03-06
2
1
WL
请问这个是基于oauth2.0的协议的授权码模式吗?授权码换token的过程省略了吗?这样的流程好像没啥问题,那授权码有啥用?

作者回复: 这个架构假设是企业第一方场景,也就是前端应用、认证授权服务、网关和后台服务,都是企业自己开发的,都是可信任的。 oauth2.0授权码模式,可以用于三方授权认证场景,比如某企业开发一个三方应用,通过google或者github的oauth2服务实现联合登录。当然,oauth2授权码模式,也可以用于第一方场景,不过流程会比上面的架构要复杂。

2019-08-24
1
grey927
auth service是不是可以理解为网关?

作者回复: auth service是一个独立的服务,不是网关,网关和auth service配合,可以实现基于网关的集中式认证鉴权。

2019-07-31
1
soong
本篇集中于会话管理,关于微服务架构下的会话管理做了很好的梳理,通过网关解决了分散在每个服务的重复工作!其中也提到了授权,但没有深入的展开,希望能就这一块有好的实践指南!

作者回复: 下门课程会展示一个电商中台案例,会展开鉴权模块的设计和实现,欢迎关注。

2020-03-28
收起评论