我有一个托管在 IBM Websphere Liberty Core 上的 Kafka 生产者 Web 应用程序。远程 Kafka 主题通过 Kerberos 得到保护。
我们使用的是 IBM jdk,所以 jaas 类名是
com.ibm.security.auth.module.Krb5LoginModule
JAAS 配置需要以下选项
KafkaClient {
com.ibm.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/storm.service.keytab"
storeKey=true
useTicketCache=false
serviceName="kafka"
principal="storm@EXAMPLE.COM";
};
不幸的是 com.ibm.security.auth.module.Krb5LoginModule
类只接受这些选项
Kerberos options
principal=principalName
credsType=initiator|acceptor|both (default=initiator)
forwardable=true|false (default=false)
proxiable=true|false (default=false)
renewable=true|false (default=false)
useCcache=URL
useKeytab=URL
useDefaultCcache=true|false (default=false)
useDefaultKeytab=true|false (default=false)
JAAS-suggested options:
debug=true|false (default=unset, JGSS debug options used)
tryFirstPass=true|false (default=false)
useFirstPass=true|false (default=false)
moduleBanner=true|false (default=false)
如何使用 Liberty Core 上的 IBM JDK 将服务名称指定为“kafka”?
请您参考如下方法:
Kerberos 服务主体名称包括服务名称:
<serviceName>/<hostname>@KerberosRealmName
您是否尝试过将其指定为以下内容
principal="kafka/<hostname>@EXAMPLE.COM"