B Utilizzo della libreria di controllo dell'accesso con filtro inclusa nell'esempio Marmi

A partire dalla versione 1.2, Hyperledger Fabric ha fornito un controllo dell'accesso dettagliato a molte delle funzioni di gestione. Oracle Blockchain Platform fornisce un package di esempio di marmi nella scheda Strumenti per sviluppatori della console, implementando una libreria di funzioni che gli sviluppatori di codici concatenati possono utilizzare per creare liste di controllo dell'accesso per le funzioni di codice concatenato. Attualmente supporta solo la lingua Go.

Presupposto

L'obiettivo di questa libreria di controllo dell'accesso di esempio è fornire i seguenti dati:

  • Fornisce un meccanismo che consente di controllare quali utenti possono accedere a determinate funzioni del codice concatenato.
  • La lista degli utenti e le relative abilitazioni devono essere dinamiche e condivise tra i codici concatenati.
  • Fornisce controlli del controllo dell'accesso in modo che un codice concatenato possa controllare facilmente la lista di controllo dell'accesso.
  • Al momento della distribuzione del codice concatenato, consente di inserire i membri iniziali nell'elenco delle risorse e delle liste di controllo dell'accesso.
  • È necessario fornire una lista di controllo dell'accesso per autorizzare gli utenti a eseguire le operazioni della lista di controllo dell'accesso.

Scarica l'esempio

Nella scheda Strumenti sviluppatore, aprire il riquadro Esempi. Fare clic sul collegamento di download in Marmi con ACL con filtro. Questo pacchetto contiene tre pacchetti secondari:
  • Fine-GrainedAccessControlLibrary.zip:

    Libreria di controllo dell'accesso con filtro. Contiene funzioni in Go che possono essere utilizzate dagli sviluppatori di codici concatenati per creare liste di controllo dell'accesso per le funzioni di codici concatenati.

  • fgACL_MarbleSampleCC.zip:

    Campione di marmi con liste di controllo dell'accesso implementate. Include una varietà di funzioni per consentire di esaminare come utilizzare liste, gruppi e risorse di controllo dell'accesso con filtro per limitare le funzioni a determinati utenti/identità.

  • fgACL-NodeJSCode.zip:

    Script Node.js che utilizzano l'SDK Node.js per eseguire l'esempio. È possibile utilizzare registerEnrollUser.js per registrare nuovi utenti con la piattaforma Blockchain. È possibile utilizzare invokeQueryCC.js per eseguire transazioni su un'istanza della piattaforma Blockchain.

Terminologia e acronimi

Termine Descrizione
Identità Un certificato X509 che rappresenta l'identità del chiamante o l'identità specifica che il codice concatenato desidera controllare.
Pattern identità

Modello che corrisponde a una o più identità. Vengono suggeriti i pattern seguenti:

  • Nome comune oggetto X.509 - CN
  • X.509 Unità organizzativa soggetto - Unità organizzativa soggetto
  • Organizzazione oggetto X.509 - O
  • Gruppo come definito in questa libreria - GRP
  • Attributo - ATTR

Il formato di un pattern è essenzialmente solo una stringa con un prefisso. Ad esempio, per definire un pattern che corrisponda a qualsiasi identità nell'organizzazione "example.com", il pattern sarebbe "%O%example.com".

Risorsa Nome di tutto ciò a cui il codice concatenato desidera controllare l'accesso. Per questa libreria si tratta solo di una stringa arbitraria denominata contenuta in uno spazio di nomi semplice. La semantica del nome è completamente all'altezza del codice concatenato.
Raggruppa Gruppo di pattern di identità.
ACL Lista di controllo dell'accesso: un'entità denominata che dispone di una lista di pattern di identità, una lista di tipi di accesso quali "READ", "CREATE", "INVOKE", "FORWARD" o qualsiasi elemento che il codice concatenato desidera utilizzare. Questa libreria utilizza i tipi di accesso CREATE, READ, UPDATE e DELETE (operazioni CRUD standard) per gestire le proprie informazioni. Oltre a questi quattro come si riferiscono agli elementi in questa libreria, sono solo stringhe senza semantica implicita. Un'applicazione può decidere di utilizzare gli accessi di "A", "B" e "CUSTOM".