天天看點

基于角色的權限設計基于角色的權限設計小小的困惑:

基于角色的權限設計

問題提出

  • 做網際網路相關産品時,比較常見的就會遇到資料請求身份校驗問題,需要判斷目前使用者有沒有身份,該身份是否可以進行進一步的操作
  • 雖說開始可以規定“特定的身份”表示加以判斷,但是當随着業務的拓展,用戶端的身份也會越來越多和複雜的互動關系
  • 還有涉及到業務表的CRUD時,也就是操作權限,單獨設計可以,但是權限系統貌似分隔開,沒有有機的将這些校驗類型的進行統一進行管理

嘗試着進行設計

  • 初探設計
    • 基于角色的權限設計基于角色的權限設計小小的困惑:
  • 改進設計
    • 基于角色的權限設計基于角色的權限設計小小的困惑:

自行設計的缺陷

  • 權限集合在一起,沒有層次,比較混亂
  • 角色和權限關聯随意,沒有嚴謹的關聯關系

RABC(基于角色權限控制)的設計

  • 基于角色的權限控制的核心是在使用者和權限之間引入了角色,意味着使用者和權限直接關聯被分開,通過使用者關聯角色、角色關聯權限的方式間接的來給使用者賦予權限。
    • 基于角色的權限設計基于角色的權限設計小小的困惑:
  • 加入角色的好處
    1. 使用者的身份更加明了,使用者歸屬感更強
    2. 角色和角色對應的權限更加清晰,便于調整使用者和權限之間的關系,隻需要将使用者的角色進行調整即可,靈活度比較高

權限設計拓展

  • 使用者-角色-權限
    • 基于角色的權限設計基于角色的權限設計小小的困惑:
  • 使用者-組織-角色-權限
    • 基于角色的權限設計基于角色的權限設計小小的困惑:
  • 使用者-組織-崗位-角色-權限
    • 基于角色的權限設計基于角色的權限設計小小的困惑:

小小的困惑:

當角色和權限是靈活可變的,不是剛開始就定義好的,當需要變動時,如何在代碼邏輯中合理的應用自己的權限系統?

繼續閱讀