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