Démarrage rapide : Bibliothèque de client du registre confidentiel Azure pour .NET

Prenez en main la bibliothèque de client du registre confidentiel Microsoft Azure pour .NET. Le registre confidentiel Azure est un nouveau service, hautement sécurisé, pour la gestion des enregistrements de données sensibles. Sur la base d’un modèle de blockchain, Registre confidentiel Azure offre des avantages uniques en matière d’intégrité des données. Il s’agit notamment de l’immuabilité, qui autorise uniquement l’ajout au registre, et de l’inviolabilité pour garantir que tous les enregistrements sont conservés intacts.

Dans ce guide de démarrage rapide, vous allez apprendre à créer des entrées dans un registre confidentiel Azure à l’aide de la bibliothèque de client .NET

Ressources de la bibliothèque de client du registre confidentiel Azure :

Documentation de référence sur l’API | Code source de la bibliothèque | Package (NuGet)

Prérequis

Vous aurez également besoin d’un registre confidentiel en cours d’exécution et d’un utilisateur enregistré disposant des privilèges Administrator. Vous pouvez créer un registre confidentiel (et un administrateur) à l’aide du portail Azure, d’Azure CLI ou d’Azure PowerShell.

Programme d’installation

Créer une application console .NET

  1. Dans un shell de commandes, exécutez la commande suivante pour créer un projet nommé acl-app :

    dotnet new console --name acl-app
    
  2. Accédez au répertoire acl-app nouvellement créé, puis exécutez la commande suivante pour générer le projet :

    dotnet build
    

    La sortie de génération ne doit contenir aucun avertissement ni erreur.

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

Installer le package

Installez la bibliothèque de client de registre confidentiel pour .NET avec [NuGet][client_nuget_package] :

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

Pour ce guide de démarrage rapide, vous devez également installer la bibliothèque de client du SDK Azure pour Azure Identity :

dotnet add package Azure.Identity

Modèle objet

La bibliothèque de client de registre confidentiel Azure pour .NET vous permet de créer une entrée de registre immuable dans le service. La section Exemples de code montre comment créer une écriture dans le registre et récupérer l’ID de transaction.

Exemples de code

Ajouter des directives

Ajoutez les directives suivantes en haut de Program.cs :

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

Authentifier et créer un client

Dans ce guide de démarrage rapide, l’utilisateur connecté est utilisé pour l’authentification auprès du registre confidentiel Azure, qui est la méthode recommandée pour le développement local. Le nom de votre registre confidentiel est étendu à l’URI du coffre de clés, au format « https://<your-confidential-ledger-name>.confidential-ledger.azure.com ». Cet exemple utilise la classe « DefaultAzureCredential() » de la bibliothèque Azure Identity, ce qui permet d’utiliser le même code dans différents environnements avec des options différentes pour fournir une identité.

credential = DefaultAzureCredential()

Écrire dans le registre confidentiel

Vous pouvez maintenant écrire dans le registre confidentiel avec la méthode PostLedgerEntry.

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

Obtenir l’ID de transaction

La méthode PostLedgerEntry retourne un objet qui contient la transaction de l’entrée que vous venez d’écrire dans le registre confidentiel. Pour obtenir l’ID de transaction, accédez à la valeur « ID » :

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

Lire à partir du registre confidentiel

Avec un ID de transaction, vous pouvez également lire à partir du registre confidentiel à l’aide de la méthode GetLedgerEntry :

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

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

Console.WriteLine(entryContents);

Tester et vérifier

Dans la console directement, exécutez la commande suivante pour exécuter l’application.

dotnet run

Exemple de code

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

        }
    }
}

Étapes suivantes

Pour plus d’informations sur le registre confidentiel Azure et comment l’intégrer à vos applications, consultez les articles suivants :