通过带有凭据的kazoo lib连接到Zookeeper

时间:2018-02-01 13:05:01

标签: python apache-zookeeper kazoo

我正在尝试使用凭据来保护我的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_aclauth_data,如

zk = KazooClient(hosts=HOSTS, default_acl=ACL, auth_data=[CRED])

但我仍然无法通过python连接。

我应该如何通过kazoo客户端验证zookeeper服务器?

谢谢

1 个答案:

答案 0 :(得分:1)

auth_data应作为摘要传递,例如:

KazooClient(hosts=HOSTS, auth_data=[("digest", "user:pass")])