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à:

  • Una risorsa denominata ". Risorse". Un ACL corrispondente denominato ". Resources.ACL" verrà creato con un singolo pattern di identità nel formato "%CN%bob.smith@oracle.com", utilizzando il nome comune effettivo e l'accesso sarà CREATE, READ, UPDATE e DELETE.
  • Un gruppo denominato ". Gruppi". Un ACL corrispondente denominato ". Groups.ACL" verrà creato con un singolo pattern di identità nel formato "%CN%bob.smith@oracle.com", utilizzando il nome comune effettivo e l'accesso sarà CREATE, READ, UPDATE e DELETE.
  • Un'ACL denominata ". ACL Lista di controllo ACL corrispondente denominata ". ACLs.ACL" verrà creato con un singolo pattern di identità nel formato "%CN%bob.smith@oracle.com", utilizzando il nome comune effettivo e l'accesso sarà CREATE, READ, UPDATE e DELETE.
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)

Definizione della struttura 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

Definizione della struttura 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

Definizione della struttura 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().