Windows将证书传播到Java桌面应用程序

是否有可能使用凭据(或者甚至是一个用户在loginWindows时input的令牌,可以说XP)。 我在这里search的是不应用一个单一的login(这需要再次login),但单点login将是MS窗口login窗口。

这可能吗? 我理解Windows中的安全性也是非常重要的,但没有办法获得令牌并将其用于某些其他身份validation机制?

注意:首先login的只是Microsoft Windowslogin窗口,然后用户将能够使用caching的凭据访问我的应用程序(但不需要重新login)。

如果你的机器是域的成员,你可以这样做。 Google for GSSAPI。 并使用此字符串进行登录模块配置:

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

请注意,这只适用于Sun的JVM,就我所知,IBM JVM不支持从OS获取票证。

此外,这里是更多的信息给你: 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 
    • 值名称: allowtgtsessionkey
    • 值类型: REG_DWORD
    • 值: 0x01
  • 以下是Windows XP SP2中注册表设置的位置:

     HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\ 
    • 值名称: allowtgtsessionkey
    • 值类型: REG_DWORD
    • 值: 0x01