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
- Sottoscrizione di Azure: creare un account gratuitamente
- .NET Core 3.1 SDK o versioni successive
- Interfaccia della riga di comando di Azure
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
In una shell dei comandi eseguire questo comando per creare un progetto denominato
acl-app
:dotnet new console --name acl-app
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: