我正在尝试将Hyperledger Fabric CA连接到Openldap。 Openldap在本地成立,只有一个组织
dc=fabric-ca,dc=example,dc=com
还有一个用户cn = admin,dc = ... /
我已经使用以下服务器配置设置了Fabric-CA:
ldap:
enabled: true
url: ldap://cn=admin,dc=fabric-ca,dc=example,dc=com:000000@☺localhost:389/dc=fabric-ca,dc=example,dc=com
userfilter: (dn:%s)
tls:
enabled: false
attribute:
names: ["dn"]
转换器和地图无关(到目前为止)。我检查过,管理员存在于OpenLDAP中。
当我启动以下注册命令时:
fabric-ca-client enroll -u http://cn=admin,dc=fabric-ca,dc=example,dc=com@localhost:7054
我收到以下错误:
20 - Authorization failure
CA调试日志向我提供了这些信息:
Received request for /enroll
ca.Config: "followed by the CA server config file"
Getting user 'cn=admin,dc=fabric-ca,dc=example,dc=com'
Searching for user 'cn=admin,dc=fabric-ca,dc=example,dc=com' using cached connection
127.0.0.1:45768 POST /enroll 401 23 "Failed to get user: User 'cn=admin,dc=fabric-ca,dc=example,dc=com' does not exist in LDAP directory"
请,这个问题真令人发指。感谢您的宝贵时间。
答案 0 :(得分:0)
在执行注册过程时,您应仅传递用户名,但应传递专有名称。除了应该发送密码外,您的注册命令应类似于:
fabric-ca-client enroll -u http://admin:mypassword@localhost:7054
除此之外,我认为userfilter应该看起来像这样:(cn=%s)
,因为您使用了cn
作为管理员前缀