ldap - Hyperledger Fabric-ca 连接到 LDAP 目录

标签 ldap openldap hyperledger-fabric-ca

我们正在实现 Hyperledger Fabric 解决方案。为此,我们在特定的 docker 中使用最小配置(我们仍在尝试弄清楚其工作原理)设置了一个 Fabric-CA。

由于我们需要使用电子邮件/密码对登录用户,因此我们设置了 LDAP 组件。我们选择使用 OpenLDAP,在不同的 docker 中使用 osixia/openldap 实现。

我们在fabric-ca-server-config.yaml中设置参数以将Fabric CA连接到LDAP。在两个 docker 启动时,日志看起来都很好:

Successfully initialized LDAP client

当我们继续 Fabric-CA 教程时,我们在命令中失败了:

fabric-ca-client enroll -u http://cn=admin,dc=example:admin@localhost:7054

结果是:

[INFO] 127.0.0.1:46244 POST /enroll 401 23 "Failed to get user: Failed to connect to LDAP server over TCP at localhost:389: LDAP Result Code 200 "": dial tcp 127.0.0.1:389: connect: connection refused"

当在 CLI 中并通过 PHPLdapAdmin(LDAP 浏览器)使用相同的凭据进行请求时,LDAP 已正确设置并正常运行。

这是fabric-ca-server-config.yaml 的一些内容:

ldap:
  enabled: true
  url: ldap://cn=admin,dc=example:admin@localhost:389/dc=example
  userfilter: (uid=%s)
tls:
  enabled: false
  certfiles:
  client:
    certfile: noclientcert
    keyfile:
attribute:
  names: ['uid','member']
  converters:
    - name: hf.Revoker
      value: attr("uid") =~ "revoker*"
  maps:
    groups:
      - name: example
      value: peer

有人可以帮忙吗? 感谢您的阅读,

最佳答案

我在这里看到两个问题:

首先与 docker 相关,而不是与 Fabric-ca 相关。您必须将 netowrk_mode 设置为 host 以消除容器与 Docker 主机之间的网络隔离。然后您的 docker 容器将看到位于 Docker 主机上的 OpenLDAP

请查看示例docker-compose.yaml文件

version: '2'
services:
 fabric-ca-server:
  image: hyperledger/fabric-ca:1.1.0
  container_name: fabric-ca-server
  ports:
    - "7054:7054"
  environment:
    - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
  volumes:
    - ./fabric-ca-server:/etc/hyperledger/fabric-ca-server
  command: sh -c 'fabric-ca-server start'
  network_mode: host

有关 docker 网络的更多信息,您可以在这里找到:https://docs.docker.com/network/

当网络问题得到解决时,您还必须修改 userfilter 以与 admin 前缀相关联,因此它应该如下所示: userfilter: (cn=%s) 如果 userfilter 不会被修复,那么您将得到在 LDAP 中找不到管理员的信息。

关于ldap - Hyperledger Fabric-ca 连接到 LDAP 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614146/

相关文章:

java - Wildfly (9) + kerberos + ldap( Activity 目录)

ldap - Shibboleth SP 无法解析 Shibboleth IDP 发送的属性

linux -/etc/ldap2/slapd.d/cn=config.ldif 权限被拒绝

node.js - Hyperledger Fabric 调用注册端点失败并出现错误

java - 如何简化 Spring Boot 中的 LDAP 身份验证以减少数据加载过程时间?

ldap - LDAP 是否在绑定(bind)后提供 token ,因此我不必每次都发送凭据?

java - 我们可以使用 Java 在 openLDAP 中为域组件条目创建子上下文吗?

hyperledger-fabric - fabric CA 客户端用户注册授权失败

ldap - 使用 openldap 配置 hyperledger Fabric-CA 服务器

authentication - 无法使用 jndi 领域在 tomcat6 中增加日志级别调试