我正在尝试在我们的系统中实现反向代理,用于微服务架构。
代理服务器是使用SSL终止工作的HAProxy,需要代理Https和Kerberos身份验证的后端服务器请求。 我成功地在代理服务器上终止了SSL并将请求传递到Https服务器(我需要终止以便根据请求正文将请求路由到特定的后端服务),但无法在后端服务器上进行Kerberos身份验证。
是否有可能在代理服务器上实现Kerberos身份验证,然后将TGT传递给不同的后端服务?
我正在尝试在我们的系统中实现反向代理,用于微服务架构。
代理服务器是使用SSL终止工作的HAProxy,需要代理Https和Kerberos身份验证的后端服务器请求。 我成功地在代理服务器上终止了SSL并将请求传递到Https服务器(我需要终止以便根据请求正文将请求路由到特定的后端服务),但无法在后端服务器上进行Kerberos身份验证。
是否有可能在代理服务器上实现Kerberos身份验证,然后将TGT传递给不同的后端服务?
我已经成功完成了这个任务,但是需要付出一些努力。
当时我使用的是HDP,所以我使用ambari在HAproxy节点上设置了一个hive服务器。(这样做仅仅是为了让Ambari管理kerberos principle。hive服务器本身从未运行过)
然后,我将代理上的hive服务器的keytab与我的Hive服务器keytab合并,以便principle可以在hive服务器上使用。我认为我还允许它作为一个principle来与hive一起工作。我相信还有另一种方法可以使用委派,但这是最少阻力的路径,使得hive主要管理keytab。当keytab重新生成时,我确实不得不重新合并keytab,但这并不像手动管理keytab那么糟糕。