2010-07-13 87 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