上云无忧 > 文档中心 > 百度智能云超级链BaaS Fabric联盟链 - 证书管理
超级链BaaS平台
百度智能云超级链BaaS Fabric联盟链 - 证书管理

文档简介:
证书管理: 证书管理支持client证书的申请和下载,用户可使用下载的证书调用链码并进一步使用证书属性集实现丰富的权限校验。 【百度智能云】可信计算平台
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

证书管理

证书管理支持client证书的申请和下载,用户可使用下载的证书调用链码并进一步使用证书属性集实现丰富的权限校验。

申请证书

  1. 进入【联盟】菜单,点击联盟名称进入联盟详情页,点击【证书管理】进入证书管理页。
  2. 申请证书时需要设置的参数:
参数 说明 举例
用户名 证书的唯一标识 Bob
属性集 key=value格式,多个键值对以英文逗号分割 role=admin,permission=1

下载并使用证书

  1. 申请完证书后可在证书操作栏进行证书下载:

  1. 下载证书与SDK的配合使用,将下载的证书解压到 sdk 的crypto-config/组织名称/users 并将demo中UserName改为证书用户名即可(比如:Bob)

属性集实现权限认证

Hyperledger Fabric 支持使用基于属性的访问控制(ABAC, Attribute-Based Access Control)来控制用户的访问权限。在进行申请证书时,可以包含一个或多个属性名称和值,链码运行时可以提取属性值来进行访问控制决策。

例如,您正在开发一个”黑名单“的应用,需要控制上传黑名单的权限。您可以在链码中指定permission权限为1的用户才可以上传黑名单,然后申请证书时为有上传黑名单权限的client指定permission=1

关于 Hyperledger Fabric ABAC 功能,更多请参见:Attribute-Based Access Control

黑名单 demo,其中对上传操作进行权限校验:

package main

import (
	"fmt"

	"github.com/hyperledger/fabric/core/chaincode/shim"
	"github.com/hyperledger/fabric/core/chaincode/shim/ext/cid"
	pb "github.com/hyperledger/fabric/protos/peer"
)

type BlacklistChaincode struct {
}

func (t *BlacklistChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
	return shim.Success(nil)
}

func (t *BlacklistChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
	function, args := stub.GetFunctionAndParameters()

	if function == "upload" {
		return t.upload(stub, args)
	} else if function == "query" {
		return t.query(stub, args)
	}

	return shim.Error("Invalid invoke function name. Expecting \"upload\" \"query\"")
}

func (t *BlacklistChaincode) upload(stub shim.ChaincodeStubInterface, args []string) pb.Response {
	if len(args) != 2 {
		return shim.Error("Incorrect number of arguments. Expecting 2")
	}

	// 校验调用用户是否有上传黑名单权限
	err := cid.AssertAttributeValue(stub, "permission", "1")
	if err != nil {
		return shim.Error("The client identity does not have the permission to upload blacklist")
	}

	// Write the state back to the ledger
	err = stub.PutState(args[0], []byte(args[1]))
	if err != nil {
		return shim.Error(err.Error())
	}

	return shim.Success(nil)
}

func (t *BlacklistChaincode) query(stub shim.ChaincodeStubInterface, args []string) pb.Response {
	if len(args) != 1 {
		return shim.Error("Incorrect number of arguments. Expecting name of the person to query")
	}

	// Get the state from the ledger
	Avalbytes, err := stub.GetState(args[0])
	if err != nil {
		jsonResp := "{\"Error\":\"Failed to get state for " + args[0] + "\"}"
		return shim.Error(jsonResp)
	}

	if Avalbytes == nil {
		jsonResp := "{\"Error\":\"Nil content for " + args[0] + "\"}"
		return shim.Error(jsonResp)
	}

	return shim.Success(Avalbytes)
}

func main() {
	err := shim.Start(new(BlacklistChaincode))
	if err != nil {
		fmt.Printf("Error starting Blacklist chaincode: %s", err)
	}
}
相似文档
  • 创建组织: Quorum联盟由一个或多个组织组成。用户需要先创建组织,以组织的身份加入或者创建联盟。 登录百度智能云超级链BaaS平台控制台,点击进入到Quorum联盟链中。 选择“组织”,进入“组织”页面。 【百度智能云】可信计算平台
  • 创建联盟: 联盟代表一个区块链业务团体,可以由一个或多个组织组成。 目前,组织能够通过两种形式参与到联盟网络中: 创建联盟。 接受邀请加入联盟。 进入超级链BaaS平台控制台中的Quorum联盟链,点击“联盟”菜单,进入“联盟”页面。已创建的联盟将显示在联盟列表中。 【百度智能云】可信计算平台
  • 节点管理: Quorum联盟由多个节点组成,节点分为: 验证节点,验证交易并出块的节点。普通配置套餐默认4个验证节点,豪华套餐默认7个验证节点。 交易节点,只同步块而不参与出块的节点,可用来接收交易请求。 进入“Quorum联盟链”中的“联盟”菜单,点击“节点管理”即可进入节点管理页面。 【百度智能云】可信计算平台
  • 简介: 用户可以在合约管理页中查看和管理通过合约编辑器部署的用户合约和平台提供的基础库合约。合约分为公有合约和私有合约,其中平台基础库合约部署后为公有合约。 【百度智能云】可信计算平台
  • 账号管理: Quorum网络中的账户与以太坊网络中的账户是一个概念,账户由私钥控制,可以拥有、转账以太币,也可以部署和调用合约等。 账号管理页面包含了两种账户: 组织钱包账户,包含用户创建的账户。 系统预定义钱包账户,包含网络创建时预定义的账户。 【百度智能云】可信计算平台
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部