2014-02-09 43 views
0

彈簧安全大師彈簧安全使用Windows AD進行身份驗證,使用Spring Security ACL進行授權

我是彈簧安全新手,如果我的問題不清楚,請耐心等待。

我想使用spring security 3.x實現基於角色的訪問控制。個人用戶存儲在Windows AD中,沒有組,所以我們不能簡單地將組映射到權威機構,如一些示例所示。所以我的計劃是使用Windows AD僅用於身份驗證,但用戶< - >角色關係由Spring安全自身維護。

但是,將單個用戶映射到角色將非常繁瑣,所以我的問題是如果可能的話,在彈簧安全中配置用戶< - >組< - >角色,但認證部分必須由Windows AD完成?

由於彈簧安全性非常靈活,我相信我的要求是可以實現的。請問有人能指出我應該看的地方嗎?

的詳細信息,對於像我這樣的新手更好:=)

預先感謝您。

亞倫李


編輯1:要添加到我的特別問題,我可以利用春節數據庫表機關,團體,group_authorities,group_members實現一個簡單的基於角色的authroization邏輯是什麼?但是我不能使用「用戶」表作爲ealier解釋用戶的詳細信息將不得不存儲在Windows AD中,因此用戶的身份驗證需要使用Windows AD完成。

任何建議?

感謝

亞倫

回答

0

首先,一些澄清術語:當局,通常由角色 Spring Security的,都是應用範圍的權限。 ACL(訪問控制列表)另一方面,指定特定域對象的權限。就像你理解差異一樣。 AD通常包含權限/角色,但不包含ACL。

如果您不想使用AD的權限,您可以自己執行​​並將其注入ActiveDirectoryLdapAuthenticationProvider的實例中。請參閱Spring Security reference documentation如何指定自定義身份驗證提供程序。

如果您想使用參考架構的表(權限等),您可以使用JdbcDaoImpl加載用戶詳細信息。然後,您必須將用戶插入到用戶表中,而不是任何密碼,因爲身份驗證是通過AD完成的。但是,如果您想擺脫用戶表,則必須自定義實現。

+0

是的,我混淆了條款。剛剛閱讀了文檔yes管理員是擁有權限的應用程序範圍的對象,而ACL是域對象。 –

+0

在這種情況下,UserDetails如何從我自己的UserDetailsContextMapper實現派生到定義誰可以做什麼的ACL?你能否詳細說明一下? –

+0

我又添加了一個問題到我原來的問題,你能幫忙嗎? –

相關問題