中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Fabric CA創建用戶機制的示例分析

發布時間:2021-12-25 12:28:57 來源:億速云 閱讀:372 作者:小新 欄目:互聯網科技

這篇文章給大家分享的是有關Fabric CA創建用戶機制的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在研究Fabric CA 創建用戶,的時候發現很多隱含規則

通過官方文檔,我們知道 fabric-ca 可以帶有如下幾個以hf.開頭的屬性,我們暫且稱之為系統屬性

NameTypeDescription
hf.Registrar.RolesListList of roles that the registrar is allowed to manage
hf.Registrar.DelegateRolesListList of roles that the registrar is allowed to give to a registree for its ‘hf.Registrar.Roles’ attribute
hf.Registrar.AttributesListList of attributes that registrar is allowed to register
hf.GenCRLBooleanIdentity is able to generate CRL if attribute value is true
hf.RevokerBooleanIdentity is able to revoke a user and/or certificates if attribute value is true
hf.AffiliationMgrBooleanIdentity is able to manage affiliations if attribute value is true
hf.IntermediateCABooleanIdentity is able to enroll as an intermediate CA if attribute value is true

現象一:Boolean類型系統屬性

首先,我們用admin創建賬戶test_a,

Fabric CA創建用戶機制的示例分析

命令如下:

fabric-ca-client register -d \
--id.name test_a \
--id.secret test_a_pw \
--id.type client \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true \
--id.attrs hf.GenCRL=false

即,設置test_a用戶hf.GenCRL=false,結果如下:

Fabric CA創建用戶機制的示例分析

然后我們嘗試用test_a賬戶分別創建以下幾個賬戶(注意是用test_a賬戶,而不是admin賬戶)

  • test_a_a,設置test_a_a用戶hf.GenCRL=true:

fabric-ca-client register -d \
--id.name test_a_a \
--id.secret test_a_a_pw \
--id.type client \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true \
--id.attrs hf.GenCRL=true

結果創建失敗,會報權限錯誤,如下所示:

Fabric CA創建用戶機制的示例分析

  • test_a_b,設置test_a_b用戶hf.GenCRL=false:

fabric-ca-client register -d \
--id.name test_a_b \
--id.secret test_a_b_pw \
--id.type client \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true \
--id.attrs hf.GenCRL=false

結果同上:

Fabric CA創建用戶機制的示例分析

  • test_a_c,不設置test_a_c用戶hf.GenCRL屬性:

fabric-ca-client register -d \
--id.name test_a_c \
--id.secret test_a_c_pw \
--id.type client \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true

結果創建成功,如下:

Fabric CA創建用戶機制的示例分析

其他幾個布爾類型屬性,hf.Revoker,hf.AffiliationMgr,hf.IntermediateCA,都有類似現象,即,上級id這些布爾屬性如果設置為false(或者不設置),則所創建是下級id都不能帶有對應的這個幾個布爾類型的系統屬性

現象二:hf.Registrar.Roles的約束

剛才創建的test_a身份,id.type=client ,hf.Registrar.Roles=client,user, 如果我們用test_a注冊一個id.type=peer或者id.type=orderer的身份 結果會怎樣呢?大家應該都想得到,肯定是失敗,這里我就不做測試了

備注:fabric-ca 1.1 版本 hf.Registrar.Roles 屬性只支持client,user,peer,orderer四種,1.2版本即將支持自定義角色,詳見:https://jira.hyperledger.org/browse/FAB-7882

相關資料截圖:

Fabric CA創建用戶機制的示例分析

Fabric CA創建用戶機制的示例分析

Fabric CA創建用戶機制的示例分析

Fabric CA創建用戶機制的示例分析

Fabric CA創建用戶機制的示例分析

用 test_a 用戶創建一個 test_a_d身份,設置test_a_d屬性hf.Registrar.Roles=client,user,peer ,如下:

fabric-ca-client register -d \
--id.name test_a_d \
--id.secret test_a_d_pw \
--id.type client \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user,peer"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user,peer"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true

結果創建失敗,如下:

Fabric CA創建用戶機制的示例分析

可以繼續往下測試,可以發現,當test_a身份的屬性hf.Registrar.Roles=client,user ,往下用test_a身份創建的子身份的f.Registrar.Roles屬性值都不能超過client,user的范圍

再用 test_a 用戶創建一個 test_a_e身份,設置test_a_e 屬性id.type=peer ,如下:

fabric-ca-client register -d \
--id.name test_a_e \
--id.secret test_a_e_pw \
--id.type peer \
--id.affiliation easypay.fabric \
--id.attrs '"hf.Registrar.Roles=client,user"' \
--id.attrs '"hf.Registrar.DelegateRoles=client,user"' \
--id.attrs '"hf.Registrar.Attributes=*"' \
--id.attrs hf.Revoker=true \
--id.attrs hf.AffiliationMgr=true \
--id.attrs hf.IntermediateCA=true

結果創建失敗,錯誤信息如下:

Fabric CA創建用戶機制的示例分析

子 id 的id.type屬性值也受到上級id的hf.Registrar.Roles屬性值的約束

現象三:hf.Registrar.Attributes 屬性的約束

嘗試用 admin 身份 創建 test_b ,添加hf.key=value

fabric-ca-client register -d \
--id.name test_b \
--id.secret test_b_pw \
--id.type client \
--id.attrs hf.key=value

即使admin身份hf.Registrar.Attributes=*,還是創建失敗,結果如圖

Fabric CA創建用戶機制的示例分析

再嘗試用 admin 身份 創建 test_c,添加hf=value

fabric-ca-client register -d \
--id.name test_c \
--id.secret test_c_pw \
--id.type client \
--id.attrs hf=value

創建成功,結果如圖

Fabric CA創建用戶機制的示例分析

總結下來,有以下幾點規律:

  1. 上級id的hf.Registrar.Attributes值可以約束它所創建的子級id能添加的屬性,但是帶hf.的除外,帶hf.開頭的會被當做系統屬性,區別對待

  2. 從上級往下,所帶的屬性約束只能是逐漸收斂的,不能發散

相關代碼

感興趣可以詳細研究一下源代碼 相關部分代碼可以參見:https://github.com/hyperledger/fabric-ca/blob/release-1.1/lib/attr/attribute.go

Fabric CA創建用戶機制的示例分析 Fabric CA創建用戶機制的示例分析

感謝各位的閱讀!關于“Fabric CA創建用戶機制的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

库尔勒市| 永福县| 漳平市| 略阳县| 福泉市| 新宾| 雷州市| 诏安县| 铁岭县| 黔南| 辽阳县| 福贡县| 柘荣县| 澜沧| 麻阳| 乌鲁木齐市| 五大连池市| 东丰县| 稻城县| 芜湖市| 麻城市| 清镇市| 兴业县| 万州区| 吉首市| 宜章县| 睢宁县| 赣榆县| 秦皇岛市| 元氏县| 林甸县| 曲周县| 渝中区| 昆明市| 莲花县| 芷江| 临朐县| 巨野县| 宜君县| 大冶市| 石林|