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 mantenere 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) |
Recupera 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) |
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 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) |
Eliminare 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 disporre dell'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) |
Ottenere 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 denominata. 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(). |