如果存在客户端证书,Kafka 将忽略 SASL 凭据

Kafka Ignoring SASL credentials if client certificate is present

我正在尝试了解它是否在 Kafka 客户端和代理之间使用客户端证书 (mTLS) 以及使用 SASL。我的目标是在存在客户端证书时忽略 SASL 凭据,而在其他情况下使用 SASL(如果客户端证书不存在)。我可以看到 https://cwiki.apache.org/confluence/display/KAFKA/KIP-684+-+Support+mutual+TLS+authentication+on+SASL_SSL+listeners 允许两者的组合,但据我了解,它提到即使存在客户端证书也始终使用 SASL。

谢谢。

首先,KIP-684 仅从 2.8.0 开始实施,AFAIK SASL 用户优先于 mTLS。一旦在侦听器上启用 SASL 身份验证,就不能将其设为可选。

因此,我建议您在 2 个不同的 TCP 端口上设置 2 个侦听器。比方说:

  • 用于 SASL_SSL 的端口 9092,具有简单 TLS 的 SASL -> 用于使用 SASL 进行身份验证的应用程序
  • 用于 mTLS 的端口 9093,不带 SASL 的 2 向 TLS -> 用于使用客户端 TLS 证书进行身份验证的应用程序。