我们有一个遗留的客户端-服务器应用程序,客户端用 C++ 编写,服务器用 Java 编写(都在 Windows 上运行),使用 CORBA 进行通信。请注意,服务器上的 Java 应用程序不使用 TomCat 或其他应用程序服务器。
为了启用客户端的 Active Directory 身份验证,我使用服务器上的Waffle库和客户端上的 Windows API 来执行协商SSPI 交换循环,如本文所述:在客户端-服务器应用程序中使用 Active Directory 验证用户
SSPI Exchange 循环的 MSDN 示例在客户端和服务器之间有多个发送-接收调用(可能也考虑了 NTLM 身份验证),但我已经能够通过向服务器发送一次身份验证令牌来成功验证客户端。
如果我们的服务器在 Windows Server 2003 及更高版本上运行,而我们的客户端在 Windows XP 及更高版本上运行,我是否可以假设将使用 Kerberos 并且不需要多次发送-接收调用?
如果我要在 Tomcat 上使用 Java+waffle 进行身份验证,我注意到身份验证令牌只发送一次。