Zookeeper——ACL授权机制、四字命令

ACL授权机制

ACL主要是用来对zoolkeeper的某些节点进行加密授权作用
主要涉及到三个命令
getAcl
获取指定节点的ACL信息
setAcl
设置指定节点的ACL信息
addauth
给当前会话增加username1密码为password1的权限

这里主要结合setAcl和addauth介绍一下如何对指定节点进行加密授权访问

通过getAcl命令获取节点加密信息

[zk: localhost:2181(CONNECTED) 1] getAcl /aaaa
'world,'anyone
: cdrwa

由返回信息可知Acl信息主要由三个部分组成,scheme(授权的策略),id(用户),Permissions(权限范围,增删改查等。。。)

授权策略 主要有以下几种
1.IP方式:
通过IP地址粒度进行权限控制模式
2.digest:
digest是最常用的权限控制模式,采用username:password形式进行权限管理,ZK会对形成的权限标识先后进行两次加密处理,分别是SHA-1加密算法和Base64编码
3.world:
world是一种最开放的控制模式,任何人都可以访问
4:auth:
不适用任何id,代表任何已认证的用户,用username:password登录,明文

**ID设置:**主要和scheme有关,当scheme:ip时,id的值是限制登录的客户端IP,其他同理,如scheme=world,id:anyone

Permissions:
read,write,create,detele,admin
读,写,创建,删除,管理(是否有给子节点设置权限的权限)
在这里插入图片描述
下面进行实践

1、设置auth明文认证方式

 #增加一个认证用户user1,密码为12345
[zk: localhost:2181(CONNECTED) 7] addauth digest user1:123456   

#设置节点为auth模式,用户user1可访问,权限为crwa
[zk: localhost:2181(CONNECTED) 8] setAcl /testauth/auth auth:user1:123456:crwa

#查看节点权限
[zk: localhost:2181(CONNECTED) 10] getAcl /testauth/auth
'digest,'zookeeper:4lvlzsipXVaEhXMd+2qMrLc0at8=
: crwa

#退出后再访问,抛出异常,需要认证
[zk: localhost:2181(CONNECTED) 1] get /testauth/auth
org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /testauth/auth

#设置当前权限为用户为zookeeper密码为zookeeper的权限
[zk: localhost:2181(CONNECTED) 5] addauth digest user1:123456  

#返回值
[zk: localhost:2181(CONNECTED) 6] get /testauth/auth
value2

2、设置digest密文认证方式
密文登录和明文大同小异,区别在于设置时使用密文设置用户密码,密文可通过java类DigestAuthenticationProvider在idea运行得到
在这里插入图片描述

Zookeeper的四字命令

与eho和nc组合的命令
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41700030/article/details/105198387
今日推荐