iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
自我挑戰組

技術隨筆系列 第 7

權限系統的設計經驗

  • 分享至 

  • xImage
  •  

在 CRUD-based 的系統上附加 RBAC 的權限約束

過程

  1. 決定採用 RBAC 之後,根據專案當前使用的框架生態系找到對應的套件 Laravel-Backpack/PermissionManager
  2. 確認所需的角色和權限大概要怎麼切?為了跟 CRUD 搭配需要作一些調整
  3. 根據角色微調權限展現的行為

權限無法涵蓋的面向: 範圍 scope

開發到後面發現的,當時討論需求時使用者會希望某些角色能編輯的範圍要到哪邊,就開始發現 RBAC 其實還是有一些侷限,所以還是需要加入一些額外的輔助邏輯修補模型不足的地方。

搭配 CRUD 的調整

當時的需求表述僅只有可以閱覽/編輯 兩種,這時候就是運用一些通靈能力還有和 PM 作進一步地確認,讓 CRUD 都能釐清

R: read => 會再細分成 「列表」、「顯示單筆資料」兩種

C: create => 建立資料
U: update => 編輯
D: delete => 刪除

編輯和刪除可以再確認是不是所有角色都一樣,如果有角色差異的話會再多切一個刪除權限出來,如果都一致的話就切足夠的權限即可
大原則是「剛剛好就好」,因為不管怎麼切,需求調整之後一定會產生變動,如果不希望這部份一直調整的話也可以一開始就跟 PM 確認清楚

結語

開發過權限系統之後意識到大家心目中的系統圖像都長得不太一樣,想要一招打天下真的蠻難的,就老老實實地確認和釐清就好


上一篇
Role-based access control (RBAC) 權限管理模型
下一篇
網站調研工具組
系列文
技術隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言