【问题标题】:Define a Kerberos principal name for Schema Registry为 Schema Registry 定义 Kerberos 主体名称
【发布时间】:2022-01-20 04:04:25
【问题描述】:
我已经为我的 Kafka 代理激活了 SASL。 Schema Registry 需要经过身份验证才能连接到 Kafka。 Here 它说 “如果启用 Kafka 授权,则必须授予 Schema Registry 服务主体对指定资源执行以下操作的能力:” 如何定义主体?
There is 一个配置kafkastore.sasl.kerberos.service.name 但我不知道如何使用它。看起来它只需要一个角色或其他东西,而不是用户名密码对。
【问题讨论】:
标签:
apache-kafka
kerberos
confluent-schema-registry
【解决方案1】:
SASL 只是一个身份验证系统,它支持多种语言,包括 kerberos。 kafkastore.sasl.kerberos.service.name 只是一个名字......通常是“kafka”。 (并且应该与您的 Jaas 配置相匹配,如下所述)
Kerberos 使用原则和 Keytab 进行身份验证。 Kafka 通常使用 JAAS 来管理其 Kerberos 需求。 Here's a typical jaas kerberos 代理的文件:
KafkaServer {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/kafka.service.keytab"
storeKey=true
useTicketCache=false
serviceName="kafka"
principal="kafka/c6401.ambari.apache.org@EXAMPLE.COM";
};
您需要principle 和keytab。您的 kerberos 管理员应该创建 principle 和 produce a keytab。由于这些超出了这个问题的范围,因此我将它们作为链接进行探索。