具有服务名称的Kerberos JAAS



我正在尝试设置Zookeeper/Kafka Kerberos身份验证,但我的keytab是以一种有趣的方式创建的:

ktpass -princ zookeeper/hostname@TEST -mapuser zookeeper -mapOp add -Target TEST 

所以我可以做这个

kinit zookeeper@TEST

或者这个:

kinit zookeeper@TEST -S zookeeper/hostname@TEST

但我不能这样做:

kinit zookeeper/hostname@TEST
kinit: Client 'zookeeper/hostname@TEST' not found in Kerberos Database while getting initial credentials

所以这个JAAS文件可以工作:

Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/path/to/server/keytab"
storeKey=true
useTicketCache=false
principal="zookeeper@TEST";
};

但这个不会:

Server {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/path/to/server/keytab"
storeKey=true
useTicketCache=false
principal="zookeeper/hostname@TEST";
};

那么,我如何使用JAAS文件来实现这一点呢?我找不到具有多个主体的选项,也找不到像kinit这样指定服务名称的选项?

假设您使用的是Active Directory,则需要将用户主体名称zookeeper映射到服务主体名称

setspn -s zookeeper/localhost@TEST zookeeper

更多详情点击此处

你仍然使用zookeeper@TEST作为您JAAS文件中的主体。

相关内容

  • 没有找到相关文章

最新更新