微點存取控制程式庫函數

函式庫套件為資源、群組和 ACL 以及全域功能提供下列功能。

全域函數

函數 描述
初始化 (識別 *x509)。憑證,stub shim.ChaincodeStubInterface (錯誤) (錯誤)

建立鏈碼時,會呼叫初始化函數。該函數會使用一些內建的存取控制清單來初始化世界狀態。這些內建清單可用來啟動環境。因此,需要對誰能夠建立資源、群組以及 ACL 的存取控制。如果識別為零,則使用來電者的識別。

啟動安裝完成之後,會建立下列實體:

  • 名稱為 " 的資源。資源。名稱為 「 的對應 ACL。Resources.ACL 將使用實際的通用名稱 , 以 」%CN%bob.smith@oracle.com" 格式的單一識別樣式建立,且存取將會是 CREATE、READ、UPDATE 和 DELETE 存取。
  • 名為 " 的群組。群組。名稱為 「 的對應 ACL。Groups.ACL 將使用實際的通用名稱 , 以 」%CN%bob.smith@oracle.com" 格式的單一識別樣式建立,且存取將會是 CREATE、READ、UPDATE 和 DELETE 存取。
  • 名稱為 " 的 ACL。ACL。名稱為 「 的對應 ACL 控制清單。ACLs.ACL 將使用實際的通用名稱 , 以 」%CN%bob.smith@oracle.com" 格式的單一識別樣式建立,且存取將會是 CREATE、READ、UPDATE 和 DELETE 存取。
NewGroupManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*GroupManager,error)

取得用於所有群組相關作業的群組管理員。

識別:相關作業的預設識別。如果沒有,請使用呼叫者的識別。

NewACLManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*ACLManager,error)

取得用於所有 ACL 相關作業的 ACL 管理程式。

識別:相關作業的預設識別。如果沒有,請使用呼叫者的識別。

NewResourceManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*ResourceManager,error)

取得用於所有資源相關作業的資源管理程式。

識別:相關作業的預設識別。如果沒有,請使用呼叫者的識別。

存取控制清單 (ACL) 功能

ACL 結構的定義:
type ACL struct {
  Name string
  Description string
  Accesses []string  // CREATE, READ, UPDATE, and DELETE, or whatever the end-user defined
  Patterns []string    // identities
  Allowed bool          // true means allows access.
  BindACLs []string  // The list of ACL , control who can call the APIs of this struct
}
  • 存取:「存取」字串是一個以逗號區隔的任意存取名稱清單,並完全由應用程式決定,但下列四個項目除外:CREATE、READ、UPDATE 以及 DELETE。這些存取值是用來維護細微的存取控制。應用程式可以使用自己的存取字串,例如 "register""invoke""query",甚至是存取欄位名稱 (例如 "owner""quantity" 等等)。
  • 允許:允許決定是否允許符合樣式的識別存取 (真) 或禁止存取 (偽)。您可以有一個存取控制清單,指示 Bob 可以存取 "CREATE",另一個則表示 "CREATE" 禁止群組 Oracle (其中 Bob 是成員)。Bob 是否具有存取權,取決於與有問題的實體相關聯的存取控制清單順序。
  • BindACLs:BindACLs 參數將形成初始存取控制清單。

ACL 函數:

函數 描述
Create (acl ACL,identity *x509. 認證 (錯誤)

建立新 ACL。不允許重複的具名 ACL。

若要建立新的 ACL,該識別需要有 CREATE 存取名為 " 的啟動安裝資源。ACL。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

Get (aclName 字串,識別 *x509. 憑證 (ACL,錯誤)

取得指定的 ACL。

識別必須具有具名 ACL 的 READ 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

Delete (aclName 字串,識別 *x509. 認證 (錯誤)

刪除指定的 ACL。

識別必須具備具名 ACL 的 DELETE 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

Update (acl ACL,識別 *x509)。認證 (錯誤)

更新 ACL。

識別必須具有具名資源的 UPDATE 存取權,而且指定的 ACL 必須存在。如果識別為 nil,則會使用 NewACLManager() 中指定的預設識別。

AddPattern (aclName 字串、樣式字串、識別 *x509)。認證 (錯誤)

新增識別樣式至指定的 ACL。識別必須具有具名 ACL 的 UPDATE 存取權。

如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

RemovePattern (aclName 字串,樣式字串,識別 *X509Certificate) (錯誤)

從 ACL 移除識別樣式。識別必須具有具名 ACL 的 UPDATE 存取權。

如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

AddAccess (aclname string,access string,identity *X509Certificate) (錯誤)

新增對具名 ACL 的存取權。識別必須具有具名 ACL 的 UPDATE 存取權。

如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

RemoveAccess (aclName string,access string,identity *X509Certificate) (錯誤)

移除 ACL 的存取權。識別必須具有具名 ACL 的 UPDATE 存取權。

如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

UpdateDescription (aclName 字串、newDescription 字串、識別 *X509Certificate) (錯誤)

更新描述。

識別必須具有具名 ACL 的 UPDATE 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

AddBeforeACL (aclName 字串、beforeName 字串、newBindACL 字串、識別 *X509Certificate) (錯誤)

在現有的具名 ACL 之前新增連結 ACL。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至連結 ACL 清單的開頭。

識別必須具有具名 ACL 的 UPDATE 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

AddAfterACL (aclName 字串、afterName 字串、newBindACL 字串、識別 *X509Certificate) (錯誤)

在現有的具名 ACL 之後新增連結 ACL。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至連結 ACL 清單的結尾。

識別必須具有具名 ACL 的 UPDATE 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

RemoveBindACL (aclName 字串、removeName 字串、識別 *X509Certificate) (錯誤)

從連結 ACL 清單中移除 removeName ACL。

識別必須具有具名 ACL 的 UPDATE 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

GetAll (身分 *x509)。憑證) ([]ACL,錯誤

取得所有 ACL。

識別必須具有具名 ACL 的 READ 存取權。如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。

群組功能

Group 結構的定義:
type Group struct {
    Name string
    Description string
    Members []string     // identity patterns, except GRP.
    BindACLs []string    // The list of ACLs, controls who can access this group.
}

GroupManager 函數的定義:

函數 描述
建立 (群組群組,識別 *x509)。認證 (錯誤)

建立新群組。

識別必須具備啟動安裝群組 " 的 CREATE 存取權。群組。如果識別為 nil,則會使用 NewGroupManager() 中指定的預設識別。

Get (groupName 字串,識別 *x509. 憑證 (群組,錯誤)

取得指定的群組。

此識別必須具備此群組的讀取存取權。如果識別為 nil,則會使用 NewGroupManager() 中指定的預設識別。

Delete (groupName 字串,識別 *x509. 認證 (錯誤)

刪除指定的群組。

識別必須具備此群組的 DELETE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

AddMembers (groupName 字串,成員 [] 字串,識別 *x509。認證 (錯誤)

將一或多個成員新增至群組。

識別必須具有此群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

RemoveMembers (groupName 字串,成員 [] 字串,識別 *x509。認證 (錯誤)

移除群組的一或多個成員。

識別必須具有此群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

UpdateDescription (groupName 字串、newDes 字串、識別 *x509)。認證 (錯誤)

更新描述。

識別必須具有此群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

AddBeforeACL (groupName 字串、beforeName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

將連結 ACL 新增至現有具名 ACL 之前的群組。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至資源的連結 ACL 清單開頭。

識別必須具有具名群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

AddAfterACL (groupName 字串、afterName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

將連結 ACL 新增至現有具名 ACL 之後的群組。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至群組的連結 ACL 清單結尾。

識別必須具有具名群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

RemoveBindACL (groupName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

將指定的 ACL 移除至具名群組的連結 ACL 清單。

識別必須具有具名群組的 UPDATE 存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

GetAll (身分 *x509)。憑證 ([] 群組,錯誤)

取得所有群組。

識別必須具備這些群組的讀取存取權。如果識別為 nil,則會使用 NewGroupManager () 中指定的預設識別。

資源函數

Resource 結構的定義:
type Resource struct {
     Name string
     Description string
     BindACLs []string      // The name list of ACL, controls who can access this resource
}

資源函數:

拍賣 描述
建立 (資源,識別 *x509)。認證 (錯誤)

建立新資源。不允許重複的指定資源。

識別需要 CREATE 存取名為 「 的啟動安裝資源 . 資源」如果識別為空值,則會使用 NewResourceManager() 中指定的預設識別。

Get (resName 字串,識別 *x509. 憑證 (資源、錯誤)

取得指定的資源。

識別必須具備資源的讀取存取權。如果識別為空值,則會使用 NewResourceManager() 中指定的預設識別。

Delete (resName 字串,識別 *x509. 認證 (錯誤)

刪除具名資源。

識別必須具備指定資源的 DELETE 存取權。如果識別為空值,則會使用 NewResourceManager() 中指定的預設識別。

UpdateDescription (resourceName 字串、newDes 字串、識別 *x509)。認證 (錯誤)

更新描述。

識別必須具備此資源的 UPDATE 存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。

AddBeforeACL (resourceName 字串、beforeName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

將連結 ACL 新增至現有具名 ACL 之前的資源。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至資源的連結 ACL 清單開頭。

識別必須具有具名資源的 UPDATE 存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。

AddAfterACL (resourceName 字串、afterName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

將連結 ACL 新增至現有具名 ACL 之後的資源。如果指定的 ACL 是空的或找不到,則會將 ACL 新增至資源的連結 ACL 清單結尾。

識別必須具有具名資源的 UPDATE 存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。

RemoveBindACL (resourceName 字串、aclName 字串、識別 *x509)。認證 (錯誤)

從具名資源的連結 ACL 清單中移除具名 ACL。

識別必須具有具名資源的 UPDATE 存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。

CheckAccess (resName 字串、存取字串、識別 *x509)。憑證) (工具列、錯誤)

檢查目前的使用者是否具有指定的資源存取權。

如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。

GetAll (身分 *x509)。憑證) ([] 資源,錯誤

取得所有資源。

識別必須具備這些資源的讀取存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。