云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

方案概述

MSE 网关可以为后端服务提供转发路由能力,在此基础上,一些敏感的后端服务需要特定认证授权的用户才能够访问。MSE 云原生网关致力于提供给云上用户体系化的安全解决方案,其中 JWT 认证能力是在 Json Web Token 这种结构化令牌的基础上实现了一套基于用户体系对用户的 API(服务)进行授权访问的机制,满足用户个性化安全设置的需求。本最佳实践方案就是介绍如何在 MSE 网关中集成 JWT 进行全局认证鉴权的配置。

方案示意图如下所示:

应用场景

借助 CADT 迅速的搭建 MSE 网关以及 SAE 实例,并部署测试应用(jwt-demo),在MSE 网关上配置对应的测试路由(/login、/biz),并配置 JWT 的全局认证鉴权功能,通过 postman 进行模拟测试。

主要步骤:

  1. 通过 CADT 快速完成环境部署

  2. 通过工具栏生成 JWT 所需的公钥、私钥

  3. SAE 上部署测试应用 jwt-demo

  4. MSE 上配置后端服务及路由,并配置 JWT 的全局认证鉴权

  5. 通过 postman 工具发起模拟测试请求,验证功能是否符合预期

  6. 测试结束释放环境

部署架构

架构说明:

本方案涉及的云产品包括一个 MSE 实例(前面挂公网 NLB)、一个私网 CLB、一个部署在 SAE 中的测试应用。

产品介绍

专有网络 VPC(Virtual Private Cloud): 是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

传统型负载均衡 CLB(Classic Load Balancer): 支持 TCP、UDP、HTTP 和 HTTPS 协议,具备良好的四层处理能力,以及基础的七层处理能力。

云原生网关 MSE(Microservices Engine): MSE 云原生网关是兼容 K8s Ingress标准的下一代网关产品,将传统的流量网关和微服务网关功能合并,降低 50%资源开销,支持 ACK 容器服务和 Nacos 等多种服务发现方式,支持多种认证登录方式快速构建安全防线。

Serverless 应用引擎 SAE(Serverless App Engine): 是一款零代码改造、极简易用、自适应弹性的应用全托管平台。SAE 能够让您免运维 IaaS 和 K8s,秒级完成从源代码、代码包、Docker 镜像部署任意语言的在线应用(例如 Web、微服务、Job 任务)到 SAE,并自动伸缩实例按使用量计费,开箱即用日志、监控、负载均衡等配套能力。

云速搭 CADT(Cloud Architect Design Tools): 是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。

前置条件

在进行本文操作之前,您需要完成以下准备工作:

1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面 https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成实名认证。

2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金券金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面 https://usercenter2.aliyun.com/home) 查看账户余额。

操作步骤

本实践可通过 CADT 官方模板快速拉起演示环境。

  1. CADT 基础环境搭建

  2. 工具生成公钥、私钥、JWKS

    2.1. 生成公私钥

    2.2. 生成 JWKS

  3. SAE 部署应用

    3.1. SAE 中通过应用环境变量设置公钥、私钥

    3.2. SAE 中添加私网 CLB

  4. MSE 网关配置及测试验证

    4.1. 配置 jwt-demo 后端服务

    4.2. 配置路由并测试验证

    4.3. 配置全局认证鉴权并测试验证

  5. 其他说明

  6. 一键释放资源

最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。

往期文章:

云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作

老乡鸡“开源”了 deepin-IDE 终于实现了自举! 好家伙,腾讯真把 Switch 变成了「思维驰学习机」 腾讯云4月8日故障复盘及情况说明 RustDesk 远程桌面启动重构 Web 客户端 微信基于 SQLite 的开源终端数据库 WCDB 迎来重大升级 TIOBE 4 月榜单:PHP 跌至历史最低点 FFmpeg 之父 Fabrice Bellard 发布音频压缩工具 TSAC 谷歌发布代码大模型 CodeGemma 不要命啦?做的这么好还开源 - 开源图片 & 海报编辑器工具
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/3874284/blog/11050151