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

更新於 發佈於 閱讀時間約 2 分鐘
這次來介紹軟體世界中很常遇到的授權策略,而有沒有比較好的一種策略方式,讓開發者可以遵循一套標準呢? 答案是有的,就來介紹一下新寵兒,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之外, 也能額外回傳資訊。
這次主要帶點概念過來,之後會持續分享實作的部分,有興趣的朋友不妨收藏與支持一下唷!
為什麼會看到廣告
avatar-img
118會員
266內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
前一篇的「Authentication、Authorization,傻傻分不清楚?」主要在介紹認證與授權的差異之處,而本章節著重於授權這部分,也使用了經典的RBAC模型進行說明。 RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示: Who是
認證(authentication)跟授權(authorization)這兩個名詞常常被混淆,但本質上是完全不同的兩個概念,在數位化的時代下,為了確保每位使用者的安全性,每個系統幾乎都具備認證(authentication)與授權(authorization)這兩大功能,而這些概念也常常出現在我們生
概念: 有限時間內可使用通行證來要求對應的操作權限。 JWT 的組成內容有三個部分,由 . 做區隔,最後透過這三個部分,串成一個 Jwt 字串 [HEADER].[PAYLOAD].[SIGNATURE] 1. Header: 主要記載認證的方法 {     "typ": "JWT",     "
前一篇的「Authentication、Authorization,傻傻分不清楚?」主要在介紹認證與授權的差異之處,而本章節著重於授權這部分,也使用了經典的RBAC模型進行說明。 RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示: Who是
認證(authentication)跟授權(authorization)這兩個名詞常常被混淆,但本質上是完全不同的兩個概念,在數位化的時代下,為了確保每位使用者的安全性,每個系統幾乎都具備認證(authentication)與授權(authorization)這兩大功能,而這些概念也常常出現在我們生
概念: 有限時間內可使用通行證來要求對應的操作權限。 JWT 的組成內容有三個部分,由 . 做區隔,最後透過這三個部分,串成一個 Jwt 字串 [HEADER].[PAYLOAD].[SIGNATURE] 1. Header: 主要記載認證的方法 {     "typ": "JWT",     "
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
什麼是多因素驗證 (MFA)? 多因素驗證 (MFA) 是一種登入保護機制,需要使用者提供多個不同的驗證方式來確認身份。除了輸入密碼,使用者還可能需要: 輸入發送到手機的驗證碼 掃描指紋或面部 回答安全問題 這樣即使密碼被盜用,未經授權的用戶也很難登入帳戶。 為什麼需要多因素
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
※ OPP(Object-oriented programming)簡介 什麼是OPP? OPP是一種軟體開發的風格方式。 是一種撰寫程式時的思考模式。 OPP的目的: 企圖將電腦世界的資料類比到現實中「物件」的概念。 將函數化的資料處理方式用類比到現實世界的互動關係,來簡化思考的難度。
首先定義符號: 因此我們有​ 其中 再定義State Avtion Value.Function、Value Function和Advantage Function分別為: 接著我定義 此外觀察上述定義,能有 因此我有以下展開 這時回顧 因此我有 結合之後得到 移項之後得到 接
Thumbnail
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
本篇介紹跨平台存取控制系統 Oso 以及它的規則語言 Polar,用他們替專案建立 RBAC 以及資源級的存取控制。
專利是指對新的技術、產品或方法所享有的獨特權利,通常由政府機構授予,用於保護發明者或創新者的知識產權。
Thumbnail
PoW (工作量證明機制)為去中心化驗證首開先例,但其浪費能源以及高昂成本的特點長期為人詬病,隨區塊鏈著技術的演進,PoS(權益證明機制)應時而生。本文將介紹何謂PoS 以及不同公鏈之間PoS的差異。
Thumbnail
MPL授權是目前與法律有最完整對應的授權條款。然而MPL授權對於原始碼仍保持copyleft特性,對商業開發而言或許仍有疑慮。 因此若有商業團體共同開發時,採用Apache 授權較佳;如果不在乎他人如何利用、優化原始碼,或希望原始碼盡可能地廣為散播,幾乎沒有任何限制的MIT或BSD授權是較好的選擇。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
什麼是多因素驗證 (MFA)? 多因素驗證 (MFA) 是一種登入保護機制,需要使用者提供多個不同的驗證方式來確認身份。除了輸入密碼,使用者還可能需要: 輸入發送到手機的驗證碼 掃描指紋或面部 回答安全問題 這樣即使密碼被盜用,未經授權的用戶也很難登入帳戶。 為什麼需要多因素
Thumbnail
※ OPP第一大核心-封裝 封裝的精神在於將「方法」、「屬性」和「邏輯」包裝在類別裡面,透過類別的實例來實現。這樣外部物件不需要了解內部的實現細節,只需要知道如何使用該類別提供的接口即可。換句話說,封裝是將內部細節隱藏起來,只暴露必要的部分給使用者。 封裝的核心概念是,使用者如果想要接觸資料,只
※ OPP(Object-oriented programming)簡介 什麼是OPP? OPP是一種軟體開發的風格方式。 是一種撰寫程式時的思考模式。 OPP的目的: 企圖將電腦世界的資料類比到現實中「物件」的概念。 將函數化的資料處理方式用類比到現實世界的互動關係,來簡化思考的難度。
首先定義符號: 因此我們有​ 其中 再定義State Avtion Value.Function、Value Function和Advantage Function分別為: 接著我定義 此外觀察上述定義,能有 因此我有以下展開 這時回顧 因此我有 結合之後得到 移項之後得到 接
Thumbnail
這篇開箱另一套權限檢查工具 Vakt,相較於 Oso,Vakt 的規則直接以 Python 語法構成,不用再學 Oso 的特規語法,可以作為 Oso 的替代品。
Thumbnail
本篇介紹跨平台存取控制系統 Oso 以及它的規則語言 Polar,用他們替專案建立 RBAC 以及資源級的存取控制。
專利是指對新的技術、產品或方法所享有的獨特權利,通常由政府機構授予,用於保護發明者或創新者的知識產權。
Thumbnail
PoW (工作量證明機制)為去中心化驗證首開先例,但其浪費能源以及高昂成本的特點長期為人詬病,隨區塊鏈著技術的演進,PoS(權益證明機制)應時而生。本文將介紹何謂PoS 以及不同公鏈之間PoS的差異。
Thumbnail
MPL授權是目前與法律有最完整對應的授權條款。然而MPL授權對於原始碼仍保持copyleft特性,對商業開發而言或許仍有疑慮。 因此若有商業團體共同開發時,採用Apache 授權較佳;如果不在乎他人如何利用、優化原始碼,或希望原始碼盡可能地廣為散播,幾乎沒有任何限制的MIT或BSD授權是較好的選擇。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊