微服務架構 | 7. 安全保護
- 2022 年 2 月 1 日
- 筆記
- Oauth2, Spring Cloud, Spring Cloud Alibaba, Spring 微服務實踐學習筆記, 分佈式, 學習筆記, 安全保護, 微服務架構
目錄
前言
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服務原理與實戰》
《B站 尚硅谷 SpringCloud 框架開發教程 周陽》
安全性是暴露由許多微服務組成的公共訪問 API 時要考慮的最重要的一個方面。Spring 有一些有趣的功能和框架,使我們的微服務安全配置更容易;
1. 安全保護基礎知識
1.1 安全保護的三個層次
- 確保正確的用戶控制;
- 確保運行服務的基礎設施是打過補丁且是最新的;
- 確保實現網絡訪問控制;
1.2 構建安全服務的考慮因素
- 對所有服務通信使用 HTTPS /安全套接字層(Secure Sockets Layer,SSL):生產環境中微服務應該只通過 HTTPS 和 SSL 提供的加密通道進行通信;
- 所有服務調用都應通過 API 網關:服務網關可以作為一個針對所有服務執行的策略執行點;
- 將服務劃分到公共 API 和私有 API:開發人員應該通過將服務分離到兩個不同的區域(即公共區域和私有區域)來實現最小權限;
- 通過封鎖不需要的網絡端口來限制微服務的攻擊面:通過限制運行服務的操作系統上的人站端口和出站端口數來限制服務的攻擊面;
1.3 目前幾種流行的註冊中心對比
名稱 | 廠商 | 特點(優點) | 缺點 |
---|---|---|---|
OAuth2 |
2. 基於 OAuth2 的安全認證
OAuth2 是一個基於令牌的安全驗證和授權框架。他允許用戶使用第三方驗證服務進行驗證。 如果用戶成功進行了驗證, 則會出示一個令牌,該令牌必須與每個請求一起發送。然後,驗證服務可以對令牌進行確認;
3. 構建使用 JWT 令牌存儲的 OAuth2 安全認證
JWT 為 OAuth2 令牌提供規範標準,並且可以自定義 JWT 令牌;