Fabric-ca-server的主要作用是作为证书颁发机构,用来获得X509公钥和私钥(在向区块链ledger写入时需要这些公钥和私钥)。


用户公钥和私钥是通过enroll命令从fabric-ca-server获取的。但是在enroll之前,这个用户必须首先已经存在。fabric-ca-server也提供了register命令来注册用户。


尽管fabric-ca-server可以注册用户,但这并不是它存在的主要目的。


LDAP是实现用户注册的更通用的技术。


同时,除了用户注册之外,LDAP还提供了用户登陆验证的的功能,而fabric-ca-server本身并不支持用户登陆验证,所以,这就是要与LDAP集成的动机。


fabric可以不配置LDAP,这样的话它也会有对应的数据库存储注册过的用户,默认配置的数据库的是sqlite3,可以配置PG或MySQL。


但是,这种模式下,fabric-ca-server没有提供用户验证的任何API 。而一些其他的应用,比如web application,需要用户验证的功能。


要想满足其他应用用户验证的功能,可以有如下选项:


  1. 不配置LDAP,使用fabric-ca-server配置的数据库提供用户验证功能。
    这样有一个问题,就是在用户注册的时候需要通过fabric-ca-server来注册,而且在fabirc-ca-server配置的数据库里面,相关表无法自定义。可扩展性差。

  2. 使用LDAP
    因此,使用LDAP完美的解决这个问题,既用于web application或其他应用,又用于fabric-ca-server。



  • No labels