2010-07-13 81 views
8

是否可以使用憑據(或甚至是用戶在登錄Windows時輸入的令牌,可以說XP)。我在這裏搜索的是不應用單個登錄(需要重新登錄),但單點登錄將是MS Windows登錄窗口的登錄。將憑據Windows傳播到Java桌面應用程序

這可能嗎?我理解Windows中的安全性也很重要,但是沒有辦法獲得令牌並將其用於其他身份驗證機制?

注意:首先登錄的只是Microsoft Windows登錄窗口,然後用戶將能夠使用緩存的憑據訪問我的應用程序(但不需要重新登錄)。

回答

3

如果您的機器是域的成員,則可以這樣做。 Google for GSSAPI。並使用此字符串爲您登錄模塊配置:

com.sun.security.auth.module.Krb5LoginModule required debug=true useTicketCache=true doNotPrompt=true; 

注意,這僅適用於Sun的JVM,因爲據我所知,IBM的JVM不支持獲取從操作系統的票。

而且,這裏是更多的信息,供各位:http://msmvps.com/blogs/sp/archive/2007/06/05/integrating-java-jdbc-and-kerberos.aspx

而且,這對現代版本的Windows的工作,你必須調整你的註冊表設置:

  • 在Windows Server 2003和Windows 2000 SP4的,這裏是必需的註冊表設置:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters 
    
    • 價值南E:allowtgtsessionkey
    • 值類型:REG_DWORD
    • 值:0x01
  • 這裏是註冊表設置在Windows XP SP2中的位置:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\ 
    
    • 值名稱:allowtgtsessionkey
    • 值類型:REG_DWORD
    • 值:0x01
+0

非常感謝您的FOPR快速的答案。我會在早上嘗試第一件事。 (是的,我的機器是域的成員)。這是什麼一回事? http://java.sun.com/products/jndi/tutorial/ldap/security/gssapi.html 非常感謝! – theo 2010-07-13 20:28:47

+0

有誰知道這是否適用於Windows 7 Professional? – Yaroze 2013-01-17 10:34:27

+0

是的,它大部分時間都在使用。 – Vlad 2013-01-17 21:16:23

相關問題