01.
背景介紹
通過(guò)騰訊云API網(wǎng)關(guān),開發(fā)者可以將來(lái)自Serverless無(wú)服務(wù)器的云函數(shù)SCF、CVM上的Web服務(wù)、用戶自身的Web服務(wù)進(jìn)行統(tǒng)一封裝并開放給最終用戶。最終用戶無(wú)論是移動(dòng)客戶端、Web客戶端、物聯(lián)網(wǎng)或其他應(yīng)用,都可以通過(guò)API網(wǎng)關(guān)調(diào)用API服務(wù)。為了確保API調(diào)用的安全性,API網(wǎng)關(guān)目前支持免鑒權(quán)、應(yīng)用認(rèn)證、OAuth2.0三種方式。對(duì)于免鑒權(quán)方式,由于用戶無(wú)需鑒權(quán)即可通過(guò)API網(wǎng)關(guān)調(diào)用后臺(tái)業(yè)務(wù),安全級(jí)別較低;對(duì)于應(yīng)用認(rèn)證方式,如果用戶數(shù)目變多,需要考慮應(yīng)用的管理安全問(wèn)題;對(duì)于OAuth2.0方式,需要開發(fā)者自建和維護(hù)認(rèn)證服務(wù)器。
騰訊數(shù)字身份管控平臺(tái)(EIAM)支持對(duì)用戶身份的集中管理、用戶認(rèn)證、應(yīng)用集成、SSO、授權(quán)管理、審計(jì)管理等能力,支持SAML、CAS、JWT、OIDC、OAuth2.0等多種協(xié)議,支持多種基于角色的訪問(wèn)控制(RBAC)模型。采用EIAM為API網(wǎng)關(guān)提供認(rèn)證和鑒權(quán)能力可以為API調(diào)用提供更為安全和簡(jiǎn)便的方式。
02.
能力優(yōu)勢(shì)
通過(guò)EIAM為API網(wǎng)關(guān)提供防護(hù)的能力,具有以下優(yōu)勢(shì):
·使用標(biāo)準(zhǔn)OAuth2.0協(xié)議;
·可一鍵創(chuàng)建授權(quán)API和業(yè)務(wù)API,輕配置;
·EIAM維護(hù)用戶目錄,免自建認(rèn)證服務(wù)器;
·在認(rèn)證能力基礎(chǔ)上支持鑒權(quán)功能,保護(hù)API安全;
·EIAM內(nèi)置多種RBAC模型,免自建鑒權(quán)服務(wù)器和授權(quán)模型;
·內(nèi)置緩存機(jī)制,更快的訪問(wèn)速度;
03.
功能亮點(diǎn)簡(jiǎn)析
1.API網(wǎng)關(guān)新功能詳解
·新增鑒權(quán)類型
鑒權(quán)類型中新增EIAM認(rèn)證類型,通過(guò)配置化組合滿足不同的客戶需求;
·多種接入方式
支持自動(dòng)新建EIAM應(yīng)用、自動(dòng)關(guān)聯(lián)已建EIAM應(yīng)用;
·不同粒度的認(rèn)證與鑒權(quán)
支持選擇只認(rèn)證不鑒權(quán)、既認(rèn)證又鑒權(quán);
·多端API調(diào)用適配
支持適用于非Web客戶端(如服務(wù)器端、APP客戶端、小程序客戶端等)、Web客戶端(瀏覽器、web viewer等)發(fā)起的API調(diào)用;
2.EIAM新功能詳解
·應(yīng)用類型支持
支持創(chuàng)建API網(wǎng)關(guān)應(yīng)用類型,支持OAuth2+JWT結(jié)合方式對(duì)API調(diào)用進(jìn)行認(rèn)證和鑒權(quán)支持;
·資源級(jí)授權(quán)支持
支持按照組組織機(jī)構(gòu)、用戶組、用戶進(jìn)行API級(jí)的授權(quán);
·鑒權(quán)支持
OAuth2輸出增加id_token,帶有scope,支持返回用戶信息和當(dāng)前用戶可訪問(wèn)的API列表;
04.
配置流程
通過(guò)EIAM為API網(wǎng)關(guān)提供防護(hù)能力包括3個(gè)步驟:
1.創(chuàng)建API發(fā)布服務(wù);
2.對(duì)API進(jìn)行授權(quán);
3.從客戶端訪問(wèn)API;
從業(yè)務(wù)場(chǎng)景上,終端用戶對(duì)于API調(diào)用的發(fā)起方可能為非Web客戶端(如服務(wù)器端、C/S架構(gòu)系統(tǒng)客戶端、App客戶端、小程序客戶端)、Web客戶端(如瀏覽器、Web Viewer)。非Web客戶端能支持以POST方式發(fā)起請(qǐng)求,Web客戶端支持以Web重定向方式接收返回信息。下文以非Web客戶端為例說(shuō)明配置流程。
第一步:創(chuàng)建API發(fā)布服務(wù)
1.進(jìn)入API網(wǎng)關(guān)的控制臺(tái)-->服務(wù)菜單-->管理API Tab頁(yè)面
API網(wǎng)關(guān)控制臺(tái)地址:https://console.cloud.tencent.com/apigateway
2.點(diǎn)擊新建API進(jìn)入前端配置
·鑒權(quán)類型選擇EIAM認(rèn)證;
·接入方式選擇新建EIAM應(yīng)用,會(huì)在EIAM自動(dòng)創(chuàng)建API網(wǎng)關(guān)應(yīng)用;
·既認(rèn)證又鑒權(quán);
·EIAM應(yīng)用類型選擇非Web客戶端;
3.完成前端配置后,進(jìn)入后端配置;
·公網(wǎng)URL/IP的后端類型,填寫應(yīng)用域名、后端路徑、請(qǐng)求方式選擇GET等信息;
4.選擇響應(yīng)結(jié)果類型
第二步:對(duì)API進(jìn)行授權(quán)(EIAM)
1.進(jìn)入EIAM的控制臺(tái)-->資源級(jí)授權(quán);
2.選擇用戶授權(quán)Tab頁(yè),選擇API網(wǎng)關(guān)應(yīng)用;
3.選擇新增授權(quán);
4.選擇用戶“user001”和“userName_11”進(jìn)行授權(quán);
5.授權(quán)完成后,可以在資源級(jí)授權(quán)頁(yè)面看到授權(quán)結(jié)果
第三步:從客戶端訪問(wèn)API
采用postman的方式對(duì)非Web客戶端對(duì)API的調(diào)用進(jìn)行驗(yàn)證。
1.對(duì)于未完成授權(quán)的用戶
·獲取id token;
·鑒權(quán)驗(yàn)證,返回結(jié)果“Access not authorized”;
2.對(duì)于完成授權(quán)的用戶
·解析id token內(nèi)容,可以查看對(duì)應(yīng)用戶身份為user001;
·鑒權(quán)驗(yàn)證,返回結(jié)果“Work?。?!”,即可以進(jìn)行API的調(diào)用;
通過(guò)3步簡(jiǎn)單配置,即可快速完成EIAM+API網(wǎng)關(guān)聯(lián)合方案的配置,無(wú)需自建認(rèn)證服務(wù)器、鑒權(quán)服務(wù)器,即可為您的業(yè)務(wù)API調(diào)用提供認(rèn)證與鑒權(quán)能力。在未來(lái),通過(guò)EIAM對(duì)多種授權(quán)模型的支持可以為API網(wǎng)關(guān)后防護(hù)的業(yè)務(wù)API提供更為細(xì)粒度的訪問(wèn)控制能力,讓開發(fā)者聚焦關(guān)注自身業(yè)務(wù)開發(fā)。