Funzioni della libreria del controllo dell'accesso con filtro
Il pacchetto della libreria include le funzioni elencate di seguito per Risorse, gruppi e ACL, nonché per le funzioni globali.
Funzioni globali
Funzione | Descrizione |
---|---|
Inizializzazione (identità *x509). Certificato, stub shim.ChaincodeStubInterface) (errore) (errore) |
Quando viene creata un'istanza del codice concatenato, viene chiamata la funzione di inizializzazione. Questa funzione inizializzerà lo stato mondiale con alcune liste di controllo degli accessi integrate. Gli elenchi built-in vengono utilizzati per eseguire il bootstrap dell'ambiente. È pertanto necessario disporre del controllo dell'accesso su chi può creare risorse, gruppi e ACL. Se l'identificazione è nulla, utilizzare l'identificazione del chiamante. Dopo aver eseguito il bootstrap, vengono create le seguenti entità:
|
NewGroupManager(identità *x509). Certificato, stub shim.ChaincodeStubInterface) (*GroupManager, errore) |
Recupera il manager gruppo utilizzato per tutte le operazioni correlate al gruppo. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, usa l'identità del chiamante. |
NewACLManager(identità *x509). Certificato, stub shim.ChaincodeStubInterface) (*ACLManager, errore) |
Ottenere il manager ACL utilizzato per tutte le operazioni correlate all'ACL. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, usa l'identità del chiamante. |
NewResourceManager(identità *x509). Certificato, stub shim.ChaincodeStubInterface) (*ResourceManager, errore) |
Recupera il Resource Manager utilizzato per tutte le operazioni correlate alle risorse. Identità: l'identità predefinita per l'operazione correlata. Se è nullo, usa 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 completamente fino all'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: consente di determinare se alle identità che corrispondono a un pattern è consentito l'accesso (true) o l'accesso vietato (false). È possibile disporre di una lista di controllo dell'accesso che indica che Bob ha accesso a "
CREATE
" e un'altra che indica che il gruppo Oracle (di cui Bob è membro) è vietato da"CREATE"
. Il fatto che Bob abbia o meno accesso dipende dall'ordine delle liste di controllo dell'accesso associate all'entità in questione. - BindACLs: il parametro BindACLs formerà la lista di controllo dell'accesso iniziale.
Funzioni ACL:
Funzione | Descrizione |
---|---|
Crea (ACL ACL ACL, identità *x509). Certificato (errore) |
Crea una nuova ACL. L'ACL denominata duplicata non è consentita. Per creare una nuova ACL, l'identità deve disporre dell'accesso CREATE alla risorsa bootstrap denominata ". ACL Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
Get(aclName stringa, identità *x509. Certificato) (ACL, errore |
Ottenere un'ACL denominata. L'identità deve avere accesso in lettura all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
Delete(aclName stringa, identità *x509. Certificato (errore) |
Eliminare un'ACL specificata. L'identità deve disporre dell'accesso DELETE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
Update(ACL ACL, identità *x509. Certificato (errore) |
Aggiornare una 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 NewACLManager(). |
AddPattern(stringaaclName, stringa di pattern, identità *x509. Certificato (errore) |
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 newACLManager(). |
RemovePattern(aclName stringa, stringa pattern, identità *X509Certificate) (errore) |
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 newACLManager(). |
AddAccess(stringa aclname, stringa di accesso, identità *X509Certificate) (errore) |
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 newACLManager(). |
RemoveAccess(stringaaclName, stringa di accesso, identità *X509Certificate) (errore) |
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 newACLManager(). |
UpdateDescription(stringaaclName, stringa newDescription, identità *X509Certificate) (errore) |
Aggiornare la descrizione. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
AddBeforeACL(stringaaclName, stringa beforeName, stringa newBindACL, identità *X509Certificate) (errore) |
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 newACLManager(). |
AddAfterACL(stringaaclName, stringa afterName, stringa newBindACL, identità *X509Certificate) (errore) |
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 newACLManager(). |
RemoveBindACL(stringaaclName, stringa removeName, identità *X509Certificate) (errore) |
Rimuove l'ACL removeName dall'elenco ACL di autenticazione. L'identità deve disporre dell'accesso UPDATE all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
GetAll(identità *x509). Certificato) ([]ACL, errore |
Recupera tutte le ACL. L'identità deve avere accesso in lettura all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
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(gruppo di gruppi, identità *x509). Certificato (errore) |
Creare un nuovo gruppo. L'identità deve disporre dell'accesso CREATE al gruppo bootstrap ". Gruppo". Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager(). |
Get(groupName stringa, identità *x509. Certificato (gruppo, errore) |
Recupera un gruppo specificato. L'identità deve avere accesso in lettura a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager(). |
Delete(groupName stringa, identità *x509. Certificato (errore) |
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 NewGroupManager (). |
AddMembers(stringagroupName, membro []stringa, identità *x509. Certificato (errore) |
Aggiungere 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 NewGroupManager (). |
RemoveMembers(stringagroupName, membro []stringa, identità *x509. Certificato (errore) |
Rimuovere 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 NewGroupManager (). |
UpdateDescription(stringagroupName, stringa newDes, identità *x509. Certificato (errore) |
Aggiornare la descrizione. L'identità deve disporre dell'accesso UPDATE a questo gruppo. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager (). |
AddBeforeACL(stringagroupName, stringa beforeName, stringa aclName, identità *x509. Certificato (errore) |
Aggiunge un'ACL di associazione al gruppo 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 al gruppo denominato. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager (). |
AddAfterACL(stringagroupName, stringa afterName, stringa aclName, identità *x509. Certificato (errore) |
Aggiunge un'ACL di associazione al gruppo 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 il gruppo. L'identità deve disporre dell'accesso UPDATE al gruppo denominato. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager (). |
RemoveBindACL(stringagroupName, stringa aclName, identità *x509. Certificato (errore) |
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 NewGroupManager (). |
GetAll(identità *x509). Certificato ([]Gruppo, errore) |
Ottieni tutti i gruppi. L'identità deve avere accesso in lettura a questi gruppi. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewGroupManager (). |
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 |
---|---|
Crea (risorsa risorsa, identità *x509). Certificato (errore) |
Crea una nuova risorsa. Le risorse denominate duplicate non sono consentite. L'identità deve avere accesso CREATE alla risorsa bootstrap denominata ". Risorse" Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
Get(resName stringa, identità *x509. Certificato (risorsa, errore) |
Ottieni una risorsa specificata. L'identità deve avere accesso in lettura alla risorsa. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
Delete(resName stringa, identità *x509. Certificato (errore) |
Eliminare una risorsa denominata. L'identità deve disporre dell'accesso DELETE alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
UpdateDescription(stringaresourceName, stringa newDes, identità *x509. Certificato (errore) |
Aggiornare la descrizione. L'identità deve disporre dell'accesso UPDATE a questa risorsa. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
AddBeforeACL(stringaresourceName, stringa beforeName, stringa aclName, identità *x509. Certificato (errore) |
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 NewResourceManager(). |
AddAfterACL(stringaresourceName, stringa afterName, stringa aclName, identità *x509. Certificato (errore) |
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 NewResourceManager(). |
RemoveBindACL(stringaresourceName, stringa aclName, identità *x509. Certificato (errore) |
Rimuove l'ACL denominata dalla lista ACL di autenticazione della risorsa specificata. L'identità deve disporre dell'accesso UPDATE alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
CheckAccess(stringaresName, stringa di accesso, identità *x509. Certificato) (bool, errore |
Controllare se l'utente corrente dispone dell'accesso specificato alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
GetAll(identità *x509). Certificato ([]Risorsa, errore) |
Ottieni tutte le risorse. L'identità deve avere accesso in lettura a queste risorse. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |