Schnellstart: Azure Confidential Ledger-Clientbibliothek für .NET

Führen Sie erste Schritte mit der Azure Confidential Ledger-Clientbibliothek für .NET aus. Azure Confidential Ledger ist ein neuer und äußerst sicherer Dienst für die Verwaltung vertraulicher Datensätze. Azure Confidential Ledger basiert auf einem genehmigten Blockchainmodell und bietet Vorteile für die Datenintegrität, die Sie nirgendwo anders finden. Dazu zählen die Unveränderlichkeit, sodass der Ledger nur Anfügevorgänge unterstützt, und der Manipulationsschutz, sodass alle Datensätze garantiert intakt bleiben.

In dieser Schnellstartanleitung erfahren Sie, wie Sie Einträge in einem Azure Confidential Ledger mithilfe der .NET-Clientbibliothek erstellen.

Ressourcen der Azure Confidential Ledger-Clientbibliothek:

API-Referenzdokumentation | Quellcode der Bibliothek | Paket (NuGet)

Voraussetzungen

Sie benötigen außerdem eine aktive Confidential Ledger-Instanz und einen registrierten Benutzer mit den Administrator-Berechtigungen. Sie können einen Confidential Ledger (und ein Administrator) im Azure-Portal, über die Azure CLI oder mit Azure PowerShell erstellen.

Einrichten

Erstellen einer neuen .NET-Konsolen-App

  1. Führen Sie in einer Befehlsshell den folgenden Befehl aus, um ein Projekt namens acl-app zu erstellen:

    dotnet new console --name acl-app
    
  2. Wechseln Sie zum neu erstellten Verzeichnis acl-app, und führen Sie den folgenden Befehl aus, um das Projekt zu erstellen:

    dotnet build
    

    Die Buildausgabe sollte keine Warnungen oder Fehler enthalten.

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

Installieren des Pakets

Installieren Sie die Confidential Ledger-Clientbibliothek für .NET mit [NuGet][client_nuget_package]:

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

Für diesen Schnellstart müssen Sie auch die Azure SDK-Clientbibliothek für Azure Identity installieren:

dotnet add package Azure.Identity

Objektmodell

Mit der Azure Confidential Ledger-Clientbibliothek für .NET können Sie einen unveränderlichen Ledger-Eintrag im Dienst erstellen. Im Abschnitt Codebeispiele wird gezeigt, wie Sie einen Schreibvorgang im Ledger erstellen und die Transaktions-ID abrufen.

Codebeispiele

Hinzufügen von Anweisungen

Fügen Sie am Anfang von Program.cs die folgenden Anweisungen hinzu:

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

Authentifizieren und Erstellen eines Clients

In dieser Schnellstartanleitung wird der angemeldete Benutzer zum Authentifizieren bei Azure Confidential Ledger verwendet. Dies ist die bevorzugte Methode für die lokale Entwicklung. Der Name Ihres Confidential Ledgers wird auf den Schlüsseltresor-URI im Format „https://<Ihr-Confidential-Ledger-Name>.confidential-ledger.azure.com“ erweitert. In diesem Beispiel wird die Klasse DefaultAzureCredential() aus der Azure Identity-Bibliothek verwendet, wodurch der gleiche Code in verschiedenen Umgebungen mit verschiedenen Optionen für die Identitätsbereitstellung verwendet werden kann.

credential = DefaultAzureCredential()

Schreiben in den Confidential Ledger

Sie können jetzt mit der Methode PostLedgerEntry in den Confidential Ledger schreiben.

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

Abrufen der Transaktions-ID

Die Methode PostLedgerEntry gibt ein Objekt zurück, das die Transaktion des Eintrags enthält, den Sie gerade in den Confidential Ledger geschrieben haben. Um die Transaktions-ID abzurufen, greifen Sie auf den Wert „Id“ zu:

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

Lesen aus dem Confidential Ledger

Mit einer Transaktions-ID können Sie mit der Methode GetLedgerEntry aus dem Confidential Ledger lesen:

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

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

Console.WriteLine(entryContents);

Testen und Überprüfen

Führen Sie direkt in der Konsole den folgenden Befehl aus, um die App auszuführen.

dotnet run

Beispielcode

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);

        }
    }
}

Nächste Schritte

Weitere Informationen zu Azure Confidential Ledger und zur Integration in Ihre Apps finden Sie in den folgenden Artikeln: