2010-03-13 24 views
8

我想知道其他人是如何實現這種情況的。我有一個內部導軌應用程序(庫存管理,標籤打印,運輸等)。我正在重寫系統的安全性,導致舊的維護方式變得繁瑣(用戶表,密碼,角色) - 我使用了restful_authentication和角色。它在大約3年前實施。我已經使用ruby-ldap-net實現了AuthLogic來驗證用戶身份(實際上,與我以前如何與其他框架/語言進行鬥爭相比,這非常容易)。下一步是角色。我已經在Active Directory中定義了組 - 所以我不想在我的Rails應用程序中運行單獨的角色系統,我只想重用Active Directory組 - 因爲系統的這一部分已經被其他用途維護(共享驅動器,備份,PC訪問等)在Rails應用程序中使用Active Directory/LDAP組進行權限角色的示例

所以我在想,如果別人有經驗的基礎上在Active Directory或LDAP組一個Rails應用程序執行權限/角色。角色要求也相當複雜

下面是一個例子:

比如我有屬於監事組的AD和庫存部門的用戶,所以我是用戶能夠在invetory運行「先進」的任務 - 調整數量,運行報告,但是來自其他部門的其他「主管」不應該能夠做到這一點,最高管理層也應該能夠使用這些報告(不管他們是否屬於天氣),而不是中部管理,除非他們在庫存組。系統的管理員(域管理員)應該對系統有無限制的訪問權限,除非他們處於人力資源部門(例如,您不希望所有系統管理員(除了一個授權人員之外)看到其他人的個人信息僱員)。

我看着acl9,cancan,aegis。我想知道在基於AD的系統訪問的這種特定使用情況下,是否存在任何優勢/缺點。建議其他系統,如果你有良好的經驗。

謝謝!!!

回答

6

ActiveLDAP(DocumentationGithub)有一定的你要找的,具體的特徵:

  • 您可以在Rails應用程序LDAP對象(對象類實例)將對象映射。這個API並不完全反映ActiveRecord,但它很容易理解和學習。
  • 在LDAP和關係數據庫中顯然不可能加入等等,但是您可以編寫一些稍微聰明的代碼,以便從ActiveLDAP對象或ActiveRecord對象輕鬆訪問組合數據。
  • ActiveLDAP還提供了寫入LDAP的方法,使您可以使用Rails管理LDAP中的用戶和角色,從而無需管理數據庫中的用戶表,但用戶數據庫表可能仍然需要存儲關於用戶的應用程序特定數據。
  • 此外,您可以將AuthLogic與ActiveLDAP集成。以下是我發現的一個嘗試:LDAP Pass-through Authentication with Authlogic and ActiveLdap
  • 然後,您可以使用聲明性授權(Pundit)來處理您的角色和授權。
+0

Patrick,謝謝你的回覆,但讓我澄清我在找什麼。正如我所提到的,我已經獲得了認證部分 - 用authlogic和ruby-ldap-net解決了問題。這是我感興趣的授權部分,我使用了一系列的寶石,比如acl9和聲明式授權,我只是想看看是否有人做過類似的事情 - 使用任何授權gem將AD/LDAP組映射到角色 - 以及他們遇到的問題。 – konung 2010-04-01 20:24:01

+0

Nick,我的迴應是,ActiveLDAP將允許您將角色和用戶從LDAP映射到Ruby中的對象,並且您可以使用聲明式授權來處理應用程序的實際授權部分,這些部分基於角色每個用戶。在不瞭解LDAP實例的結構或授權方案的細節的情況下,很難詳細瞭解該架構。 – 2010-04-02 04:24:51

+0

文檔的第一個鏈接已損壞,但這似乎是http://activeldap.github.io/ – 2014-05-16 15:04:08

相關問題