Hyperledger Fabric-ca подключается к LDAP: администратор не существует

Я пытаюсь подключить ЦС Hyperledger Fabric к 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, я проверил.

Когда я запускаю следующую команду 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"

Пожалуйста, эта проблема бесит. Спасибо за ваше время.


person Pmuller    schedule 13.08.2018    source источник
comment
Когда мы модифицируем fabric-ca-server-config.yaml, изменив URL-адрес на: ldap://cn=admin,dc=fabric-ca,dc=example,dc=com:000000@localhost:389/dc=com, сообщение об ошибке изменится на: Failed to get user: LDAP search failure; search request: &{BaseDN:dc=com Scope:2 DerefAliases:0 SizeLimit:0 TimeLimit:0 TypesOnly:false Filter:(dn:dc=admin,dc=fabric-ca,dc=example,dc=com) Attribute:[dn] Controls:[]}: LDAP Result Code 32 "No Such Object": ", что по-прежнему является ошибкой.   -  person Pmuller    schedule 14.08.2018


Ответы (1)


При выполнении процесса регистрации вы должны передать только имя пользователя, но вместо этого вы передали отличительное имя. За исключением того, что пароль должен быть отправлен, поэтому ваша команда регистрации должна выглядеть так:

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

Кроме того, я думаю, что пользовательский фильтр должен выглядеть так: (cn=%s), так как вы использовали cn в качестве префикса администратора.

person Aleksander    schedule 27.08.2018
comment
Привет @Александр, Спасибо за ваш комментарий. Это тоже не работает. - person Pmuller; 28.08.2018
comment
@Pmuller, я обновил ответ, не могли бы вы изменить свой пользовательский фильтр, чтобы связать префикс администратора - person Aleksander; 28.08.2018