具有服务名称的kerberos jaas

xmakbtuz  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(372)

我正在尝试设置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 ?

ix0qys7i

ix0qys7i1#

假设您使用的是activedirectory,则需要将用户主体名称zookeeperMap到服务主体名称

setspn -s zookeeper/localhost@TEST zookeeper

更多详情请点击此处
你还在用吗zookeeper@test 作为jaas文件中的负责人。

相关问题