java Kafka kerberos身份验证中的krb5.conf与krb5.keytab

rsl1atfo  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(515)

我们正在连接到一个使用Kerberos身份验证的Kafka服务器,据我所知,当使用Kerberos时,我们可以通过两种方式向客户端应用程序提供凭据:一种是以有效的Kerberos票证的形式存储在票证缓存中,另一种是以keytab文件的形式,应用程序可以使用它来获取Kerberos票证。
在这里,我有一个keytab文件。所以,我创建了一个JASS配置如下,并设置为kafkaConfig。

kerberosConfig = "com.ibm.security.auth.module.Krb5LoginModule required "
                + "useKeytab=\""
                + keytabPath
                + "\" credsType=both  principal=\""
                + principal + "\";";

kafkaConfig.setProperty("sasl.jaas.config", kerberosConfig );

现在,这里的问题是我刚刚使用这个JAAS配置和keytab进行Kafka连接,它工作正常,没有任何问题但是我发现我们还需要将krb5.confi传递给系统属性,以进行如下Kerberos身份验证

System.setProperty("java.security.krb5.conf", krb5.conf);

那么,有人能解释一下keytab和krb5.conf之间的区别吗?keytab文件本身是否足够,或者我是否需要将krb5.conf也传递给系统属性?或者krb5.conf本身是否足够?

kgqe7b3p

kgqe7b3p1#

第一个是仅针对Kafka客户端的特定配置。
第二个是JVM范围的属性,它被传递到您使用的任何需要Kerberos的库。

相关问题