2011-02-28 127 views
3

是否有任何人有任何架構,數據模型或建議來創建帳戶爲多租戶的用戶/角色管理系統。例如,組織A中的用戶可能被分配到某個項目的角色,組織B中的某個應用程序。任何想法?我一直在閱讀RBAC,只是尋找一個很好的例子。設置用戶/角色管理系統 - 使用多租戶

感謝

回答

2

你有沒有看着Rhino security?它可能並不完全符合你的要求,但是Ayende在通過安全模型&開發過程中做得很好,可以給你一個很好的起點。

+0

謝謝,我已經經歷了許多文章閱讀,我想我已經想出了一個體面的數據模型。在Visio中構建 - 讓我知道您的想法。 http://img232.imageshack.us/i/rolesystemdraft.jpg/ – 2011-03-01 19:04:06

+0

看起來很合理。我認爲在你的腦海裏,所有的訪問都是由公司+角色分配的,沒有個人權利的概念? – Paul 2011-03-01 19:07:56

1

您在.NET中,但對於PHP世界中的我們來說,Zend Framework提供了輕量級訪問控制框架,使您能夠構建自己的ACL實現,使您能夠理解概念並在.NET中構建自己的實現。在http://framework.zend.com/manual/en/zend.acl.introduction.html

我能夠給用戶提供我們目前使用的,如果你需要更多的幫助實現一個MySQL工作臺文件

1

摘要信息RBAC: 基於角色的訪問控制系統,是限制對「一些訪問的方法來源或應用程序或基於組織用戶角色的應用程序的某些功能。

在這裏,限制可以通過多個權限進行,這些權限是由管理員用戶創建的,用於限制訪問權限,這些權限共同表示一個角色,該角色將分配給用戶。

如果我們稍微深入RBAC,它基本上包含3個功能。

1)身份驗證 - 它確認用戶的身份。通常通過用戶帳戶和密碼或憑證完成。

2)授權 - 它定義了用戶可以在應用程序中執行和不能執行的操作。防爆。 '修改訂單'是允許的,但'創建新訂單'是不允許的。

3)審覈用戶對應用程序的操作。 - 跟蹤用戶對應用程序的操作,以及誰授予了哪些用戶的訪問權限?這是RBAC系統的非常基本的頂視圖。

對於多租戶應用程序,我會建議'管理組和用戶'與角色和權限。

讓我們舉一個例子。

有針對應用程序的多個客戶(承租人):

Client A – has – 100 users [Tenant A] 
Client B – has – 50 users [Tenant B] 
Client C – has – 100 users [Tenant C] 

因此,該方案會是這樣,這個客戶的每個客戶端和用戶應只允許訪問應用程序的特定功能,這些客戶的管理員應該只能管理他們的用戶。

因此,要解決這個問題,我們可以

  1. 定義和管理組(租戶)
  2. 定義和管理用戶或帳戶作爲組的成員(租客)
  3. 限制爲每個租戶訪問通過角色或權限申請
  4. 將安全管理授權給每個客戶或組織內的本地用戶
    如下所示。

組層次: Groups Hierarchy1:

其中組「客戶A」和它的後代組將包含「客戶A」的用戶,同樣爲其他客戶或機構。

相應地,用戶將被分配到適當的組,並且角色將被分配給特定的組。

您可以查看本文 - 該文章介紹瞭如何通過VisualGuard提供的即用型框架來處理用戶和角色管理的多租戶應用程序。

http://www.visual-guard.com/EN/net-powerbuilder-application-security-authentication-permission-access-control-rbac/secure-saas-and-multi-tenant-apps-with-asp-net-or-wcf-Silverlight.php