Funzioni della libreria di controllo dell'accesso con filtraggio
Il pacchetto della libreria offre le funzioni indicate di seguito per le risorse, i gruppi e le 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 Inizializzazione. Questa funzione inizializzerà lo stato del mondo con alcune liste di controllo dell'accesso integrate. Questi elenchi incorporati vengono utilizzati per eseguire il bootstrap dell'ambiente. Pertanto, è necessario disporre del controllo dell'accesso per stabilire chi può creare risorse, gruppi e ACL. Se l'identificazione è nulla, utilizzare l'identificazione del chiamante. Al termine del bootstrap, vengono create le entità seguenti:
|
| NewGroupManager(identità *x509). Certificato, stub shim.ChaincodeStubInterface) (*GroupManager, errore) |
Recupera il manager del 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 dell'elenco 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 granulare. 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) è vietato da"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, identità *x509. Certificato (errore) |
Crea una nuovo ACL. L'ACL denominata duplicata non è consentita. Per creare una nuova ACL, l'identità deve avere accesso CREATE alla risorsa bootstrap denominata ". ACL". Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
| Get(stringa aclName, 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(stringaaclName, identità *x509). Certificato (errore) |
Eliminare un'ACL specificata. L'identità deve disporre dell'accesso ELIMINA all'ACL denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in newACLManager(). |
| Update(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(stringaaclName, stringa di 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 nomeacl, 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(stringa aclName, stringa newDescription, identità *X509Certificate) (errore) |
Aggiorna 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 bind prima dell'ACL esistente denominata. Se l'ACL specificata è vuota o non viene trovata, l'ACL viene aggiunta all'inizio dell'elenco di 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 trovata, l'ACL viene aggiunta alla fine dell'elenco di 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(stringa aclName, stringa removeName, identità *X509Certificate) (errore) |
Rimuove l'ACL removeName dall'elenco di 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(stringa groupName, identità *x509). Certificato) (Gruppo, errore) |
Recupera 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 NewGroupManager(). |
| Delete(stringagroupName, 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) |
Aggiorna 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 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 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 specificata è 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 associazione 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:
| Aspirazione | 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(stringa resName, identità *x509). Certificato) (Risorsa, errore) |
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 NewResourceManager(). |
| Delete(stringaresName, identità *x509). Certificato (errore) |
Eliminare una risorsa denominata. L'identità deve disporre dell'accesso ELIMINATO alla risorsa denominata. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |
| UpdateDescription(stringaresourceName, stringa newDes, identità *x509). Certificato (errore) |
Aggiorna 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 autenticazione alla risorsa prima dell'ACL denominata esistente. 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 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 autenticazione alla risorsa dopo l'ACL denominata esistente. Se l'ACL denominata è vuota o non 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 la lista 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) |
Verificare 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 disporre dell'accesso in lettura a queste risorse. Se l'identità è nulla, viene utilizzata l'identità predefinita specificata in NewResourceManager(). |