方案概述
MSE 網關可以爲後端服務提供轉發路由能力,在此基礎上,一些敏感的後端服務需要特定認證授權的用戶才能夠訪問。MSE 雲原生網關致力於提供給雲上用戶體系化的安全解決方案,其中 JWT 認證能力是在 Json Web Token 這種結構化令牌的基礎上實現了一套基於用戶體系對用戶的 API(服務)進行授權訪問的機制,滿足用戶個性化安全設置的需求。本最佳實踐方案就是介紹如何在 MSE 網關中集成 JWT 進行全局認證鑑權的配置。
方案示意圖如下所示:
應用場景
藉助 CADT 迅速的搭建 MSE 網關以及 SAE 實例,並部署測試應用(jwt-demo),在MSE 網關上配置對應的測試路由(/login、/biz),並配置 JWT 的全局認證鑑權功能,通過 postman 進行模擬測試。
主要步驟:
-
通過 CADT 快速完成環境部署
-
通過工具欄生成 JWT 所需的公鑰、私鑰
-
SAE 上部署測試應用 jwt-demo
-
MSE 上配置後端服務及路由,並配置 JWT 的全局認證鑑權
-
通過 postman 工具發起模擬測試請求,驗證功能是否符合預期
-
測試結束釋放環境
部署架構
架構說明:
本方案涉及的雲產品包括一個 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 官方模板快速拉起演示環境。
-
CADT 基礎環境搭建
-
工具生成公鑰、私鑰、JWKS
2.1. 生成公私鑰
2.2. 生成 JWKS
-
SAE 部署應用
3.1. SAE 中通過應用環境變量設置公鑰、私鑰
3.2. SAE 中添加私網 CLB
-
MSE 網關配置及測試驗證
4.1. 配置 jwt-demo 後端服務
4.2. 配置路由並測試驗證
4.3. 配置全局認證鑑權並測試驗證
-
其他說明
-
一鍵釋放資源
最佳實踐全部內容,請點擊此處查看。對方案和產品感興趣的朋友,可以加入釘釘羣交流(羣號:31852400)。
往期文章:
雲原生最佳實踐系列 1:藉助雲速搭 CADT 如何實現 Kafka 的性能壓測?
雲原生最佳實踐系列 3:基於 SpringCloud 應用玩轉 MSE
雲原生最佳實踐系列 4:基於 MSE 和 SAE 的微服務部署與壓測雲原生最佳實踐系列 5:基於函數計算 FC 實現阿里雲 Kafka 消息內容控制 MongoDB DML 操作