文档首页/
MapReduce服务 MRS/
开发指南(普通版_3.x)/
Kafka开发指南(安全模式)/
准备Kafka应用开发环境/
配置Kafka应用安全认证/
使用Sasl Kerberos认证
更新时间:2024-10-23 GMT+08:00
使用Sasl Kerberos认证
在安全集群环境下,各个组件之间不能够简单地相互通信,而需要在通信之前进行相互认证,以确保通信的安全性。Kafka应用开发需要进行Kafka、ZooKeeper、Kerberos的安全认证,这些安全认证只需要生成一个jaas文件并设置相关环境变量即可。LoginUtil相关接口可以完成这些配置。
代码样例
此代码片段在com.huawei.bigdata.kafka.example.security包的LoginUtil类中。
/** * 用户自己申请的机机账号keytab文件名称 */ private static final String USER_KEYTAB_FILE = "用户自己申请的机机账号keytab文件名称,例如user.keytab"; /** * 用户自己申请的机机账号名称 */ private static final String USER_PRINCIPAL = "用户自己申请的机机账号名称"; public static void securityPrepare() throws IOException { String filePath = System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator; String krbFile = filePath + "krb5.conf"; String userKeyTableFile = filePath + USER_KEYTAB_FILE; //windows路径下分隔符替换 userKeyTableFile = userKeyTableFile.replace("\\", "\\\\"); krbFile = krbFile.replace("\\", "\\\\"); LoginUtil.setKrb5Config(krbFile); LoginUtil.setZookeeperServerPrincipal("zookeeper/hadoop.<系统域名>"); LoginUtil.setJaasFile(USER_PRINCIPAL, userKeyTableFile); }
用户可登录FusionInsight Manager,选择“系统 > 权限 > 域和互信”,查看“本端域”参数,即为当前系统域名。
父主题: 配置Kafka应用安全认证