访问kerberos认证华为的kafka集群

背景说明
公司使用华为提供的大数据集群管理公司数据
集群的组件使用了kerberos认证,现在想使用程序和setreamsets访问集群kafka需要通过认证
集群kafka加入了华为自己的安全相关的东西,要访问kafka,必须要用华为提供的客户端包!
华为为外部访问的组件和程序提供认证所需的东西: keytab,krb5.conf,principal

注意:在集群外访问华为集群,除了打通网络,还要开启认证相关的端口
查看krb5.conf,找到每个认证域下的 kdc = xxx,这个xxx后面的端口是UDP端口,需要将UDP端口开启!

java代码认证

华为官方提供了代码认证的实例,可以按照这个来,示例代码地址: https://github.com/huaweicloud/huaweicloud-mrs-example
也可以根据通用的认证模式来写测试代码,只要kafka客户端使用华为提供的就行
示例代码:

public class App {
   
     
  
    private static final Logger logger = LoggerFactory.getLogger(App.class);  
  
    public static void setBootstrapServer(Properties props) {
   
     
        props.put("bootstrap.servers", "k1:9092,k2:9092,k3:9092");        
    }  
  
    public static void main(String[] args) {
   
     
        // 认证相关配置文件指定  
        setSystemProperty();  
  
        Properties props = new Properties();  
        setBootstrapServer(props); // kafka地址配置  
        setCommonKafkaProps(props); // kafka通用配置  
        securityAuth(props); // 认证相关配置  
  
        System.out.println("begin send message to kafka!");  
        Producer<String, String> producer;  
        try {
   
     
           producer  = new KafkaProducer<>(props)
在 Node-RED 中使用 `node-red-contrib-rdkafka` 连接华为 MRS 集群并配置 Kerberos 认证Kafka 客户端,涉及多个关键步骤,包括 Kerberos 环境准备、Node-RED 插件配置以及 Kafka 客户端连接参数设置。 ### 配置 Kerberos 环境 在使用 `node-red-contrib-rdkafka` 前,需确保操作系统中已正确配置 Kerberos 客户端,并能够获取有效的 Kerberos 票据。配置文件通常位于 `/etc/krb5.conf` 或 Windows 系统中的 `krb5.ini`,需根据华为 MRS 集群Kerberos 配置信息进行相应修改。配置内容应包含 KDC 地址、Realm 名称、默认域等信息。 在 Linux 系统下,可使用以下命令获取 Kerberos 票据: ```bash kinit <principal-name> ``` 验证票据是否成功获取,可使用命令: ```bash klist ``` 若输出中包含有效的票据信息,则表示 Kerberos 认证环境已准备就绪[^1]。 ### 安装并配置 `node-red-contrib-rdkafka` 在 Node-RED 中安装 `node-red-contrib-rdkafka` 插件,可通过节点管理界面搜索并安装: ``` 菜单 -> 节点管理 -> 控制板 -> 安装 node-red-contrib-rdkafka ``` 安装完成后,在 Node-RED 的工作区中拖拽 Kafka 节点并进行配置。配置内容包括: - **Broker 地址**:填写华为 MRS Kafka 集群的地址,如 `broker1:9092`。 - **SASL 机制**:选择 `GSSAPI`,以启用 Kerberos 认证。 - **Kerberos 配置路径**:指定 `krb5.conf` 或 `krb5.ini` 文件路径。 - **Principal**:填写用于认证Kerberos 主体名称。 - **Keytab 文件路径**:如使用 keytab 文件进行认证,需指定其路径。 ### Kafka 客户端连接配置 在 Node-RED 的 Kafka 节点配置中,需确保以下参数正确设置: ```json { "bootstrap.servers": "mrs-kafka-broker1:9092,mrs-kafka-broker2:9092", "security.protocol": "SASL_PLAINTEXT", "sasl.mechanism": "GSSAPI", "sasl.kerberos.service.name": "kafka", "sasl.kerberos.keytab": "/path/to/client.keytab", "sasl.kerberos.principal": "client-principal@REALM" } ``` 上述配置启用 `librdkafka` 底层库进行 Kerberos 认证,并通过 GSSAPI 协议与 Kafka 集群建立安全连接。如果配置无误,客户端将能够成功连接至华为 MRS Kafka 集群并开始生产或消费消息。 ### 调试与日志验证 为确保 `node-red-contrib-rdkafka` 成功获取 Kerberos 票据并完成认证流程,可在 Node-RED 的日志输出中查看相关连接状态和错误信息。若连接失败,日志中通常会包含详细的认证错误信息,例如票据过期、Principal 不匹配、KDC 无法访问等。 此外,可在 Node-RED 的 Kafka 节点后添加调试节点,实时查看消息的生产和消费状态,以验证连接是否正常工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值