Kafka Broker-KDC-Kafka客户端和Kerberos身份验证

时间:2020-09-03 12:59:26

标签: apache-kafka kerberos

我试图从kafka经纪人的角度了解kerberos身份验证和票证验证的复杂性。我将总结这些步骤。

  1. Kafka客户端通过KDC服务器进行身份验证。
  2. Kafka客户获得票证。
  3. Kafka客户端将消息发布到代理。
  4. Kafka经纪人对客户进行身份验证

我的问题是,kafka经纪人会验证kafka客户发送的票证吗?经纪人方面到底发生了什么? kafka经纪人如何知道kafka客户已发送有效的未过期票证?

问候 帕万(Pavan)

1 个答案:

答案 0 :(得分:0)

该问题并非特定于Kafka,而是与通用Kerberos身份验证有关。

这里会发生什么?

  1. Kafka经纪人在其配置中拥有一个服务帐户(密钥表或用户名密码)。
  2. 为此服务帐户分配了一个SPN(服务主体名称)。例如HTTP / BROKER_FQDN.COM
  3. 客户请求获取经纪人SPN的票证。 KDC知道此SPN附加到哪个用户。 KDC生成票证并使用经纪人的服务帐户密码对其进行加密,然后将此票证发送给客户端
  4. 客户将此票证传递给经纪人。
  5. 经纪人知道票证是使用其自己的密码加密的,经纪人在keytab或直接密码(基于配置)中都具有此密码。
  6. 如果经纪人成功解密了票证,则委托人对经纪人可用,并且据说客户端已通过身份验证。票证解密后会进行票证验证等。

这是基本的Kerberos功能。
您还可以检查可用于特定用例的Kerberos的委派或模拟功能。