0

我正在尝试将 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"

拜托了,这个问题很烦人。谢谢你的时间。

4

1 回答 1

0

在执行注册过程时,您应该只传递用户名,但您传递的是专有名称而不是那个。除了应发送密码外,您的注册命令应如下所示:

fabric-ca-client enroll -u http://admin:mypassword@localhost:7054

除此之外,我认为 userfilter 应该是这样的:(cn=%s)因为你用作cn管理员前缀

于 2018-08-27T21:44:38.970 回答