[zookeeper] SASL(Simple Authentication and Security Layer) 用户名密码认证配置

这篇具有很好参考价值的文章主要介绍了[zookeeper] SASL(Simple Authentication and Security Layer) 用户名密码认证配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

         使用zookeeper zkCli.sh 连接 zookeeper服务时,默认裸连,晓得ip与端口之后即可连接zookeeper服务,本文使用SASL 用户名密码配置服务端与客户端,在zkCli连接前,服务端配置xxxjaas.conf保存用户名密码,客户端(也就是zkCli或者各种语言的sdk)连接时同样也需要xxxjaas.conf文件来进行认证

JAAS文件格式以及读取时注意事项

原文连接

文章使用zookeeper官方网站下载的服务包 apache-zookeeper-3.6.4-bin

(巨坑!!!)注意Server 尖括号,尖括号的上一行的末尾要加分号  ;

(巨坑!!!)注意Server 尖括号,尖括号的上一行的末尾要加分号  ;

(巨坑!!!)注意Server 尖括号,尖括号的上一行的末尾要加分号  ;

zookeeper设置用户名密码,运维,java,zookeeper,linux

         (文章使用zookeeper官网下载的包)zookeeper服务端和客户端,分别在在zookeeper的conf/ 目录下添加xxxjaas.conf (注意要以.conf结尾,文件名应该没有要求)

        zookeeper设置用户名密码,运维,java,zookeeper,linux

 zookeeper设置用户名密码,运维,java,zookeeper,linux

 这里在 服务端和客户端的 conf目录下分别建立了 java.env zookeeper-env.sh

zkServer.sh启动时会执行一下 zkEnv.sh, 在zkEnv.sh 执行时会判断一下java.env zookeeper-env.sh 是否存在,这两个脚本谁存在就执行一下,因此这俩脚本可以做zookeeper 服务或者客户端启动前的变量配置,样例如下

        服务端 /conf 下 vim 创建 zookeeper-env.sh 文件

        zookeeper设置用户名密码,运维,java,zookeeper,linux

         客户端 /conf 下创建 zookeeper-env.sh 文件

        zookeeper设置用户名密码,运维,java,zookeeper,linux

记得创建完 java.env 或者 zookeeper-env.sh后 使用chmod a+x 赋予这俩脚本的可执行权限,不然zookeeper服务端或者客户端启动时是不会给你带上自定义参数的!!! 

windows端可以看下 zkServer.cmd 与 zkCli.cmd 脚本的内容,可以修改脚本设置环境参数,具体如何修改照着脚本内的语句写

=========================================================================

需要注意的参数

  •  maxClientCnxns=5
    • zookeeper设置用户名密码,运维,java,zookeeper,linux

             可以防止针对zookeeper的dos... 这个参数限制单个ip对zookeepeer服务的最大连接数,下面的服务配置为5,然后本地启动多个zkCli.sh 对zookeeper服务进行连接,第六个时则报错,服务端报错信息如下

        2023-07-12 00:32:39,683 [myid:x] - WARN  [NIOServerCxnFactory.AcceptThread:0.0.0.0/0.0.0.0:19010:RateLogger@56] - Message: Error accepting new connection: Too many connections from /xxx.xxx.xxx.xxx - max is 5

  • authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    • 可以指定多个认证 用法authProvider.<int>=xxx.xxx.xxAuthenticationProvider 也可以自己实现然后重新打zookeeper的jar包,不过zookeeper给的实现都够一般使用了
    • zookeeper设置用户名密码,运维,java,zookeeper,linux
  •  sessionRequireClientSASLAuth=true
    • 3.6.0(包括)新加的参数 指定客户端是否必须sasl认证成功后才能成功生成session
    • zookeeper设置用户名密码,运维,java,zookeeper,linux
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=30
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/zookeeper/zookeeper-dir
# dataLogDir : (No Java system property) This option will direct the machine to write the transaction log to the dataLogDir rather than the dataDir.
# This allows a dedicated log device to be used, and helps avoid competition between logging and snapshots.
# Note
# Having a dedicated log device has a large impact on throughput and stable latencies.
# It is highly recommended dedicating a log device and set dataLogDir to point to a directory on that device
# and then make sure to point dataDir to a directory not residing on that device.
# zookeeper 事务日志文件存储位置
dataLogDir=/opt/zookeeper/zookeeper-logs
# the port at which the clients will connect
# zookeeper 客户端暴露端口,默认2181
clientPort=19010
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
# 集群服务需要配置 server.<int>=<ip>:<zk服务port>:<选举专用port>
server.1=0.0.0.0:xxxx:xxxx
#server.2=x.x.x.x:xxxx:xxxx
#server.3=x.x.x.x:xxxx:xxxx

# zookeeper security
# 表明单个ip可以同时连接zookeeper服务的次数,这里配置为5
maxClientCnxns=5
#authProvider.1=org.apache.zookeeper.server.auth.DigestLoginModule
# 官方给的写法, authProvider.x=x.x.x.x.xxxAuthenticationProvider
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
# 3.6.0 版本新参数 SASL 认证成功才能与zookeeper服务建立会话,否则任何命令都无法发送到zookeeper
sessionRequireClientSASLAuth=true
# 在stackOverFlow上搜的,去掉了认证服务也正常
requireClientAuthScheme=sasl
# 根据文章推算,此处写法jaas默认重新登录时间为1小时
jaasLoginRenew=3600000

一切就绪

服务端启动后,使用 ps -aux | grep java 查看zookeeper启动的参数

zookeeper设置用户名密码,运维,java,zookeeper,linux

可以看到 -Djava.security.auth.login.config=,-Dzookeeper.requireClientAuthScheme=sasl 都加入到服务启动时了

客户端启动时

Client successfully logged in

zookeeper设置用户名密码,运维,java,zookeeper,linux

SASL config status: Will attempt to SASL-authenticate using Login Context section 'Client'

zookeeper设置用户名密码,运维,java,zookeeper,linux

 注意 客户端若启动后认证失败可写一个脚本来加入zookeeper客户端的环境变量,再执行连接zookeeper的命令

zookeeper设置用户名密码,运维,java,zookeeper,linux文章来源地址https://www.toymoban.com/news/detail-686657.html

到了这里,关于[zookeeper] SASL(Simple Authentication and Security Layer) 用户名密码认证配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • storm统计服务开启zookeeper、kafka 、Storm(sasl认证)

    部署storm统计服务开启zookeeper、kafka 、Storm(sasl认证) 当前测试验证结果: 单独配置zookeeper 支持acl 设置用户和密码,在storm不修改代码情况下和kafka支持 当kafka 开启ACL时,storm 和ccod模块不清楚配置用户和密码。 使用python脚本连接kafka用户和密码是能成功发送消息。 当前部署

    2024年01月22日
    浏览(50)
  • 实战:kafka、zookeeper SASL+ACL实现动态权限认证、授权

    1. 不接入外部存储,基于kafka原生ACL认证 环境: kafka-2.2.1、zookeeper-3.6.3 ​ kafka给我们提供了 SASL/SCRAM 模式,将SASL、ACL规则信息存储到zookeeper中,并且通过 KafkaClientAdmin Api,新增、编辑、删除规则,其特性如下 应用发送、消费实现动态身份认证和授权 基于kafka SASL/SCRAM 模式,

    2023年04月26日
    浏览(36)
  • 系列三、Spring Security中自定义用户名/密码

    1.1.1、配置文件中配置 1.1.2、定义基于内存的用户 1.1.3、基于UserDetailService接口定义用户 概述:         Spring Security支持多种数据源,例如内存、数据库、LDAP等,这些不同来源的数据被共同封装成了UserDetailService接口,换句话说任何实现了UserDetailService接口的对象都可以作为

    2024年01月19日
    浏览(32)
  • Apache zookeeper kafka 开启SASL安全认证 —— 筑梦之路

      Kafka是一个高吞吐量、分布式的发布-订阅消息系统。Kafka核心模块使用Scala语言开发,支持多语言(如Java、Python、Go等)客户端,它可以水平扩展和具有高吞吐量特性而被广泛使用,并与多类开源分布式处理系统进行集成使用。   Kafka作为一款开源的、轻量级的、分布式、可

    2024年02月11日
    浏览(31)
  • 使用 psycopg2 连接高斯数据库报错 failed: none of the server‘s SASL authentication mechanisms are supported解决方法

    使用 命令安装 安装 psycopg2 pip3 install psycopg2 编写python文件 test2.py,连接数据库。 import psycopg2 #创建连接对象 conn=psycopg2.connect(dbname=\\\"db_tpcc\\\",user=\\\"tpcc_user\\\",password=\\\"password\\\",host=\\\"10.201.65.207\\\",port=30100) cur=conn.cursor() #创建指针对象 #创建连接对象(SSl连接) #conn = psycopg2.connect(dbname=\\\"db

    2024年02月05日
    浏览(47)
  • 【SEED Labs 2.0】Transport Layer Security (TLS) Lab

    本文为 SEED Labs 2.0 - Transport Layer Security (TLS) Lab 的实验记录。 现在越来越多的数据传输是通过互联网完成的。然而,当数据通过这种不受保护的公共网络传输时,它们可以被其他人读取甚至篡改。密码算法有很多种,即使是同一种算法,也有很多参数可以使用。为了实现互操

    2024年02月11日
    浏览(40)
  • Apache zookeeper kafka 开启SASL安全认证_kafka开启认证(1)

    先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前! 因此收集整理了一份《2024年最新网络安全全套学习资料》

    2024年04月23日
    浏览(35)
  • 在提交文件到gitee远程仓库时报用户名密码错误 fatal: Authentication failed for ‘https://gitee.com/xxx/xxx.git 解决方案来啦 亲测有效

    在提交文件到gitee远程仓库时,突然出现一个弹框输入用户名 密码 很懵逼 输入了结果是错误的 D:文件名git push -u origin \\\"master\\\" remote: [session-fa417d86] Akiko: Incorrect username or password (access token) fatal: Authentication failed for \\\'https://gitee.com/xxx/文件名.git/\\\'      此刻如果再提交一遍 还是会

    2024年02月16日
    浏览(57)
  • 【zookeeper】问题解决 Authentication is not valid : /hbase/tokenauth

    最近在搭建Hbase 服务时,服务无法启动,于是决定将 hbase 服务删除,在当删除 zookeeper 的 /hbase 节点时报错,报 thentication is not valid : /hbase/tokenauth 。 看到网上大部分的文章都是使用跳过 ACL 或者 开启 super 模式 这两种方式,于是比较好奇有没有第三种解,这里整理并记录一下

    2024年02月14日
    浏览(45)
  • 论文笔记:A Simple and Effective Pruning Approach for Large Language Models

    iclr 2024 reviewer 评分 5668 大模型网络剪枝的paper 在努力保持性能的同时,舍弃网络权重的一个子集 现有方法 要么需要重新训练 这对于十亿级别的LLMs来说往往不现实 要么需要解决依赖于二阶信息的权重重建问题 这同样可能带来高昂的计算成本 ——引入了一种新颖、简单且有

    2024年04月17日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包