当前播放: 42 | 网关与BFF:使用JWT来实现身份认证与授权
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:必备知识 (25讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | .NET Core的现状、未来以及环境搭建
免费
04 | Startup:掌握ASP.NET Core的启动过程
免费
05 | 依赖注入:良好架构的起点
免费
06 | 作用域与对象释放行为:你知道IDisposable对象释放的时机和坑吗?
07 | 用Autofac增强容器能力:引入面向切面编程(AOP)的能力
08 | 配置框架:让服务无缝适应各种环境
09 | 命令行配置提供程序:最简单快捷的配置注入方法
10 | 环境变量配置提供程序:容器环境下配置注入的最佳途径
11 | 文件配置提供程序:自由选择配置的格式
12 | 配置变更监听:配置热更新能力的核心
13 | 配置绑定:使用强类型对象承载配置数据
14 | 自定义配置数据源:低成本实现定制化配置方案
15 | 选项框架:服务组件集成配置的最佳实践
16 | 选项数据热更新:让服务感知配置的变化
17 | 为选项数据添加验证:避免错误配置的应用接收用户流量
18 | 日志框架:聊聊记日志的最佳姿势
19 | 日志作用域:解决不同请求之间的日志干扰
20 | 结构化日志组件Serilog:记录对查询分析友好的日志
21 | 中间件:掌控请求处理过程的关键
22 | 异常处理中间件:区分真异常与逻辑异常
23 | 静态文件中间件:前后端分离开发合并部署骚操作
24 | 文件提供程序:让你可以将文件放在任何地方
25 | 路由与终结点:如何规划好你的Web API
第二章:微服务实战篇 (22讲)
26 | 工程结构概览:定义应用分层及依赖关系
27 | 定义Entity:区分领域模型的内在逻辑和外在行为
28 | 工作单元模式(UnitOfWork):管理好你的事务
29 | 定义仓储:使用EF Core实现仓储层
30 | 领域事件:提升业务内聚,实现模块解耦
31 | APIController:定义API的最佳实践
32 | 集成事件:解决跨微服务的最终一致性
33 | 集成事件:使用RabbitMQ来实现EventBus
34 | MediatR:轻松实现命令查询职责分离模式(CQRS)
35 | MediatR:让领域事件处理更加优雅
36 | HttpClientFactory:管理向外请求的最佳实践
37 | gRPC:内部服务间通讯利器
38 | gRPC:用代码生成工具提高生产效率
39 | Polly:用失败重试机制提升服务可用性
40 | Polly:熔断慢请求避免雪崩效应
41 | 网关与BFF:区分场景与职责
42 | 网关与BFF:使用JWT来实现身份认证与授权
43 | 安全:反跨站请求伪造
44 | 安全:防开放重定向攻击
45 | 安全:防跨站脚本
46 | 安全:跨域请求
47 | 缓存:为不同的场景设计合适的缓存策略
第三章:部署到Kubernetes (14讲)
48 | 部署:演示一个部署流程
49 | ConfigMap:实现基本配置方案
50 | 配置:使用分布式配置中心方案版本化管理配置
51 | 健康检查:与Liveness、Readiness、Startup探测集成实现高可用
52 | 健康检查:搭建全量健康检查探针和看板
53 | ForwardedHeaders:确保服务在负载均衡下正常工作
54 | 安全:介绍强制HTTPS的两种方式
55 | 日志:与EFK日志三件套集成
56 | 日志:Exceptionless日志系统
57 | 追踪:集成SkyWalking .NET实现追踪
58 | 监控与告警:Prometheus与AlertManager
59 | 监控与告警:用Granfana实现监控看板
60 | prometheus-net:自定义监控指标利器
61 | 结束语
42 | 网关与BFF:使用JWT来实现身份认证与授权

42 | 网关与BFF:使用JWT来实现身份认证与授权

肖伟宇
校宝在线架构师、SkyWalking .NET探针贡献者、NetCorePal组件库创建者
全集3830
新人首单 ¥29.9 原价 ¥129
1
本节摘要
登录 后留言

精选留言(8)

  • SuperSnow
    肖老师,有一个问题,既然网关已经有了认证部分,那微服务部分就没有必要再加上一层认证了吧,毕竟所有的微服务都是通过网关暴露出去的。当然如果有微服务部分加上认证也有一个好处,就是可以根据payload信息来获取当前用户的相关指标,这样的确是比通过向微服务的各个api接口传用户相关指标要好多了。难倒在微服务上加认证就是为了这个吗?

    作者回复: 认证和授权如果在网关上做,那么网关就必须知晓每个接口需要的权限是什么,而这部分本身实际上是微服务负责定义的。
    对于通常的业务系统,建议微服务自己负责授权,认证可以考虑网关做。

    对于API开放平台性质的系统,可以考虑网关负责认证和授权,因为这类系统的授权机制是可以与接口本身解耦的

    2020-04-25
    1
  • Geek_09f05a
    老师好,用户登录用jwt实现的,那我们有好多子系统,怎么保护api接口呢

    作者回复: jwt是认证token的一种方式,子系统的场景要看你怎么组织api,也要看子系统的业务关系。要么共享jwttoken,要么分别颁发

    2020-06-16
  • 1122
    老师,我想问一下jwt刷新Token问题,让客户感觉不到。我目前想到的就下面两个,请问老师还有更好地解决方案吗?
    1.过期发送异常,前端判断异常,请求refreshToken,在重新调用这个ajax。
    2.后端加个拦截器,在认证成功的前提下,刷新token,添加到header返回前端,前端每一个ajax请求成功都对比本地token,然后更新。

    作者回复: 使用jwt的话,刷新由前端来控制,推荐使用refreshToken来处理

    2020-06-09
  • image
    auth2 实现sso 支持高并发有什么推荐方案吗?

    作者回复: 推荐使用 identityserver4

    2020-05-27
  • 学习者
    肖老师,在没有登录时,访问BankAccountController,系统是如何跳转到 account/login 这个api的?在哪里配置的?

    作者回复: services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    startup类中,类似下列写法
    AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
                    {
                        options.LoginPath = "/account/login";
                        options.Cookie.HttpOnly = true;
    }
                    });

    2020-05-19
    1
  • stg609
    Ocelot 一般如何配置reroute?是直接使用everything 这种模式匹配一堆action呢?还是为每个下游的action都单独配一个reroute?

    作者回复: 一般是为每个微服务配置一条

    2020-05-06
  • stg609
    是否考虑直接使用 Ocelot 自身支持的 authentication 方式呢?

    作者回复: 即使网关进行了授权认证,微服务的api还是要进行授权判断的,因此你可以根据自己的实际场景来决定授权工作在那一层。
    一般来讲,网关只负责入口路由,不负责业务(认证与授权)比较适合微服务架构。

    如果你的网关是为了暴露开放平台的接口,这种场景,可以考虑网关负责认证授权,而微服务不需要关心授权问题

    2020-05-06
  • Geek_7a97f9
    jwt我一直在想该怎么管理自动续签问题,老师有什么好的办法吗

    作者回复: 需要服务端与客户端定义约定,由客户端发起续约

    2020-04-24
    1
收起评论
看过的人还看
数据结构与算法之美

王争  前Google工程师

80讲 | 89286 人已学习

新人首单 ¥29.9 原价 ¥129
DDD实战课

欧创新  人保高级架构师

25讲 | 8615 人已学习

新人首单 ¥9.9 原价 ¥68
Electron开发实战

邓耀龙  美团高级前端工程师

35讲 | 2554 人已学习

新人首单 ¥19.9 原价 ¥99
从0开始学架构

李运华  前阿里资深技术专家

60讲 | 46091 人已学习

新人首单 ¥29.9 原价 ¥129