2017-05-24 98 views
0

我只是一個小的LDAP相關知識,所以請原諒我,如果我問一些愚蠢的東西。使用自定義attirbure分組LDAP用戶

我有一個web應用程序,我想控制哪個用戶可以看到什麼數據。所以我認爲用戶可以屬於一個組(即DBA,中間件專家,UNIX傢伙等),並且登錄用戶只能在應用程序中查看其數據。
我想LDAP進行身份驗證。我假設在LDAP中沒有指定這樣的組(即,我不想使用LDAP組,因爲我不能強制公司LDAP創建組並將用戶放入這些組)。

我想到的是一個靈活的解決方案,就像能夠使用每個用戶的自定義屬性(假設名爲'acces_groups')什麼樣的組可以徵用逗號分隔的字符串。
我讀了一個objectClass的模式(像organizationalPerson)必須改變來做到這一點。但有沒有一種簡單的方法可以將這種自定義屬性添加到LDAP中的用戶(我正在談論已在運行的公司LDAP)? 或者你會如何解決這個問題(不中斷/打破目前的LDAP)? 我沒有說出什麼樣的LDAP(OpenLDAP,活動目錄等),因爲我想要一個通用的解決方案。

感謝,

+1

對於「逗號分隔字符串」,通常使用多值屬性。 – jwilleke

回答

0

這是兩個可能的解決方案/實施:

  • 你應該什麼:您可以添加一個模式,而不是改變organizationalPerson對象類。 (因爲更改已經建立的模式將會使LDAP不能標準化) 然後,將此objectClas添加到所有用戶,以允許他們使用此模式定義的屬性。

    您可以定義acces_groups屬性並使其成爲多值。你也可以定義每一個屬性標誌你需要dbamiddleware等,使它成爲一個布爾值,等

    爲什麼我不會做任何這樣的:

    • 這是一個複雜得多並採用侵入式的方式,而不是使用LDAP中容易提供的內置機制。
    • 如果您的LDAP管理員允許您像這樣修改您的LDAP模式,請讓他使用組應該沒有問題,因爲此方法實施起來要簡單得多且耗時很多
    • 要每天管理它只是一個痛苦,因爲你沒有完整性機制。在「模擬」組中的所有「CRUD」的操作將必須「手動」
      • 做如果你想刪除一個組,你將不得不刪除所有誰擁有它設置的用戶屬性。
      • 如果要列出「組」,你將不得不尋找所有誰與正確的值設置該屬性的用戶
  • 使用羣體:您可以確實可以創建諸如dba,middleware等的組,並將用戶分配給這些組。

    • 它可以讓你使用組成員船,並自動填充與該組用戶的屬性,他是
    • 部分是LDAP非標準,只需要處理的數據比處理LDAP配置(其中涉及停機時間,可能的錯誤/挫折等)
    • 如果您的公司允許您修改LDAP配置和用戶數據,那麼它也應該允許您創建組併爲其分配人員
+0

很好的解釋Esteban,謝謝!它非常有意義。 – Viktor