是否可以使用凭证(甚至是用户在登录Windows时输入的令牌,比如XP).我在这里搜索的不是应用单点登录(需要再次登录),但单点登录将是MS Windows登录窗口的登录.
这可能吗?我理解Windows中的安全性也很重要,但是有没有办法获得令牌并在其他一些身份验证机制中使用它?
注意:首先,只有登录将是Microsoft Windows登录窗口,然后用户将能够使用缓存的凭据访问我的应用程序(但没有重新登录).
如果您的计算机是域的成员,则可以执行此操作。谷歌GSSAPI。并使用此字符串进行登录模块配置:
com.sun.security.auth.module.Krb5LoginModule required debug=true useTicketCache=true doNotPrompt=true;
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于 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
Run Code Online (Sandbox Code Playgroud)
allowtgtsessionkeyREG_DWORD0x01 以下是 Windows XP SP2 上注册表设置的位置:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\
Run Code Online (Sandbox Code Playgroud)
allowtgtsessionkeyREG_DWORD0x01