Hyperledger fabric Hyperledger结构ca连接到LDAP:管理员不存在

Hyperledger fabric Hyperledger结构ca连接到LDAP:管理员不存在,hyperledger-fabric,hyperledger,openldap,ca,hyperledger-fabric-ca,Hyperledger Fabric,Hyperledger,Openldap,Ca,Hyperledger Fabric Ca,我正在尝试将Hyperledger Fabric CA连接到Openldap。 Openldap是在本地建立的,只有一个组织 dc=fabric-ca,dc=example,dc=com 还有一个用户,cn=admin,dc=/ 我已使用以下服务器配置设置了结构CA: ldap: enabled: true url: ldap://cn=admin,dc=fabric-ca,dc=example,dc=com:000000@☺localhost:389/dc=fabric-ca,dc=exam

我正在尝试将Hyperledger Fabric CA连接到Openldap。 Openldap是在本地建立的,只有一个组织

dc=fabric-ca,dc=example,dc=com
还有一个用户,cn=admin,dc=/

我已使用以下服务器配置设置了结构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中,我检查过了

启动以下enroll命令时:

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"

求求你,这个问题令人愤怒。谢谢您的时间。

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

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

除此之外,我认为userfilter应该是这样的:
(cn=%s)
,因为当我们修改fabric-ca-server-config.yaml时,您使用了
cn
作为管理员前缀,将url更改为:
ldap://cn=admin,dc=织物ca,dc=示例,dc=com:000000@localhost:389/dc=com
错误消息更改为:
获取用户失败:LDAP搜索失败;搜索请求:&{BaseDN:dc=com作用域:2个解除限制:0大小限制:0时间限制:0类型唯一:false筛选器:(dn:dc=admin,dc=fabric ca,dc=example,dc=com)属性:[dn]控件:[]}:LDAP结果代码32“无此类对象”:“
这仍然是一个错误。您好@Aleksander,谢谢您的评论。它也不起作用。@Pmuller我更新了答案,您能更改您的用户筛选器以关联管理员前缀吗