使用凭据通过 kazoo lib 连接到 Zookeeper

connect to Zookeeper via kazoo lib with credentials

我正在尝试使用凭据保护我的动物园管理员。

到目前为止,我使用以下代码连接到 zookeeper:

zk = KazooClient(hosts=HOSTS)
zk.start()

现在,为了添加凭据,我使用 addauth digest username:password 命令添加了一个身份验证,并使用 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 服务器?

谢谢

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

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