我们有一个部署在Tomcat上的应用程序。该应用程序支持三种身份验证方法:Kerberos(通过SPNEGO),相互TLS(即客户端证书)以及用户名和密码。通过Kerberos或Mutual TLS进行身份验证时,应用程序将通过request.getUserPrincipal()获取经过身份验证的用户。当应用程序作为单个实例部署并且用户直接连接到它时,所有这些都可以正常工作。
我的问题是使它在负载均衡器后面工作的最佳实践是什么?我们希望此解决方案与所使用的负载均衡器类型无关,因为不同的客户可能希望使用不同的负载均衡器。是将负载均衡器配置为直通的最佳方法(让Tomcat实例执行TLS而不是在负载均衡器处终止负载均衡器),还是应该考虑另一种方法? Kerberos委托在这里有用吗?