簡體   English   中英

Symfony2中ACL和用戶角色之間的區別是什么

[英]What is the difference between ACL and user roles in Symfony2

我是symfony2的新手,我對這些術語和用例感到困惑。 任何人都可以解釋有什么區別

  1. ACL
  2. 角色

我們來看一個最基本的例子:博客應用程序(再次)。

構建博客應用程序時,通常需要對用戶進行身份驗證並授權他們執行特定操作,例如:

  • 授權Bob為博客添加新的撰稿人
  • 授權Alice創建一個新的博客文章
  • 授權Alice編輯自己的博客文章
  • 授權Bob刪除Alice的博文

什么是角色

角色表示一組權限,在您的應用程序中進行硬編碼 在檢查是否允許用戶向博客添加新貢獻者時,您的代碼會檢查當前用戶是否具有角色“ROLE_ADMIN”。

這就是為什么Bob(他有ROLE_ADMIN)被允許添加Alice作為新的貢獻者。 請參閱有關安全性/角色的Symfony文檔

什么是集團

當用戶屬於某個群組時,她通常會獲得一組角色 Alice屬於“貢獻者”組,因此她擁有角色ROLE_STATS(她可以查看博客統計信息)和ROLE_POST(她可以發布新的博客條目)。

同樣,這個概念在Symfony中沒有硬編碼,但開發人員通常會這樣認為。 請參閱使用Groups管理數據庫中的角色

訪問控制列表

當您需要根據Role +域對象做出授權決策時,訪問控制列表會派上用場。

允許Alice編輯她編寫的博客條目。 要檢查此授權,您需要Alice的角色和她嘗試編輯的Post模型。 Symfony關於ACL的文檔也很清楚。

哦,Bob允許編輯所有博客條目,因為他有ROLE_ADMIN。 這里的決定僅基於角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM