我正在尝试使用凭据来保护我的zookeeper。
到目前为止,我已经使用以下代码连接到zookeeper:
zk = KazooClient(hosts=HOSTS)
zk.start()
现在,为了添加凭据,我添加了一个带addauth digest username:password
命令的auth,并使用setAcl /znode auth:username:password:crdwa
将ACL设置为znode。
现在当我尝试通过zkCli连接到zookeeper服务器时,我得到了
kazoo.exceptions.NoAuthError
除外。
但我如何将身份验证凭据传递给KazooClient
?
我可以使用
创建ACL凭据ACL = make_digest_acl("username", "password", all=True)
CRED = make_digest_acl_credential("username", "password")
并添加default_acl
,auth_data
,如
zk = KazooClient(hosts=HOSTS, default_acl=ACL, auth_data=[CRED])
但我仍然无法通过python连接。
我应该如何通过kazoo客户端验证zookeeper服务器?
谢谢
答案 0 :(得分:1)
auth_data
应作为摘要传递,例如:
KazooClient(hosts=HOSTS, auth_data=[("digest", "user:pass")])