跟踪kerberos用户

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

在带有kafka集群的kerberized设置中,我可以很容易地强制执行,对于topicx,用户a和b有权生成消息,而对于topicy,用户c有权生成消息。
在可追溯性方面,这保证了主题y上的所有消息都是由用户c生成的。但是,我也想知道主题x上的哪些消息是由用户a生成的,哪些消息是由用户b生成的。
是否有一个选项来标记每一条消息的用户产生它?有一句话也许是这样的,我不想在生产者方面这样做,但我想执行它的经纪人方面,所以我有一个绝对的保证,这个用户信息是存在的。
任何帮助都将不胜感激。

bnl4lu3b

bnl4lu3b1#

老实说,我认为目前没有办法做到这一点。我所知道的代理中仅有的两个可插入类是kafkaprincipalbuilder和authorizer,它们都有您要查找的主体,但没有访问实际记录的权限,无法在头字段或任何需要的地方添加主体。
即使我们从生产者的Angular 来看,这两个选项都是拦截器和序列化器类,您可以自定义它们,它们都可以访问记录,但不能访问用户主体。
如果你真的想强制执行这一点,恐怕你必须变得有点创造性,让他们在头字段或类似的地方用私钥签署每封邮件-在处理另一端的数据时,你可以丢弃任何不包含该字段的内容。
除此之外,我认为除了实际更改kafka本身以添加此信息之外,您没有什么可以做的—一般来说,handleproducerequest方法应该是一个很好的起点,在这里您拥有已授权的请求,还可以访问包含主体的请求会话。不过,这里的记录仅表示为bytebuffers,不确定此时是否可以轻松地使用头tbh。。

相关问题