【问题标题】:How to make Kafka plain authentication more secure?如何使 Kafka 普通身份验证更安全?
【发布时间】:2018-06-25 01:07:03
【问题描述】:

我对 Kafka 身份验证的不同协议和机制感到困惑。

这里与这个问题类似:

Can Kafka be provided with custom LoginModule to support LDAP?

我制作了自己的 PlainLoginModule,它使用 LDAP 来验证客户端提供的用户名/密码。

有什么方法可以让我更安全吗?为身份验证发送明文密码似乎并不安全。如果可能,我也希望不在客户端 jaas 文件中使用明文密码。

如果我使用 SSL,我还能使用 LDAP 服务器进行身份验证吗? kafka 配置将如何变化。当前配置:

listeners=SASL_PLAINTEXT://:9092
advertised.listeners = SASL_PLAINTEXT://kafka:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN

【问题讨论】:

    标签: security authentication configuration ldap apache-kafka


    【解决方案1】:

    您有两种选择如何使其更安全:

    • 使用 SASL_SSL 侦听器将 SASL 身份验证封装到 SSL 加密中。您仍然可以通过自定义模块使用您的 LDAP。
    • 使用一种更安全的 SASL 机制。 PLAIN 机制将通过不安全的网络发送密码。您可以改为使用一种支持的 SCRAM 机制,该机制不会通过网络发送密码,而是使用更复杂的握手。 Kafka 支持 SCRAM-SHA-256 和 SCRAM-SHA-512。但是 SCRAM 机制不适用于 LDAP - 它们将凭据(而不是直接密码)存储在 Zookeeper 中。 SCRAM 机制当然也可以与 SSL 结合使用。

    【讨论】:

      【解决方案2】:

      是的,您可以使用 SASL_SSL 侦听器。这将使用 SASL 进行身份验证,然后加密使用 SSL 发送的数据。如果您想要更安全的身份验证,您应该考虑使用 GSSAPI SASL 机制。 ldap 和 Kerberos 集成是一种常见做法,这样您就不会暴露凭据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-27
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 2017-02-23
        • 2016-01-23
        • 2012-11-22
        相关资源
        最近更新 更多