如何解决Hyperledger Composer CLI中identity issue命令的授权失败问题?
你遇到的这个Authorization failure(400错误),大概率是两个原因导致的:要么是执行命令的管理员身份没有Fabric CA的注册权限,要么是命令参数写错了。咱们一步步来排查解决:
1. 先修正命令里的参数错误
看你给出的命令:
composer identity issue -c admin@mron-business-network -fsupplier -u suppid -a "resource:org.mron.Supplier#S001" -x false
这里的-fsupplier是个明显的问题——Composer的-f参数是用来指定生成的网络卡片文件名的(比如-f suppid.card),如果你是想指定身份的附属组织(affiliation)为supplier,应该用-A(全称--affiliation)参数。
修正后的命令应该是这样的(如果要把卡片保存为suppid.card,同时指定附属组织为supplier):
composer identity issue -c admin@mron-business-network -f suppid.card -u suppid -a "resource:org.mron.Supplier#S001" -A supplier -x false
2. 验证管理员卡片的权限
你用的admin@mron-business-network卡片,必须是Fabric CA的注册管理员身份——只有CA的注册管理员才有权利注册新身份。可以按以下步骤检查:
- 先列出所有卡片,确认这个卡片存在且有效:
composer card list - 如果卡片无效或者权限不对,重新创建并导入管理员卡片:
你需要用到Fabric CA管理员的证书、私钥,以及业务网络的连接配置文件(connection-profile.json),执行以下命令:
注意替换# 创建管理员卡片 composer card create -p connection-profile.json -u admin -s <CA管理员密码> -c admin-cert.pem -k admin-private-key.pem # 导入卡片 composer card import -f admin@mron-business-network.card<CA管理员密码>为你Fabric CA的管理员密码(默认是adminpw,如果改了就用你设置的)。
3. 检查Fabric CA的配置
确保Fabric CA服务器的配置允许管理员注册新身份:
- 打开CA的配置文件(通常是
fabric-ca-server-config.yaml),找到registrar部分,确认管理员角色(默认是admin)拥有hf.Registrar.Roles权限,比如:registrar: roles: - "*" delegateRoles: - "*" - 确认Fabric CA服务器处于运行状态,并且和你的业务网络连接正常。
4. 重新执行修正后的命令
完成以上步骤后,再运行修正后的composer identity issue命令,应该就能成功为suppid颁发身份并创建网络卡片了。
内容的提问来源于stack exchange,提问作者Sudheer Kaspa
相关产品推荐
相关产品推荐

