2012-09-21 153 views
1

我很難掌握基於角色的訪問控制(RBAC)背後的代碼。我試圖在Laravel框架中使用「捆綁」,但它似乎只是讓事情更復雜。基於角色的訪問控制(RBAC)更簡單的方法?

我需要的是我的具體應用程序是三個角色。第一個也是最基本的角色就是允許用戶登錄我的應用程序,管理他們的賬戶,並保存「收藏夾」和「交易」。我需要的第二個角色是讓店主能夠登錄並創建賬戶和交易。第三個角色基本上是一個管理角色,所以如果需要的話,我可以進入並刪除不需要的內容。

只是簡單地將一個int字段添加到用戶表中調用類似「角色」會有任何預期的問題嗎?如果用戶的角色爲0,則他們具有基本權限並且不能訪問該站點的管理員和所有者區域; 1表示用戶擁有所有者角色等。我會在每次發出請求時檢查用戶的角色。

這是一個合理的,安全的解決方案,或者我可能會遇到使用這種方法的問題?

回答

2

使用RBAC在管理對應用程序功能的訪問時會給您更多的靈活性。每個用戶可以分配多個角色,任務和操作;每個角色可以由多個任務組成,每個任務可以由多個操作組成。

如果您的應用程序只需要3個角色,基本,所有者和管理員,我認爲只需在用戶表中添加一個指標即可。但是,如果您需要授予某些用戶訪問某些操作的權限,則您需要爲每個要區分訪問控制的操作都添加一個新號碼。因此,使用這種方法將難以根據功能分離權限。

另一種解決方案是使用ACL,我相信它更容易實現,但可能難以管理。您可以瞭解ACL和RBAC here之間的區別。

相關問題