JWT與RBAC許可權模型

2022-06-11 01:33:12 字數 1421 閱讀 1931

json web token (jwt)是為了網路應用環境間傳遞宣告而執行的一種基於json的開發標準(rfc7519),該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入(sso)場景。jwt的宣告一般被用來在身份提供和服務提供者間傳遞被認證的使用者身份資訊,以便於從資源伺服器獲取資源,也可以增加一些額外的其它業務邏輯所必須的宣告資訊,該token也可以直接被用於認證,也可以加密。

使用者向伺服器傳送使用者名稱和密碼。

伺服器驗證通過後,在當前對話(session)裡面儲存相關資料,比如使用者角色、登入時間等等。

伺服器向使用者返回乙個session_id,寫入使用者cookie。

使用者隨後的每一次請求,都會通過cookie,將session_id傳回伺服器。

伺服器收到session_id,找到前期儲存的資料,由此得知使用者的身份。

組成

image.png

jwt預設是不加密,但也是可以加密的。生成原始token以後,可以用金鑰在加密一次。

jwt不加密的情況下,不能將秘密資料寫入jwt。

jwt不僅可以用於認證,也可以用於交換資訊。有效使用jwt,可以降低伺服器查詢資料庫的次數。

jwt的最大缺點是,由伺服器不儲存session狀態,因此無法在使用過程中廢止某個token,或者更改token許可權。也就是說,一旦jwt簽發了,在到期之前就會始終有效,除非伺服器部署額外的邏輯。

jwt本身包含了認證資訊,一旦洩露,任何人都可以獲得該令牌的所有許可權。為了減少盜用,jwt的有效期應該設定得比較短。對於一些比較重要的許可權,使用時應該再次對使用者進行認證。

為了減少盜用,jwt不應該使用http協議明碼傳輸,要使用https協議傳輸。

RBAC許可權模型

rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...

專案 RBAC模型與許可權設計

一.rbac模型 什麼是rbac rbac 全稱 role based access control 基於角色的許可權訪問控制,作為傳統訪問控制 自主訪問,強制訪問 的有前景的代替受到廣泛的關注。在rbac中,許可權與角色相關聯,使用者通過成為適當角色的成員而得到這些角色的許可權。這就極大地簡化了許...

許可權控制模型 RBAC

rbac role based accesscontrol,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。與acl實現的區別在於,不能直接為使用者分配許可權,只能從角色那裡繼承而來...