2013-03-01 39 views
1

之間的安全我有2個不同的webapp:春季安全:分享我的CRM Web應用和我的前webapp的

  • 一個CRM應用,它顯示出客戶的簡歷辦公用戶
  • 門戶Web應用程序客戶用戶

我CRM Web應用程序使用的LDAPManagerInMemoryManager組合與BasicAuthenticationFilterBasicAuthenticationEntryPoint 我的門戶使用的經典JDBC經理標準UsernamePasswordAuthenticationFilter

現在,我需要從我的CRM webapp透明地訪問我的門戶。

例如,我在CRM webapp上工作。客戶打電話給我,並要求解釋有關Portal中提到的內容。

辦公室用戶可以通過CRM客戶帳戶頁面中的http鏈接以客戶身份訪問Portal。

所以我會繞過我的LoginUrlAuthenticationEntryPoint並直接訪問客戶帳戶。邁克爾的幫助後

編輯,我意識到我需要保持一絲其中CRM的用戶訪問到門戶網站帳戶:
我的問題是:
- 我應該使用PreAuthenticatedManagerRunAsManager
- 我需要申報第二個EntryPoint嗎?
- AuthenticationFilters

- 是否可以在我的新門戶AbstractPreAuthenticatedProcessingFilter中恢復從我的CRM Web應用程序驗證的用戶BASIC?

回答

0

我從你的解釋如下假設/結論:

1)CRM用戶存儲庫和門戶網站用戶資源庫具有不同的用戶

2)CRM用戶不應該知道的門戶網站用戶密碼

我不認爲你需要使用RunAsManager。 (當您使用RunAsManager時,它意味着您首先在門戶網站中以CRM用戶身份進行身份驗證,然後用門戶網站用戶身份驗證替換身份驗證。我認爲您不能通過門戶網站用戶存儲庫對CRM用戶進行身份驗證。我建議創建您自己的「AuthenticateAs」功能:當CRM用戶按門戶網站用戶的CRM頁面中的鏈接時,它將作爲門戶網站用戶在門戶網站中進行身份驗證,而不提供密碼。

它是如何工作的?

1)當CRM用戶按下鏈接時,帶有加密門戶用戶名的參數被添加到URL中。

2)當使用加密的門戶網站用戶名訪問門戶應用程序的要求,新創建PreAuthenticatedProcessingFilter解密的用戶名和驗證用戶

就是這樣:)

夫婦的評論:

1)請使用AES-258算法來加密/解密的用戶名

2)請確保,加密/解密密鑰不能被訪問HTTTP

3)您可以爲您 PreAuthenticatedProcessingFilter

4)延長AbstractPreAuthenticatedProcessingFilter我強烈建議創建門戶應用兩個角色:USER_WRITE_ROLE和USER_READ_ROLE。當CRM用戶使用「AuthenticateAs」身份驗證進行訪問時 - 它應該獲得USER_READ_ROLE。當門戶用戶使用常規身份驗證訪問時 - 它應該獲得USER_ WRITE_ROLE。 5)你應該考慮一個CRM用戶如何執行一個門戶用戶的註銷(否則他總是會在第一個用戶上工作)。我可以考慮的最簡單的方法 - PreAuthenticatedProcessingFilter應該處理每個請求(即使它已經過身份驗證),並且它包含帶有用戶名的參數以清理門戶用戶會話並執行新的身份驗證。

請告訴我您對該建議的看法,並告訴我您是否需要任何其他說明。

最好的問候,

邁克爾

附:在問題編輯後添加。 在門戶網站上跟蹤CRM用戶的最簡單方法是將附加加密參數添加到帶有CRM用戶名的URL

+0

謝謝您的回答。首先,你的結論是糾正。 – raouf 2013-03-06 10:20:15

+0

享受:)請告訴我,如果你需要任何額外的幫助。你可以接受我的答案,如果它符合你的期望。 – Michael 2013-03-06 11:05:03

+0

對不起,我的編輯被截斷了。事實上,在我的PreAuthenticationFilter中恢復基本身份驗證時需要更多解釋。 – raouf 2013-03-06 12:50:46