2015-11-02 174 views
1

我正在用幾十種RESTful Web服務構建Spring-MVC-Hibernate後端。前端可能是一個HTML5,CSS3和JQuery Web應用程序,它利用我正在開發的後端Web服務。OpenAM和Spring Security 4集成

我們在Tomcat服務器上有一個OpenAM 10.x SSO系統,我們希望我們認證時,這裏或組中沒有授權規則。我見過的所有文檔都使用了未知版本的OpenAM和Spring Security 3.我們有OpenAM 10.x,但沒有時間升級到最新的OpenAM。我們計劃使用目前最新的Spring Security 4.0.3。

1)我們可以做的一個方法是建立一個信任圈,然後建立一個IDP和一個SP,然後我們將有一個URL來做聯合SSO。我相信這就是我們的前端如何獲得身份驗證,並將令牌返回到前端,並可能將其存儲爲cookie。

2)我看到完成的另一種方法是簡單地調用OpenAM restful api,傳入用戶名和密碼並獲取令牌。然後,該令牌將用於傳遞到後端RESTful API以確保安全。

我們一定會使用Spring Security for Users,Roles和Permissions(授權),那麼我們可以這樣做嗎?對用戶,角色和權限使用Spring Security 4.0.3,但使用OpenAM進行身份驗證?

任何信息都會非常有幫助。謝謝!

回答

2

我們一直在做與我們的應用程序類似的東西。我們開始使用OpenAM 12,現在我們使用OpenAM 13 SNAPSHOT。

雖然我們已經使用OpenID Connect進行了集成,但不是SAML。 這對我們來說是一個很好的起點:https://github.com/fromi/spring-google-openidconnect

我們在OAuth2ProtectedResourceDetails中使用了默認的標頭/基本方案,而不像樣本中那樣。

在OpenAM上,您必須配置OpenID Connect Provider。 OpenAM 13中的步驟:

  1. 以amAdmin身份登錄。
  2. 選擇領域。
  3. 登錄頁面(儀表板/領域概述)將列出常見任務。
  4. 選擇配置'OAuth Provider',然後'配置OpenID Connect'。
  5. 選擇默認值,然後單擊創建。

然後,你必須添加一個代理/客戶端。 OpenAM 13中的步驟:

  1. 從領域配置頁面中選擇代理。
  2. 選擇OAuth 2.0/OpenID Connect Client。
  3. 點擊新的按鈕,輸入client_id和client_secret值並創建代理。
  4. 點擊新創建的代理進一步配置參數,如redirect_uri,範圍等。

如果您不能選擇OpenAM 12或13並且與OpenAM 10卡住,則此信息可能沒有用處。

+0

非常感謝您的回覆。我最近被我的經理告訴我們,我們將與OpenAM12 ...或最新的東西在那裏。所以,當我開始這個項目時,我們不需要處理OpenAM 10,再次感謝! – tjholmes66

+0

因此,在查看SpringSource David Syers的各種視頻後,看起來我們現在將使用OpenAm 10中的Oauth2,然後再使用OpenAM 12.因此,現在我正在查找spring-security.xml示例爲此,以及我可以找到的任何其他信息。 – tjholmes66

+0

如果您正在查看OAuth2,我只想指出OpenID Connect是一種基於OAuth2構建的身份驗證機制。 OAuth2中的身份驗證用於授權,而不是身份驗證。 – gazal