【问题标题】:Kafka Broker - KDC - Kafka Client & Kerberos AuthenticationKafka Broker - KDC - Kafka 客户端和 Kerberos 身份验证
【发布时间】:2020-09-03 12:59:26
【问题描述】:

我试图从 kafka 代理的角度了解 kerberos 身份验证和票证验证的复杂性。我会总结一下步骤。

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

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

问候 帕万

【问题讨论】:

  • 注意:这不是一个特别的 Kafka 问题,因为任何 Kerberized 环境都会有类似的行为。另外,如果您真的想知道这部分是如何工作的,可以使用 Kafka 源代码。

标签: apache-kafka kerberos


【解决方案1】:

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

这里发生了什么?

  1. Kafka 代理将服务帐户(keytab 或用户名密码)作为其配置的一部分。
  2. 此服务帐户具有分配给它的 SPN(服务主体名称)。如HTTP/BROKER_FQDN.COM
  3. 客户端为代理的 SPN 请求票证。 KDC 知道此 SPN 附加到哪个用户。 KDC 生成票证并使用经纪人的服务帐户密码对其进行加密,并将此票证发送给客户端
  4. 客户端将此票证传递给代理。
  5. Broker 知道票据是使用自己的密码加密的,并且 Broker 有这个密码,可以是 keytab 也可以是直接密码(基于配置)。
  6. 如果代理成功解密票证,则代理可以使用主体,并且客户端被认为是经过身份验证的。票证验证等发生在票证解密后。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 2023-03-13
    • 1970-01-01
    • 2016-05-02
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多