En 400-6655-581
5
返回列表
> 資源中心 > 技術(shù)干貨 | API網(wǎng)關(guān)與服務(wù)安全最佳實踐

技術(shù)干貨 | API網(wǎng)關(guān)與服務(wù)安全最佳實踐

2019-12-12瀏覽次數(shù):705
API網(wǎng)關(guān)是Infini API平臺系列核心產(chǎn)品之一,我們在上篇《API網(wǎng)關(guān)探索和實踐中》中詳細(xì)介紹了API網(wǎng)關(guān)的功能、分類以及趨勢發(fā)展,本文主要從API網(wǎng)關(guān)設(shè)計特點、主要功能、重要場景、高可用幾個方面進(jìn)行闡述。


API網(wǎng)關(guān)設(shè)計特點


Infini API智能安全網(wǎng)關(guān)主要是基于Kong自研的分布式網(wǎng)關(guān),由于Kong是基于OpenResty的升級改造,具備高性能、易擴展、穩(wěn)定可靠、產(chǎn)品概念良好的特性。



那么Infini API智能安全網(wǎng)關(guān)主要具有哪些特色呢?


● 架構(gòu)先進(jìn)性,主要是基于新一代微服務(wù)架構(gòu),可以無縫支持Service Mesh。


● 簡單易用,基于Docker化部署,以及K8S的編排,操作簡單,易擴展。


● 智能告警,集成日志分析平臺,可自定義查詢界面,可以界面化進(jìn)行用戶行為分析,并可以自動智能告警。


● 自帶WAF功能,可以實現(xiàn)態(tài)勢感知、主動防御、調(diào)查和響應(yīng)一體化的安全策略。


● 性能卓越,由于是基于LUA開發(fā),性能單臺服務(wù)器可以實現(xiàn)10w并發(fā)。


● 云原生,支持多租戶、實現(xiàn)自動物理隔離。


● 自帶安全認(rèn)證中心,可以實現(xiàn)API Key、Basic Auth、OAuth2、JWT的安全認(rèn)證。


● 自帶日志分析監(jiān)控平臺,基于大數(shù)據(jù)實現(xiàn)的日志分析平臺,主要開源組件包含F(xiàn)lume、Elasticsearch、Grafana。


● 通過流量復(fù)制和流量回放,實現(xiàn)在線仿真生產(chǎn)環(huán)境業(yè)務(wù)測試。


功能介紹


Infini API軟件主要包含:API網(wǎng)關(guān)、API管理平臺、API門戶三大模塊,整體邏輯功能如下圖:

安全、認(rèn)證、流控、格式轉(zhuǎn)換、協(xié)議轉(zhuǎn)換、微服務(wù)、監(jiān)控和分析。




API網(wǎng)關(guān) 是最核心的模塊之一,他是整個產(chǎn)品的主要骨架,主要包含了路由轉(zhuǎn)發(fā)、安全、認(rèn)證、格式轉(zhuǎn)換、WAF、微服務(wù)網(wǎng)關(guān)功能。


API管理平臺 主要是API治理層面,實現(xiàn)了API設(shè)計、API開發(fā)、API測試、API部署、API銷毀的全生命周期管理。還包含了API網(wǎng)關(guān)管理配置、日志監(jiān)控、日志分析、BI報表等管理的功能。


API門戶 主要包括了服務(wù)目錄、API申請、計費管理、文檔管理、授權(quán)管理等功能。


軟件產(chǎn)品設(shè)計中,可插拔機制是一個非常重要的特性,我們實現(xiàn)的API網(wǎng)關(guān)就是基于這種機制進(jìn)行的實現(xiàn),所有功能插件都是只有配置的時候立即生效。


API網(wǎng)關(guān)目前的公共組件功能分為6大塊,他們是安全、認(rèn)證、流控、格式轉(zhuǎn)換、協(xié)議轉(zhuǎn)換、微服務(wù)、監(jiān)控和分析。




API網(wǎng)關(guān)中有一個比較核心的功能是安全,這個安全主要是外部用戶調(diào)用網(wǎng)管內(nèi)的API,通過API網(wǎng)關(guān)實現(xiàn)用戶認(rèn)證、安全、WAF、流量控制等功能。


根據(jù)客戶的需求整理了一些插件主要包含如下:


? OAuth2認(rèn)證,通過外部認(rèn)證中心(開源Kong中沒有實現(xiàn))

? MD5驗簽

? Kafka日志插件

? 針對API全局流控插件

? 接口緩存插件

? 灰度發(fā)布插件

? WAF插件(IP攔截、SQL注入等)

? RBAC插件

? Dubbo&gRPC轉(zhuǎn)換插件

? 流量復(fù)制和流量回放



安全防護(hù)設(shè)計


組件中認(rèn)證和安全防護(hù)是API網(wǎng)關(guān)最重要的一個產(chǎn)品功能,API網(wǎng)關(guān)是所有流量入口的一道重要防線,為企業(yè)內(nèi)的業(yè)務(wù)系統(tǒng)服務(wù)保駕護(hù)航。


下面主要從兩個方面來闡述下,如何實現(xiàn)用戶認(rèn)證和API鑒權(quán)以及安全防護(hù):


(一)Oauth2安全認(rèn)證是互聯(lián)網(wǎng)非常成熟的認(rèn)證,結(jié)合API網(wǎng)關(guān)可以實現(xiàn)統(tǒng)一的身份認(rèn)證和授權(quán)的統(tǒng)一管理。




主要的步驟說明如下:


第一步:獲取Token

1. 消費者填寫用戶名和密碼,在界面進(jìn)行登錄,消費者攜帶用戶名和密碼以及client_id以及client_secret發(fā)送給Kong網(wǎng)關(guān);

2. Kong網(wǎng)關(guān)負(fù)責(zé)將請求代理轉(zhuǎn)發(fā)給后端應(yīng)用;

3. 后端應(yīng)用將用戶名和密碼發(fā)送給統(tǒng)一身份認(rèn)證中心進(jìn)行認(rèn)證,認(rèn)證成功后返回True;

4. 認(rèn)證成功后通過client_id、client_secret、provision_key發(fā)送給Kong獲取Token;

5. Kong根據(jù)請求的header頭參數(shù),進(jìn)行參數(shù)驗證;

6. 驗證通過,將Token返回給后端應(yīng)用;

7. 后端應(yīng)用將Token返回Kong;

8. Kong將Token返回給消費者。


第二步:驗證Token,并請求后端資源服務(wù)

1. 消費者攜帶Token,請求需要訪問的資源服務(wù);

2. Kong將請求的Token進(jìn)行驗證;

3. 驗證通過,代理轉(zhuǎn)發(fā)到后端服務(wù),如果后端服務(wù)是多實例的,可以負(fù)載分發(fā)到后端實例;

4. 后端實例根據(jù)請求的參數(shù),返回后端服務(wù)資源;;

5. 后端服務(wù)資源內(nèi)容有Kong轉(zhuǎn)發(fā)給消費者。


第三步:獲取刷新Token

1. 消費者將client_id和client_secret發(fā)送給Kong進(jìn)行獲取refresh_token;

2. Kong根據(jù)請求參數(shù)進(jìn)行驗證,驗證通過將refresh_token返回給消費端。


關(guān)注點:

1. 認(rèn)證中心需要調(diào)用API網(wǎng)關(guān)Token 服務(wù)才能獲取Token,因為API網(wǎng)關(guān)需要記錄Token值,才能在二次調(diào)用的時候進(jìn)行驗證。

2. API鑒權(quán)中心和API網(wǎng)關(guān)進(jìn)行分離,實現(xiàn)產(chǎn)品設(shè)計中的松耦合特性。


(二)通過WAF組件、日志分析模塊、告警模塊、日志監(jiān)控模塊可以實現(xiàn)事前預(yù)警、事中防御、事后調(diào)查和分析。


1. 事前預(yù)警


2. 事中防御


3. 事后調(diào)查




重要場景


1. 打通企業(yè)云上云下本地應(yīng)用,重塑業(yè)務(wù)架構(gòu)。




2. 對外開放企業(yè)能力,建設(shè)企業(yè)API生態(tài)圈,實現(xiàn)API能力變現(xiàn),整合內(nèi)外服務(wù)能力,快速響應(yīng)業(yè)務(wù)變化。



3. 保證API應(yīng)用安全,實現(xiàn)態(tài)勢感知、主動防御。



4. 實現(xiàn)數(shù)據(jù)共享和傳遞,數(shù)據(jù)價值變現(xiàn)。



企業(yè)的架構(gòu)總是在不斷的進(jìn)行演進(jìn),從集中式SOA架構(gòu)、分布式微服務(wù)架構(gòu)、到云原生的服務(wù)網(wǎng)格,業(yè)務(wù)是企業(yè)架構(gòu)演進(jìn)的動力,無論架構(gòu)如何變化,API網(wǎng)關(guān)做為微服務(wù)的流量統(tǒng)一入口,為調(diào)用提供安全、高效、可視化的監(jiān)控保障。相信越來越多的企業(yè)在踐行CI/CD的過程中會越來越重視API網(wǎng)關(guān),通過API網(wǎng)關(guān)打通云上、云上、企業(yè)內(nèi)部、第三方,實現(xiàn)企業(yè)內(nèi)部服務(wù)賦能,敏捷響應(yīng)企業(yè)的業(yè)務(wù)變化。