zookeeper开启SASL权限认证

目录

一、SASL介绍

二、使用 SASL 进行身份验证

2.1 服务器到服务器的身份验证

2.2 客户端到服务器身份验证

三、验证功能


一、SASL介绍

默认情况下,ZooKeeper 不使用任何形式的身份验证并允许匿名连接。但是,它支持 Java 身份验证与授权服务(JAAS),可用于使用简单身份验证和安全层(SASL)设置身份验证。zookeeper 支持使用带有本地存储的凭证的 DIGEST-MD5 SASL 机制进行身份验证。

SASL是一种用来扩充C/S模式验证能力的机制认证机制, 全称Simple Authentication and Security Layer。

二、使用 SASL 进行身份验证

JAAS 使用单独的配置文件进行配置。建议将 JAAS 配置文件放在与 ZooKeeper 配置相同的目录中(/zookeeper/conf/)。如文件名是 jaas.conf。ZooKeeper 是集群部署时,必须在所有节点上创建 JAAS 配置文件。

SASL 身份验证是单独配置的,用于服务器对服务器通信( ZooKeeper 实例之间的通信)和客户端对服务器通信( 客户端和 ZooKeeper 之间的通信)。服务器对服务器身份验证仅与具有多个节点的 ZooKeeper 集群相关。

2.1 服务器到服务器的身份验证

对于服务器到服务器身份验证,JAAS 配置文件包含两个部分:

  • 服务器配置
  • 客户端配置

使用 DIGEST-MD5 SASL 机制时,QuorumServer 上下文用于配置身份验证服务器。它必须包含允许所有用户名,以便其以未加密的形式与其密码连接。第二个上下文 QuorumLearner 必须为内置在 ZooKeeper 中的客户端配置。它还包含未加密格式的密码。以下是 DIGEST-MD5 机制的 JAAS 配置文件示例:

QuorumServer {
       org.apache.zookeeper.server.auth.DigestLoginModule required
       user_zookeeper="123456";
};

QuorumLearner {
       org.apache.zookeeper.server.auth.DigestLoginModule required
       username="zookeeper"
       password="123456";
};

除了 JAAS 配置文件外,还必须通过指定以下选项在 ZooKeeper 的配置文件中启用服务器到服务器身份验证:

quorum.auth.enableSasl=true
quorum.auth.learnerRequireSasl=true
quorum.auth.serverRequireSasl=true
quorum.auth.learner.loginContext=QuorumLearner
quorum.auth.server.loginContext=QuorumServer
quorum.cnxn.threads.size=20

# 客户端到服务器身份验证
requireClientAuthScheme=sasl
# authProvider.myId=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
# authProvider.2=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
# authProvider.3=org.apache.zookeeper.server.auth.SASLAuthenticationProvider

然后,通过系统环境变量设置jaas.conf的路径

"-Djava.security.auth.login.config=/opt/kafka/config/jaas.conf"

2.2 客户端到服务器身份验证

客户端到服务器身份验证在与服务器到服务器身份验证相同的 JAAS 文件中配置。

将服务器上下文添加到 JAAS 配置文件,以配置客户端到服务器的身份验证。对于 DIGEST-MD5 机制,它会配置所有用户名和密码:

QuorumServer {
	org.apache.zookeeper.server.auth.DigestLoginModule required
	user_zookeeper="123456";
};

QuorumLearner {
	org.apache.zookeeper.server.auth.DigestLoginModule required
	username="zookeeper"
	password="123456";
};

Server {
	org.apache.zookeeper.server.auth.DigestLoginModule required
	user_test="123456";
};

Client {
	org.apache.zookeeper.server.auth.DigestLoginModule required
	username="test"
	password="123456";
};

同时,zookeeper的配置文件中需要添加如下配置:

# 客户端连接是否必须进行SASL认证
sessionRequireClientSASLAuth=true

三、验证功能

1、启动zk集群,zk集群可通过sasl认证并正常选举

2、编写客户端demo

System.setProperty("java.security.auth.login.config", "E:\\study\\apache-zookeeper-3.8.4-bin\\conf\\jaas.conf");
        System.out.println("********************** start zk ********************** ");
        CountDownLatch countDownLatch = new CountDownLatch(1);
        ZooKeeperAdmin zooKeeper = new ZooKeeperAdmin("127.0.0.1:2181", 5000, event -> {
            System.out.println("触发了事件:" + event.getState());
            countDownLatch.countDown();
        });

        Stat existsName = zooKeeper.exists("/age", watchedEvent -> System.out.println("--" + watchedEvent.getState()));
        if (existsName == null) {
            zooKeeper.create("/age", "18".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        } else {
            byte[] data = zooKeeper.getData("/name", false, null);
            System.out.println("--->" + new String(data));
        }

        String srvr = FourLetterWordMain.send4LetterWord("127.0.0.1", 2181, "srvr", false);
        System.out.println(srvr);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/869982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

单元测试的最佳实践

整体架构 合适的架构可以提升可测试性。比如菱形对称架构的模块化和解耦特性使得系统各个部分可以独立进行单元测试。这不仅提高了测试的效率,还能够减少测试的依赖性,提高测试准确性。 代码设计 代码设计和可测试性有密切关联。强烈建议一个方法的代码行…

使用法国云手机进行面向法国的社媒营销

在当今数字化和全球化的时代,社交媒体已经成为企业营销和拓展市场的重要工具。对于想进入法国市场的企业来说,如何在海外社媒营销中脱颖而出、抓住更多的市场份额,成为了一个关键问题。法国云手机正为企业提供全新的营销工具,助力…

Flink源码学习资料

Flink系列文档脑图 由于源码分析系列文档较多,本人绘制了Flink文档脑图。和下面的文档目录对应。各位读者可以选择自己感兴趣的模块阅读并参与讨论。 此脑图不定期更新中…… 文章目录 以下是本人Flink 源码分析系列文档目录,欢迎大家查阅和参与讨论。…

iPhone 17系列取消17 Plus版本?新一代苹果手机迎来新变革

随着科技的飞速发展,苹果公司再次准备刷新我们的期待,即将推出的iPhone 17系列携带着一系列令人兴奋的升级。今年,苹果打破了常规,将四款新机型带入市场——iPhone 17、17 Pro、17 Pro Max,以及一款全新的成员&#xf…

站在资本投资领域如何看待分布式光纤传感行业?

近年来,资本投资领域对于分布式光纤传感行业并不十分敏感。这主要是由于分布式光纤传感技术是一个专业且小众的领域,其生命周期相对较长,缺乏爆发性,与消费品或商业模式创新产业有所不同。此外,国内的投资环境也是影响…

服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境,然后再集成到Jenkins中实现自动化的代码审查工作。 Docker 首先Dokcer的源大部分现在都用不了,于是我上网查询,终于找到了一个可用的镜像。 编辑/etc/docker/daemon.json文件&#x…

医院存储文件采集至关重要,如何可靠安全进行?

医院的存储文件是医院日常运营中不可或缺的一部分,它包括了许多重要的文件类型: 病历档案:包括患者的门诊病历、住院病历、手术记录、护理记录等,是患者医疗过程的重要记录。 文书档案:医院在各项医疗业务活动、职能…

2023河南萌新联赛第(二)场 南阳理工学院

A. 国际旅行Ⅰ 题目&#xff1a; 思路&#xff1a; 因为题意上每个国家可以相互到达&#xff0c;所以只需要排序&#xff0c;输出第k小的值就可以了。 AC代码&#xff1a; #include<bits/stdc.h> #define int long long #define IOS ios::sync_with_stdio(0);cin.tie…

第一批进军AI的大学生,真的赚到钱了吗?

越来越多看到风口的大学生投身AI领域创业&#xff0c;这在ChatGPT&#xff08;美国人工智能公司OpenAI的大语言模型&#xff09;掀起新一轮人工智能浪潮后更加明显。 导读 壹 || 学生所处的学校环境和技术的结合更为紧密&#xff0c;因此学生可以利用这个信息差&#xff0c;用…

ZYNQ 入门笔记(零):概述

文章目录 引言产品线Zynq™ 7000 SoCZynq UltraScale™ MPSoCZynq UltraScale RFSoCVersal™ Adaptive SoC 开发环境 引言 Xilinx FPGA 产品线从经济型的 Spartan、Artix 系列到高性能的 Kintex、Virtex、Versal 系列&#xff0c;可以说涵盖了 FPGA 的绝大部分应用场景&#x…

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似&#xff0c;只是需要加上图片的url&#xff0c;并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站&#xff08;彼岸壁纸https://pic.netbian.com&#xff09;进行爬取。 具体步骤如下&#xff1a; …

使用阿里云云主机通过nginx搭建文件服务器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4ee96f38312e4771938e40f463987…

1 go语言环境的搭建

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;由浅入深讲解Go语言&#xff0c;希望大家都能够从中有所收获&#xff0c;也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;大家一起学习&#xff0c;…

【C语言】栈的实现(数据结构)

前言&#xff1a; 还是举一个生活中的例子&#xff0c;大家都玩过积木&#xff0c;当我们把积木叠起来的时候&#xff0c;如果要拿到最底部的积木&#xff0c;我们必须从顶端一个一个打出&#xff0c;最后才能拿到底部的积木&#xff0c;也就是后进先出&#xff08;先进后出&a…

项目的小结

1.实现实时聊天 1.服务端建立一个ConcurrentHashMap<> 用来存储在线用户&#xff0c;用户账号和socket然后&#xff0c;如果有个人发了信息&#xff0c;就去数据库中查询&#xff0c;然后根据这个在线用户进行传递信息 服务端框架&#xff1a; public class ServerMain {…

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架4.4 信息加解密技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.3 信息安全系统的组成框架 4.3 信息安全系统的组成框架4.3.1 技术体系4.3.1.1 基础安全设备4.3.1.2 计算机网络安全4.3.1.3 操作系统安全4.3.1.4 数据库安全4.3.1.5 终端安全设备4.3.2 组织机构体系4.3.3 管理体系4.4 信息加…

Ubuntu 22.04.4 LTS (linux) Tomcat 项目部署

1 war包直接放在tomcat webapps 下面 2 修改server.xml &#xff0c;改成自定义目录 sudo vim /data/tomcat/conf/server.xml <Host name"localhost" appBase"webapps" --> <Host name"localhost" appBase"" <Conte…

今日分享丨用双钻模型设计中后台产品

随着C端市场的快速进化&#xff0c;用户的审美标准与产品体验认知均达到了前所未有的高度&#xff0c;这一转变深刻影响了用户对B端产品的期待。在面对B端产品时&#xff0c;用户不自觉地以C端产品的优质体验为参照&#xff0c;希望产品不仅能高效完成工作任务&#xff0c;同时…

收藏:高性价比https证书

在当今的数字化世界中&#xff0c;网络安全已经成为了每个网站所有者的首要关注点&#xff0c;为了保护网站的安全&#xff0c;防止数据被窃取或篡改&#xff0c;使用SSL证书已经成为了一种标准的做法&#xff0c;SSL证书是一种用于加密网站和用户之间数据传输的证书&#xff0…