如何从LDAP获取fabric-ca-client的csr.names参数替换默认配置
Fabric CA从LDAP拉取CSR names参数的实现方法
要实现直接从LDAP拉取用户属性填充CSR的names字段,不需要修改客户端配置,只需要调整Fabric CA服务端的配置即可,操作步骤如下:
步骤1:配置LDAP属性映射规则
打开Fabric CA服务端配置文件fabric-ca-server-config.yaml,找到ldap配置块,在attribute子块中添加CSR字段与LDAP用户属性的映射关系,示例配置如下:
ldap: enabled: true # 原有已配置的LDAP服务地址、baseDN、管理员认证信息等保持不变 attribute: names: - C: countryName # 映射CSR的C字段到LDAP的countryName属性,可根据自身LDAP schema调整 ST: stateOrProvinceName # 映射CSR的ST字段 L: localityName # 映射CSR的L字段 O: organizationName # 映射CSR的O字段 OU: organizationalUnitName # 映射CSR的OU字段 CN: cn # 映射CSR的CN字段
你可以根据自己LDAP实际的属性命名调整映射值,比如如果LDAP中国家属性存储在c字段,就将C对应的取值改为c即可。
步骤2:开启服务端CSR属性覆盖权限
在同一份服务端配置文件中找到signing配置块,将default.csr.override设置为true,允许服务端用从LDAP拉取的属性覆盖客户端提交的默认CSR参数:
signing: default: usage: - digital signature - key encipherment expiry: 8760h csr: override: true # 核心配置,开启服务端覆盖CSR属性的权限
步骤3:重启Fabric CA服务生效
修改完配置后重启Fabric CA服务,后续用户发起enroll请求时,服务端会自动查询对应用户的LDAP属性,填充到证书的names字段中,无需修改任何客户端的配置文件。
注意事项
- 如果LDAP对应用户的某条属性为空,生成的证书对应字段也会为空,不会触发报错
- 配置映射前可通过
ldapsearch等工具验证LDAP用户条目下对应属性是否存在,避免拉取不到值的问题
内容的提问来源于stack exchange,提问作者Mojtaba Ahadi
相关产品推荐
相关产品推荐

