2023-05-22|閱讀時間 ‧ 約 3 分鐘

【認證與授權】Open Policy Agent 授權策略

這次來介紹軟體世界中很常遇到的授權策略,而有沒有比較好的一種策略方式,讓開發者可以遵循一套標準呢? 答案是有的,就來介紹一下新寵兒,Open Polocy Agent吧!
首先我們先搞懂什麼是認證? 什麼又是授權? 還懵懵懂懂的朋友們可以請先參考這一篇「Authentication、Authorization,傻傻分不清楚?」。

認證與授權

● 認證(Authentication): 身分檢查, 識別人或物的檢查, 例如: 通行證的檢查、登入後的人是誰。
● 授權(Authorization): 被識別過後的人對什麼樣的資源具有什麼操作權限。
Open Policy Agent專注在授權這一塊。

Open Policy Agent簡介

簡稱OPA, 是一套開源專案, 提倡策略即代碼, 把決策這一個步驟從複雜的業務邏輯中抽離出來,以代理人的角色自居, 將這些授權檢查規則轉換為OPA的檢查機制, 當需要進行授權檢查時, 就可以委託給OPA來幫我們進行檢查。
主要目標是提供標準的授權策略語言(rego), 讓我們開發不同產品時,都可以遵照這樣的規範進行授權的策略制定。
目前 OPA 也已經受許多知名企業(如 T-Mobile、Netflix、Pinterest等)所採用。

以下是幾個OPA常被應用的業務場景:

● 授權: 判斷用戶能夠對哪些資源進行什麼樣的操作。
● 防火牆規則, 比如iptables。
● 可以規範哪個Service可以開放的Port、Protocol、對應的Network...等, 請參考官方範例
● 定義Proxy的策略。

OPA邏輯結構

● Query: 需進行評估的查詢來源, 如: 登入的使用者。
● Data: OPA評估時需要的資料, 例如: 用戶列表、角色列表、權限列表。
● Policy: 策略的業務邏輯,它根據Query與Data來產生策略的評估結果, 使用Rego語法來描述。
● Decision: 評估後的結果, 除了單純的true/false之外, 也能額外回傳資訊。
這次主要帶點概念過來,之後會持續分享實作的部分,有興趣的朋友不妨收藏與支持一下唷!
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.