3

我需要爲Intranet用戶開發一個Web應用程序。我不希望他們每次訪問該網站時都輸入登錄憑據。它應該從系統用戶名和密碼中自動加載。即如果他們有一個有效的系統用戶名和密碼,他們應該能夠登錄到應用程序。我正在使用Java。如何滿足這個要求?如何使用系統憑證自動登錄到網站?

+0

你是什麼意思的系統用戶名和密碼?您是否指NTLM身份驗證期間使用的憑據? – 2010-11-03 06:11:01

+0

@Vineet雷諾茲yes..this是我想要的 – rgksugan 2010-11-03 06:25:49

回答

3

你在找什麼叫做Windows集成身份驗證。爲了能夠實現它,您的服務器需要支持針對Active Directory的身份驗證(使用Kerberos),並配置爲使用WWW-Authenticate:NTLM或Negotiate頭響應來自瀏覽器的未經身份驗證的請求。

我不能確切地告訴你如何做到這一點,而不知道你使用的服務器平臺。不過,假設你的平臺支持JAAS,這裏有一個博客帖子,讓關於配置的一些基礎知識 - http://webmoli.com/2009/08/29/single-sign-on-in-java-platform/

1

NTLM憑據可被傳遞到既支持SPNEGO(Kerberos的)或NTLM身份驗證(這兩者構成了Windows本地認證服務器)。不幸的是,並不是很多這樣的服務器默認支持這種服務。 Microsoft IIS就是支持您所需的身份驗證模式的服務器之一。

據我所知,在Java Web應用程序中實現這一點,將需要您在應用程序服務器上驗證對WNA的支持。例如,WebLogic Server在某種程度上確實支持這一點,但需要Microsoft IIS Web服務器來支持它。

單點登錄解決方案也可能支持針對Microsoft Active Directory的憑證驗證,但無縫集成的性質因產品而異。

此外,使用的瀏覽器也很重要。 WNA可用於IE 5以及Firefox的某些版本。 It appears to be available in Google Chrome since version 5。 NTLM身份驗證最初也是在Opera 9中引入的。

+0

Chrome還支持NTLM/SPNEGO(雖然他們確實有一個小錯誤)。我相信Opera也支持它。事實上,在主流瀏覽器中,我認爲只有Safari不支持它。 – 2010-11-03 06:45:35

+0

@Franci Penov,謝謝。我已經更新了答案。 Safari確實支持NTLM身份驗證,但我相信在使用SPNEGO而不是NTLM時,它是有問題的。 – 2010-11-03 07:00:20

0

使用簡單的ftpclient(apache提供一個)來複制文件。它會提供更好的性能

5

您可以試用華夫餅Waffle單點登錄。
您可以使用華夫餅實現自動驗證。我用它作爲intranet webapp項目。爲了從活動目錄獲得更多信息,您可以使用COM4J COM4J

5

您可以使用waffle和COM4J來解決此問題。事情你需要記住的是華夫餅乾只適用於Windows憑據。您可以使用waffle api在您的UI端代碼中進行自動登錄。如果你想在java端編寫自動登錄的代碼,COM4J api很有用。

4

SSO(單點登錄)可用於使用系統憑證進行自動登錄。華夫餅用於在活動目錄上執行SSO。它在本地機器和活動目錄之間進行協商。但是,一旦用戶通過認證,所有參數都不能使用Waffle檢索。可以使用Com4j