修復?保護層、身份驗證和授權的組合

為了有效解決 API 安全問題,需要通過多個組件的組合來提供保護:

第一步是部署 API。假設我們有一個開放的銀行 API,并將其暴露出來。此時,它是“裸露的”,完全暴露在外界。當前的保護措施僅集成在應用程序中,或者依賴底層框架(例如 Java Spring)。因此,API 面臨諸如 DoS 攻擊、有效負載中毒和其他內容級攻擊等威脅。

接下來,我們來介紹一下 API 網關,例如 Broadcom Layer7 API Gateway。網關提供了一種可擴展、高性能的方式,通過 API 將跨云、容器或本地環境的任意組合連接到最關鍵的數據和應用程序。

不受保護的API:

在API前邊插入API網關

為了有效保護 API,應在 API 前面插入 API 網關。API 網關能解決 API 面臨的核心安全挑戰,并能夠處理基本的身份驗證和某些級別的授權。隨著 IETF 在 OAuth 方面取得的進展,以及一套成熟的 OAuth 工具(例如授權服務器),身份驗證問題也能得到更加完善的解決方案。

將基于標準的身份驗證應用于 API

在身份驗證方面,有幾個標準可以提供幫助。其中,最流行和現代的標準是 OAuth 2.0 和基于身份驗證的配置文件 OpenID Connect。OAuth 2.0 支持用戶身份驗證、委派、模擬等多種用例。OAuth 提供了不同的身份驗證流程,每個流程都針對特定的用例進行定制:

在涉及 API 的情況下,API 客戶端(可能是應用程序的后端)需要發送用戶的令牌(無論是透明的訪問令牌還是可能是 JWT 令牌)。該令牌來自授權服務器,是最終用戶完成身份驗證過程后的結果(例如 OAuth 2.0 中的授權碼流)。身份驗證的處理方式有多種。例如,使用的令牌可以是用戶的實際令牌(訪問令牌、JWT 令牌,甚至 ID 令牌),或者 API 調用可以使用系統到系統的令牌(例如客戶端憑證)。具體方式將取決于架構團隊的決策。

配置授權層時,確保了解如何訪問最終用戶的身份信息,以便授權層能夠利用這些信息進行授權。

需要注意的是,身份驗證流程在 OAuth 2.0 中有時被稱為 RS/AS 模式(資源服務器/授權服務器模式)。該模式允許通過使用范圍和聲明來進行某種程度的粗粒度授權。IETF 內部正在開展進一步的工作,以推出一種名為交易令牌的新型令牌,這將有助于進一步增強授權功能。

完成身份驗證步驟后,我們就知道了正在進行操作的主體——即最終用戶的身份。這個步驟的結果是,接下來至關重要的一步——授權。

將基于標準的授權應用于 API

現在我們已經知道了用戶的身份,接下來需要確認的是他們可以執行哪些操作。這就是授權步驟的目標。

幸運的是,OASIS XACML 和 NIST 發布了一種架構,現在已成為外部化和細粒度授權的標準模式。這個架構的主要組成部分包括:

那么,回到本文的核心問題,如何修復與 OWASP API 威脅相關的訪問控制問題呢?我們可以通過以下步驟來緩解與訪問控制損壞相關的特定風險:

一旦您建立了 P*P 架構并且了解了請求者的身份,修復就相對簡單了:編寫策略并將其部署到 PDP。編寫策略的語言有多種選擇,例如 OPA 的 Rego、Oso 或 ALFA。下面是使用 ALFA 編寫并部署到 PDP 的一個示例。

示例:開放銀行 API 的 ALFA 策略

假設我們的 API 暴露了以下端點。請注意,這只是一個簡單的示例,實際情況中不要直接使用此設計:

針對每個端點和方法,我們可以定義具體的授權策略。例如,以下是開放銀行用例中的 ALFA 策略代碼:

namespace openbanking{
policyset main{
apply firstApplicable
/**
* 控制對銀行賬戶的訪問
**/
policyset accounts{
target clause object=="account"
apply firstApplicable
/**
* 確定誰可以查看賬戶
**/
policy viewAccount{
target clause action=="view"
apply firstApplicable
/**
* 任何用戶都可以查看他們擁有的賬戶
*/
rule owner{
permit
condition account.owner == user.username
}
/**
* 分行職員可以查看同一分行客戶的賬戶
*/
rule branch{
target clause user.role == "teller"
permit
condition user.branch == account.branch
}
}
}
}
}

一旦我們編寫了策略,就可以開始編寫示例授權請求。以下是 XACML/JSON 格式的授權請求示例:

{
"Request": {
"ReturnPolicyIdList": true,
"AccessSubject": {
"Attribute": [
{
"AttributeId": "openbanking.user.username",
"Value": "Alice"
}
]
},
"Resource": {
"Attribute": [
{
"AttributeId": "openbanking.object",
"Value": "account"
},
{
"AttributeId": "openbanking.account.accountId",
"Value": "AL47 2121 1009 0000 0002 3569 87411"
}
]
},
"Action": {
"Attribute": [
{
"AttributeId": "openbanking.action",
"Value": "view"
}
]
}
}
}

請注意,此請求不包含元數據,例如賬戶所有權或分行信息。這些信息將通過 PIP 獲取并由 PDP 計算。

關于 AuthZEN 的說明

截至 2023 年 6 月,一些從業者和供應商在 OpenID 基金會的領導下聚集,推動創建一種新的 PEP-PDP 標準,以提高不同框架之間的互操作性。這個新標準現被稱為 AuthZEN,并且在本文撰寫時,已經處于實施者草案階段,已有 12 個實現符合該標準。具體示例可以參見此 Postman 集合。

進出時授權

在上面的示例中,我們檢查用戶是否可以查看整個銀行賬戶信息??赡芪覀兿M跈嘤脩舨榭促~戶的部分內容,例如賬戶 ID、余額或交易列表。為此,我們可以在內部 API 向網關返回調用時,在出站通道上應用授權檢查。網關可以攔截流量并觸發一系列新的授權檢查。這些檢查可以以批處理模式進行。例如,可以提出這樣的查詢:“Alice 是否可以查看賬戶 #123 的 ID、余額和交易列表?”查詢返回的結果可能是“允許”、“拒絕”或“拒絕”等。

結論

恭喜!外部化和基于策略的授權能夠有效解決 OWASP 前十名中的安全風險。例如,針對 API1:2023 – 對象級授權損壞(BOLA),上述 ALFA 策略能夠直接解決這一問題,因為它在授予訪問權限之前會驗證用戶是否為賬戶的所有者。隨著時間推移,策略可以不斷豐富和加強,而無需重新部署應用程序或 API。

為了實現這一愿景,您可以將 Layer7 API 網關與 Axiomatics 的細粒度授權服務結合使用,身份驗證部分則可以委托給 Curity 的 Identity Server。如果您想看到實際效果,我們非常樂意為您展示。

原文鏈接:A Guide to Fixing Broken Access Control in Your APIs

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
為什么API安全如此重要?
下一篇
使用GraphQL、Prisma和React實現端到端的類型安全:API準備
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
一本一道久久a久久精品| 国产日产欧美一区二区视频| 一区二区三区四区五区视频在线观看| 日韩色在线观看| 美女视频网站黄色亚洲| 欧美sm美女调教| 国产成人免费xxxxxxxx| 亚洲人123区| 日韩欧美一二三四区| 国产经典欧美精品| 久久精品72免费观看| 久久久久久免费| 日韩精品在线网站| 日本乱码高清不卡字幕| 国产一区二区在线影院| 国产在线播放一区| 久热成人在线视频| 69堂成人精品免费视频| 成人免费在线视频| 国产精品国产三级国产普通话三级 | 亚洲成人www| 精品卡一卡二卡三卡四在线| 欧美视频在线不卡| 欧美日韩一区三区| 欧美精品久久久久久久久老牛影院| 91在线一区二区| 在线观看成人免费视频| 精品国产一区二区三区四区四| 男人操女人的视频在线观看欧美 | 99精品在线观看视频| 中文字幕av免费专区久久| 日本aⅴ亚洲精品中文乱码| 欧美在线免费视屏| 欧美精品在欧美一区二区少妇| 日韩欧美你懂的| 国产精品久久久久影院老司| 亚洲少妇中出一区| 国产精品一区二区三区四区| 91丝袜高跟美女视频| 精品成人一区二区三区| 亚洲国产欧美日韩另类综合 | 一区二区在线观看不卡| 久久国产精品99久久人人澡| 久草在线在线精品观看| 欧美吞精做爰啪啪高潮| 国产午夜精品一区二区| 日韩精品欧美成人高清一区二区| 亚洲综合区在线| 99久久国产综合精品女不卡| 欧美精品18+| 九九九久久久精品| 26uuu欧美| 国产精品一区二区你懂的| 久久影院午夜论| 成人99免费视频| 一区二区三区在线免费视频| 99视频超级精品| 亚洲一区二区三区爽爽爽爽爽 | 国产在线视频不卡二| 成人午夜精品在线| 亚洲精品水蜜桃| 日韩欧美中文一区| 91在线国内视频| 五月天网站亚洲| 91精品国产一区二区三区| 国产在线一区观看| 亚洲国产精品一区二区久久恐怖片| 日本二三区不卡| 91精品国产aⅴ一区二区| 看电影不卡的网站| 一区二区三区四区激情| 欧美一级欧美一级在线播放| 成人高清免费在线播放| 亚洲一区二区高清| 久久久久久99久久久精品网站| 成人精品视频网站| 国产一区二区三区香蕉| 亚洲综合激情另类小说区| 欧美国产日韩一二三区| 精品福利视频一区二区三区| 久久久亚洲高清| 91麻豆福利精品推荐| 日日夜夜免费精品| 亚洲女性喷水在线观看一区| 精品少妇一区二区三区在线播放| 成人小视频在线| 日韩毛片精品高清免费| 国产亚洲欧美日韩在线一区| 26uuu成人网一区二区三区| wwwwww.欧美系列| 国产精品福利一区二区| 亚洲午夜三级在线| 美女www一区二区| 国产精品久久久久久久久免费桃花| 91精品国产综合久久精品麻豆| 欧美日韩一区二区三区免费看| 欧美三级日韩在线| 日本一区二区三区在线观看| 久久综合久久综合久久| 亚洲色图在线播放| 国产高清久久久久| 欧美日韩一二三区| 中文字幕一区不卡| 国产日产欧产精品推荐色| 91精品国产综合久久精品性色| 欧洲激情一区二区| 久久久亚洲午夜电影| 国产欧美精品国产国产专区| 肉丝袜脚交视频一区二区| 国产婷婷色一区二区三区四区| 久久九九全国免费| 午夜日韩在线观看| 99国产精品99久久久久久| 日韩免费电影一区| 日韩主播视频在线| 91麻豆精品在线观看| 国产精品一品二品| 激情小说欧美图片| 欧美一二三在线| 青青青伊人色综合久久| www.亚洲免费av| 亚洲欧美日韩在线不卡| 韩国欧美国产一区| 26uuu国产电影一区二区| 国产激情一区二区三区| 久久黄色级2电影| 中文字幕av免费专区久久| 欧美视频在线观看一区| 亚洲天堂免费在线观看视频| 亚洲第一av色| 欧美三日本三级三级在线播放| 亚洲线精品一区二区三区 | 欧美久久久久久蜜桃| 亚洲伊人伊色伊影伊综合网| 国产精品小仙女| 亚洲国产精品久久人人爱蜜臀| 欧美人妇做爰xxxⅹ性高电影 | 精品一区二区三区日韩| 欧美一区二区三区的| 成人性色生活片| 蜜桃一区二区三区四区| 91精品国产综合久久久久久久| 久久精品欧美一区二区三区不卡| 麻豆精品视频在线观看免费| 国产精品天天摸av网| 4438x亚洲最大成人网| 色综合久久中文综合久久97 | 亚洲精品免费电影| 国产精品美女久久久久久 | 亚洲国产欧美在线| 亚洲久草在线视频| 7777精品伊人久久久大香线蕉经典版下载 | 91 com成人网| 日韩天堂在线观看| 欧美日韩亚洲综合一区| 欧美视频精品在线观看| 在线看不卡av| 欧美最猛性xxxxx直播| 欧美日韩成人综合在线一区二区| 欧美精品乱码久久久久久按摩| 亚洲午夜在线观看视频在线| 成人福利视频在线| 日韩精品福利网| 蜜臀av性久久久久蜜臀av麻豆| 一区二区三区自拍| 婷婷久久综合九色综合绿巨人| 日韩一级成人av| 日本一区二区久久| 亚洲免费在线视频| 国产一区二区三区四区五区入口| 亚洲特黄一级片| 青青草国产精品97视觉盛宴| 婷婷综合五月天| 色哟哟一区二区| 国产欧美视频一区二区| 亚洲福利视频一区| 成人黄动漫网站免费app| 欧美日韩视频在线第一区| 欧美久久婷婷综合色| 欧美激情综合五月色丁香| 蜜乳av一区二区| 51久久夜色精品国产麻豆| 成人欧美一区二区三区白人 | 国产精品资源在线看| 国产黄色精品视频| 久久婷婷综合激情| 白白色 亚洲乱淫| 欧美一区二区视频在线观看2022| 亚洲午夜免费电影| 欧美三级视频在线观看| 香蕉av福利精品导航| 26uuu精品一区二区| 国产一区美女在线| 在线播放91灌醉迷j高跟美女 | 3atv在线一区二区三区| 视频精品一区二区| 国产日韩欧美一区二区三区乱码| 国产91精品一区二区麻豆亚洲| 久久新电视剧免费观看| 欧美人伦禁忌dvd放荡欲情|