Funzioni della libreria del controllo dell'accesso con filtro
Il pacchetto della libreria offre le funzioni indicate di seguito per risorse, gruppi e ACL, nonché per funzioni globali.
Funzioni globali
Funzione | Descrizione |
---|---|
Initialization(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (error) (error) |
Quando viene distribuito il codice concatenato, viene chiamata la funzione Al termine del processo di bootstrap, vengono create le seguenti entità:
|
NewGroupManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*GroupManager, error) |
Recupera il manager del gruppo utilizzato per tutte le operazioni correlate al gruppo. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, la funzione utilizza l'identità del chiamante. |
NewACLManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ACLManager, error) |
Ottiene il manager ACL utilizzato per tutte le operazioni correlate all'ACL. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, la funzione utilizza l'identità del chiamante. |
NewResourceManager(identity *x509.Certificate, stub shim.ChaincodeStubInterface) (*ResourceManager, error) |
Recupera il Resource Manager utilizzato per tutte le operazioni correlate alle risorse. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, la funzione utilizza l'identità del chiamante. |
Funzioni della lista di controllo dell'accesso (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
}
- Accessi: la stringa Accesses è una lista di nomi di accesso arbitrari separati da virgole e dipende completamente dall'applicazione, ad eccezione di quattro: CREATE, READ, UPDATE e DELETE. Questi valori di accesso vengono utilizzati per gestire il controllo dell'accesso con filtro. Le applicazioni possono utilizzare le proprie stringhe di accesso, ad esempio
"register"
,"invoke"
o"query"
, o anche elementi quali l'accesso ai nomi dei campi, ad esempio"owner"
,"quantity"
e così via. - Consentito: l'opzione Consentito determina se alle identità che corrispondono a un pattern è consentito l'accesso (true) o l'accesso non consentito (false). È possibile disporre di una lista di controllo dell'accesso che indichi che Bob ha accesso a "
CREATE
", mentre un'altra che indichi che il gruppo Oracle (di cui Bob è membro) non è consentito a"CREATE"
. Il fatto che Bob abbia accesso o meno dipende dall'ordine delle liste di controllo dell'accesso associate all'entità in questione. - BindACLs: il parametro BindACLs costituisce la lista di controllo dell'accesso iniziale.
Funzioni ACL:
Funzione | Descrizione |
---|---|
Create(acl ACL, identity *x509.Certificate) (error) |
Crea un'ACL. ACL denominate duplicate non consentite. Per creare un'ACL, l'identità deve disporre dell'accesso CREATE alla risorsa bootstrap denominata ". ACL". Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Get(aclName string, identity *x509.Certificate) (ACL, error) |
Ottiene un'ACL denominata. L'identità deve avere accesso in Lettura all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Delete(aclName string, identity *x509.Certificate) (error) |
Elimina un'ACL specificata. L'identità deve disporre dell'accesso ELIMINA all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Update(acl ACL, identity *x509.Certificate) (error) |
Aggiorna un'ACL. L'identità deve disporre dell'accesso UPDATE alla risorsa denominata e l'ACL denominata deve esistere. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddPattern(aclName string, pattern string, identity *x509.Certificate) (error) |
Aggiunge un nuovo pattern di identità all'ACL denominata. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemovePattern(aclName string, pattern string, identity *X509Certificate) (error) |
Rimuove il pattern di identità dall'ACL. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddAccess(aclname string, access string, identity *X509Certificate) (error) |
Aggiunge un nuovo accesso all'ACL denominata. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemoveAccess(aclName string, access string, identity *X509Certificate) (error) |
Rimuove l'accesso dall'ACL. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
UpdateDescription(aclName string, newDescription string, identity *X509Certificate) (error) |
Aggiorna la descrizione. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddBeforeACL(aclName string, beforeName string, newBindACL string, identity *X509Certificate) (error) |
Aggiunge un'ACL di autenticazione prima dell'ACL denominata esistente. Se l'ACL denominata è vuota o non viene trovata, l'ACL viene aggiunta all'inizio della lista ACL di autenticazione. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddAfterACL(aclName string, afterName string, newBindACL string, identity *X509Certificate) (error) |
Aggiunge un'ACL di associazione dopo l'ACL denominata esistente. Se l'ACL denominata è vuota o non viene trovata, l'ACL viene aggiunta alla fine della lista ACL di autenticazione. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemoveBindACL(aclName string, removeName string, identity *X509Certificate) (error) |
Rimuove l'ACL L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
GetAll(identity *x509.Certificate) ([]ACL, error) |
Ottenere tutte le ACL. L'identità deve avere accesso in Lettura all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Funzioni del gruppo
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.
}
Definizione delle funzioni GroupManager
:
Funzione | Descrizione |
---|---|
Create(group Group, identity *x509.Certificate) (error) |
Crea un gruppo. L'identità deve disporre dell'accesso CREATE al gruppo bootstrap |
Get(groupName string, identity *x509.Certificate) (Group, error) |
Ottiene un gruppo specificato. L'identità deve disporre dell'accesso in lettura a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Delete(groupName string, identity *x509.Certificate) (error) |
Elimina un gruppo specificato. L'identità deve disporre dell'accesso DELETE a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Aggiunge uno o più membri al gruppo. L'identità deve disporre dell'accesso UPDATE a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemoveMembers(groupName string, member []string, identity *x509.Certificate) (error) |
Rimuove uno o più membri da un gruppo. L'identità deve disporre dell'accesso UPDATE a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
UpdateDescription(groupName string, newDes string, identity *x509.Certificate) (error) |
Aggiorna la descrizione. L'identità deve disporre dell'accesso UPDATE a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddBeforeACL(groupName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Aggiunge un'ACL di bind al gruppo prima dell'ACL esistente denominata. Se l'ACL denominata è vuota o non trovata, l'ACL viene aggiunta all'inizio della lista di ACL di autenticazione per la risorsa. L'identità deve disporre dell'accesso UPDATE al gruppo denominato. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddAfterACL(groupName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Aggiunge un'ACL di associazione al gruppo dopo l'ACL denominata esistente. Se l'ACL specificata è vuota o non viene trovata, l'ACL viene aggiunta alla fine della lista di ACL di bind per il gruppo. L'identità deve disporre dell'accesso UPDATE al gruppo denominato. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemoveBindACL(groupName string, aclName string, identity *x509.Certificate) (error) |
Rimuove l'ACL denominata dalla lista ACL di autenticazione del gruppo denominato. L'identità deve disporre dell'accesso UPDATE al gruppo denominato. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
GetAll(identity *x509.Certificate) ([]Group, error) |
Recupera tutti i gruppi. L'identità deve avere accesso in lettura a questi gruppi. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Funzioni risorsa
Resource
:type Resource struct {
Name string
Description string
BindACLs []string // The name list of ACL, controls who can access this resource
}
Funzioni risorsa:
Fuzione | Descrizione |
---|---|
Create(resource Resource, identity *x509.Certificate) (error) |
Crea una risorsa. Le risorse denominate duplicate non sono consentite. L'identità deve disporre dell'accesso CREATE alla risorsa bootstrap |
Get(resName string, identity *x509.Certificate) (Resource, error) |
Recupera una risorsa specificata. L'identità deve disporre dell'accesso in lettura alla risorsa. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
Delete(resName string, identity *x509.Certificate) (error) |
Elimina una risorsa denominata. L'identità deve disporre dell'accesso ELIMINATO alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
UpdateDescription(resourceName string, newDes string, identity *x509.Certificate) (error) |
Aggiorna la descrizione. L'identità deve disporre dell'accesso UPDATE a questa risorsa. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddBeforeACL(resourceName string, beforeName string, aclName string, identity *x509.Certificate) (error) |
Aggiunge un'ACL di associazione alla risorsa prima dell'ACL denominata esistente. Se l'ACL denominata è vuota o non viene trovata, l'ACL viene aggiunta all'inizio della lista di ACL di autenticazione per la risorsa. L'identità deve disporre dell'accesso UPDATE alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
AddAfterACL(resourceName string, afterName string, aclName string, identity *x509.Certificate) (error) |
Aggiunge un'ACL di associazione alla risorsa dopo l'ACL denominata esistente. Se l'ACL denominata è vuota o non viene trovata, l'ACL viene aggiunta alla fine della lista di ACL di autenticazione per la risorsa. L'identità deve disporre dell'accesso UPDATE alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
RemoveBindACL(resourceName string, aclName string, identity *x509.Certificate) (error) |
Rimuove l'ACL denominata dalla lista ACL di autenticazione della risorsa denominata. L'identità deve disporre dell'accesso UPDATE alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
CheckAccess(resName string, access string, identity *x509.Certificate) (bool, error) |
Verifica se l'utente corrente dispone dell'accesso specificato alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |
GetAll(identity *x509.Certificate) ([]Resource, error) |
Recupera tutte le risorse. L'identità deve disporre dell'accesso in lettura a queste risorse. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in |