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 云原生微服务实践
登录|注册
留言
13
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 42 | 如何设计用户角色鉴权?
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 | 结课测试&结束语
登录 后留言

全部留言(13)

  • 最新
  • 精选
LSJ
老师 能大概讲一下spring-security为什么不适合微服务场景吗 可不可以把spring-security集成到网关上,或者针对于某一个需要进行认证鉴权的微服务(比如管理后台服务)集成spring-security

作者回复: spring-security是单块应用时代的产物,那个时候的应用形态主要就是web-mvc,安全实现主要就是靠session+cookie+后端用于存储用户和权限数据的存储,总体是一种单体和有状态安全技术。 微服务时代则完全不同,后端都是无状态服务,前端应用形态很多,有单页+无线+Web,spring-security开发设计的时候没有考虑到现在的微服务形态。微服务适合采用oauth/jwt等无状态安全认证机制,具体原理可以进一步学习本章课程。 当然如果你硬是要将spring-security用在微服务上,我想你自己搞些定制也可以工作,但是它开发之初确实不是为微服务设计的,就是为单体spring-mvc应用设计的,后来Pivotal又推出spring-security-oauth2来扩展支持微服务安全,但是也我认为也没有设计好。

2019-10-25
9
dingdongfm
请问给出的这个权限模型有没有对应的关系数据库的表结构可以参考?

作者回复: fusionauth(https://fusionauth.io/downloads)是一个auth as a service产品,它采用我课程中给出的用户角色鉴权模型,fusionauth免费但不开源,但是下载的jar里头有db schema,可以参考。

2019-09-19
6
公号-技术夜未眠
波波老师,透明令牌和jwt令牌有什么区别了?

作者回复: 透明令牌和JWT令牌的区别,在35节《安全认证架构演进:微服务阶段》和38节《JWT有哪两种主要流程?》都有讲解,可以回过头去再看一下视频。简单讲,透明令牌相当于一个无意义的随机字符串,它是实际存储在AuthServer上的会话数据的一个引用标识符,后续可以通过透明令牌去集中AuthServer上查询会话数据;而JWT令牌则是自包含数据的,一般不需要到集中AuthServer上查询会话数据,可以实现无状态认证。做一个类比,透明令牌可以类比Java语言中的引用传递(pass by reference),而JWT令牌可以类比Java语言中的值传递(pass by value)。

2019-08-08
2
5
Alex
如果考虑微服务内部安排是不是内部传jwt更好,避免被内部伪造身份。

作者回复: 如果安全要求比较严格,也可以考虑一种混合模式,外部使用透明令牌,内部使用自包含的jwt令牌,中间通过网关访问Auth Service进行转换,这种做法Auth Service需要存透明令牌和jwt之间的映射关系。

2019-08-06
2
4
grey927
杨老师,staffjoy里面的Authorie注解是不是可以直接用Spring Security的hasPermission注解来替换,此外,权限模型里面的App是不是Permission的概念,如果需要控制到前端页面的某个按钮的权限,要如何设计比较好呢?

作者回复: 回答你的一些问题: 1. staffjoy里头的Authorize授权注解是自定义的,没有直接用Spring Security的那一套。之所以这样做,是为了让大家理解背后的原理,也就是自己完全可以定制开发一套简单的安全授权机制,没有必要一定用Spring Security。当然,用Spring Security也可以实现类似功能。 2. App是应用,和Permission不是一个概念。对于一个企业,一般有很多应用(内部的或者外部的),这些应用 需要先在安全认证系统里头注册,之后可以用于跟踪这些App的登陆访问情况。如果你了解OAuth2的话,App相当于OAuth2里头的Client概念。 3. 如果要控制到前端页面按钮的权限,可以考虑Apache Shiro安全框架,不过这类框架主要针对Web MVC应用,微服务单页应用并不适合。

2020-06-01
3
Aaron
对于同一个用户,jwt每次生成的token可能都是一样的吧?

作者回复: 不一样,构造jwt令牌除了包含用户名等claims,还包含过期时间(当前时间+持续有效时间),这个每个都不一样。

2019-08-29
3
John
上次課也說過 jwt有時限 那麼在expire之前 如果用戶在台式電腦上增減了一個role 但是現在手機端沒有同步就亂了

作者回复: jwt有无状态好处,但是有吊销不及时的问题。有一种优化的办法是引入消息机制,如果吊销或者用户数据变更,可以通过消息传播出去,相关应用可以监听消息,及时吊销或处理用户数据变更。

2019-08-21
2
2
ella
权限参考模型里面的userRegistration是个什么概念,不是很理解,是userInfo的意思么?为什么一个userRegistration只能属于一个app

作者回复: 微服务以后,一个企业一般会有很多的应用,这些应用不是每个用户都可以用的。所以在用户和应用之间增加一个关联概念userRegistration,一个用户只有注册了一个应用,他/她才能使用这个应用。可以把userRegistration理解为用户和应用之间的一个关联表。

2020-01-14
1
dingdongfm
你好,请问这里的rbac service跟sass,多租户有关系么?多租户具体在哪些章节中有体现?

作者回复: RBAC是一种通用的基于角色的访问控制机制,和SaaS/多租户并不直接关联。这个机制SaaS/多租户应用可以采用,其它非SaaS应用也可以采用。 Staffjoy的多租户主要由数据库表级别的逻辑隔离(以Company为单位),加上Faraday网关+基于JWT的安全框架+WhoAmI服务这些机制共同配合实现。相关内容主要分布在第2/4/5章。

2019-09-19
1
Tomorrow
老师,您好,能否staffjoy中的权限框架如何进行选型?spring-security以及shiro或者有没有更好的?

作者回复: 你好,spring-security/shiro其实是单块应用时代的安全框架,不是服务,严格讲不适合微服务安全认证场景。课程中提出的是一种认证+鉴权服务(auth & permission as a service),专门面向微服务场景的,需要单独开发实现,可以参考auth0.com或者fusionauth.io,我本人也正在开发一个类似服务,后面会开源出来。

2019-08-13
1
收起评论