Guida introduttiva: Libreria client del libro mastro riservato di Azure per .NET

Introduzione alla libreria client del libro mastro riservato di Azure per .NET. Il libro mastro riservato di Azure è un servizio nuovo e altamente sicuro per la gestione dei record di dati sensibili. In base a un modello blockchain autorizzato, il libro mastro riservato di Azure offre vantaggi univoci per l'integrità dei dati. Questi includono immutabilità, rendere il libro mastro solo append-only e manomissione, per garantire che tutti i record siano mantenuti intatti.

In questa guida introduttiva si apprenderà come creare voci in un libro mastro riservato di Azure usando la libreria client .NET

Risorse della libreria client del libro mastro riservato di Azure:

Documentazione di riferimento dell'API | Codice sorgente della libreria | Pacchetto (NuGet)

Prerequisiti

Sarà necessario anche un libro mastro riservato in esecuzione e un utente registrato con i Administrator privilegi. È possibile creare un libro mastro riservato (e un amministratore) usando il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell.

Eseguire la configurazione

Creare una nuova app console .NET

  1. In una shell dei comandi eseguire questo comando per creare un progetto denominato acl-app:

    dotnet new console --name acl-app
    
  2. Passare alla directory acl-app appena creata ed eseguire il comando seguente per compilare il progetto:

    dotnet build
    

    L'output di compilazione non deve contenere alcun avviso o errore.

    Build succeeded.
     0 Warning(s)
     0 Error(s)
    

Installare il pacchetto

Installare la libreria client Confidential Ledger per .NET con [NuGet][client_nuget_package]:

dotnet add package Azure.Security.ConfidentialLedger --version 1.0.0

Per questo argomento di avvio rapido è anche necessario installare la libreria client di Azure SDK per Azure Identity:

dotnet add package Azure.Identity

Modello a oggetti

La libreria client del libro mastro riservato di Azure per .NET consente di creare una voce libro mastro non modificabile nel servizio. La sezione Esempi di codice illustra come creare una scrittura nel libro mastro e recuperare l'ID transazione.

Esempi di codice

Aggiungere le direttive

Aggiungere le direttive seguenti all'inizio di Program.cs:

using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.ConfidentialLedger;
using Azure.Security.ConfidentialLedger.Certificate;

Autenticare e creare un client

In questa guida introduttiva l'utente connesso viene usato per eseguire l'autenticazione nel libro mastro riservato di Azure, che è il metodo preferito per lo sviluppo locale. Il nome del libro mastro riservato viene espanso all'URI dell'insieme di credenziali delle chiavi, nel formato "https://< your-confidential-ledger-name.confidential-ledger.azure.com>". Questo esempio usa la classe 'DefaultAzureCredential()' della libreria di identità di Azure, che consente di usare lo stesso codice in ambienti diversi con opzioni diverse per specificare l'identità.

credential = DefaultAzureCredential()

Scrivere nel libro mastro riservato

È ora possibile scrivere nel libro mastro riservato con il metodo PostLedgerEntry .

Operation postOperation = ledgerClient.PostLedgerEntry(
    waitUntil: WaitUntil.Completed,
    RequestContent.Create(
        new { contents = "Hello world!" }));

Ottenere l'ID transazione

Il metodo PostLedgerEntry restituisce un oggetto contenente la transazione della voce appena scritta nel libro mastro riservato. Per ottenere l'ID transazione, accedere al valore "Id":

string transactionId = postOperation.Id;
Console.WriteLine($"Appended transaction with Id: {transactionId}");

Leggere dal libro mastro riservato

Con un ID transazione, è anche possibile leggere dal libro mastro riservato usando il metodo GetLedgerEntry :

Response ledgerResponse = ledgerClient.GetLedgerEntry(transactionId, collectionId);

string entryContents = JsonDocument.Parse(ledgerResponse.Content)
    .RootElement
    .GetProperty("entry")
    .GetProperty("contents")
    .GetString();

Console.WriteLine(entryContents);

Test e verifica

Nella console eseguire direttamente il comando seguente per eseguire l'app.

dotnet run

Codice di esempio

using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.ConfidentialLedger;
using Azure.Security.ConfidentialLedger.Certificate;
    
namespace acl_app
{
    class Program
    {
        static Task Main(string[] args)
        {

            // Replace with the name of your confidential ledger

            const string ledgerName = "myLedger";
            var ledgerUri = $"https://{ledgerName}.confidential-ledger.azure.com";

            // Create a confidential ledger client using the ledger URI and DefaultAzureCredential

            var ledgerClient = new ConfidentialLedgerClient(new Uri(ledgerUri), new DefaultAzureCredential());

            // Write to the ledger

            Operation postOperation = ledgerClient.PostLedgerEntry(
                waitUntil: WaitUntil.Completed,
                RequestContent.Create(
                    new { contents = "Hello world!" }));
            
            // Access the transaction ID of the ledger write

            string transactionId = postOperation.Id;
            Console.WriteLine($"Appended transaction with Id: {transactionId}");


            // Use the transaction ID to read from the ledger

            Response ledgerResponse = ledgerClient.GetLedgerEntry(transactionId, collectionId);

            string entryContents = JsonDocument.Parse(ledgerResponse.Content)
                .RootElement
                .GetProperty("entry")
                .GetProperty("contents")
                .GetString();

            Console.WriteLine(entryContents);

        }
    }
}

Passaggi successivi

Per altre informazioni sul libro mastro riservato di Azure e su come integrarlo con le app, vedere gli articoli seguenti: