我有一个Java服务器和客户端应用程序。这些应用程序正在Windows计算机上运行。使用kerberos身份验证的服务器上的客户端登录。它是使用jgssapi实现的。
首先,客户端从系统检索存储的缓存tgt票证,以从kdc生成令牌。 问题是-在Windows中锁定用户会话(锁定屏幕或更改用户)后,系统中没有缓存的tgt票证(由C:\ Windows \ System32 \ klist.exe检查)。 据我了解,我可以通过注销/登录计算机上的用户来获取它们。
这个问题发生在我的客户机器上。锁定后,缓存票证的列表为空。
在我的办公室(带有Windows 7的客户端,Win Server 2008上的活动目录服务器)上未进行复制。锁定后,我始终在计算机上有新的已再生tgt票证(锁定前未工作,但在解锁后再次生成)。没有为此行为设置特殊的GPO(有关使用来自先前用户会话Kerboros cached ticket deleted after using Windows lock screen的缓存票证的问题)。
所以我不明白为什么系统在解锁后不重新生成缓存的tgt?怎么做?
我在这里https://social.technet.microsoft.com/Forums/ie/en-US/be5ebc3b-d915-4acb-a9ae-67c61ee03b97/service-tickets-kerberos-purged-on-ctrlaltdel?forum=winserverDS&prof=required找到了类似的问题 答案之一是 “首先请查看klist的功能,然后锁定和解锁屏幕。如果您有连接DC的connectino,您将获得本地主机以及KDC和TGT的服务票,如果您没有,连接将一无所有。”
与AD的连接成功。我可以Ping它。我可以使用AD-explorer获得连接信息。还是与DC的连接不同?
谢谢。
答案 0 :(得分:1)
JGSS和SSPI不能一起玩。您要么只使用JGSS,然后通过JNA开始使用SSPI。