微點存取控制程式庫函數
磁帶櫃套裝軟體提供下列資源、群組和 ACL 功能以及全域功能。
全域函數
函數 | 描述 |
---|---|
初始化 (識別 *x509) . 憑證,stub shim.ChaincodeStubInterface (錯誤) (錯誤) |
建立鏈碼時,會呼叫 Initialization 函數。該功能將使用一些內建的存取控制清單來初始化世界狀態。這些內建清單用於啟動安裝環境。因此,您必須對誰可以建立資源、群組和 ACL 具備存取控制權。如果識別為零,則使用來電者的識別。 完成啟動安裝之後,會建立下列實體:
|
NewGroupManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*GroupManager,錯誤) |
取得用於所有群組相關作業的群組管理員。 識別:相關作業的預設識別。如果為零,則使用來電者的身分識別。 |
NewACLManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*ACLManager,錯誤) |
取得用於所有 ACL 相關作業的 ACL 管理程式。 識別:相關作業的預設識別。如果為零,則使用來電者的身分識別。 |
NewResourceManager (身分 *x509)。憑證,stub shim.ChaincodeStubInterface (*ResourceManager,錯誤) |
取得用於所有資源相關作業的資源管理程式。 識別:相關作業的預設識別。如果為零,則使用來電者的身分識別。 |
存取控制清單 (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
}
- 存取: Accesses 字串是以逗號分隔的任意存取名稱清單,並完全由應用程式提供,但以下四個項目除外:CREATE、READ、UPDATE 和 DELETE。這些存取值用於維護微點存取控制。應用程式可以使用自己的存取字串,例如
"register"
、"invoke"
或"query"
,甚至是存取欄位名稱 (例如"owner"
、"quantity"
等等)。 - 允許:「允許」決定是否允許存取符合樣式的識別 (true) 或禁止存取 (false)。您可以有一個存取控制清單,指示 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,identity *x509) . 憑證) (錯誤) |
更新 ACL。 識別必須具有指定資源的 UPDATE 存取權,且指定的 ACL 必須存在。如果識別為 nil,則會使用 NewACLManager() 中指定的預設識別。 |
AddPattern (aclName 字串、樣式字串、識別 *x509)。憑證) (錯誤) |
新增識別樣式至指定的 ACL。識別必須具有具名 ACL 的 UPDATE 存取權。 如果識別為 nil,則會使用 newACLManager() 中指定的預設識別。 |
RemovePattern (aclName string,pattern string,identity *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 string,newDescription string,identity *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 string,removeName string,identity *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
函數的定義:
函數 | 描述 |
---|---|
Create (group Group,identity *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 string,access string,identity *x509) 憑證) (布林、錯誤) |
檢查目前的使用者是否具有指定的指定資源存取權。 如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。 |
GetAll (身分 *x509)。憑證) ([] 資源、錯誤) |
取得所有資源。 識別必須具備這些資源的讀取存取權。如果識別為 nil,則會使用 NewResourceManager() 中指定的預設識別。 |