Compartir a través de


Inicio rápido: Biblioteca cliente de Azure Confidential Ledger para .NET

Introducción a la biblioteca cliente de Azure Confidential Ledger para .NET. Azure Confidential Ledger es un servicio nuevo y muy seguro para administrar registros de datos confidenciales. En función de un modelo de cadena de bloques con permisos, Azure Confidential Ledger ofrece ventajas únicas de integridad de datos. Esto incluye inmutabilidad, hacer que el libro de contabilidad solo se pueda anexar, y la protección frente a manipulaciones, para asegurar que todos los registros se mantengan intactos.

En este inicio rápido, aprenderá a crear entradas en un libro de contabilidad confidencial de Azure mediante la biblioteca cliente de .NET.

Recursos de la biblioteca cliente de Azure Confidential Ledger:

Documentación de referencia de la API | Código fuente de la biblioteca | Paquete (NuGet)

Prerrequisitos

También necesita un libro de contabilidad confidencial en ejecución y un usuario registrado con los privilegios de Administrator. Puede crear un libro de contabilidad confidencial (y un administrador) mediante Azure Portal, la CLI de Azure o Azure PowerShell.

Configuración

Creación de una aplicación de consola de .NET

  1. En un shell de comandos, ejecute el siguiente comando para crear un proyecto llamado acl-app:

    dotnet new console --name acl-app
    
  2. Cambie al directorio acl-app recién creado y ejecute el siguiente comando para compilar el proyecto:

    dotnet build
    

    La salida de la compilación no debe contener advertencias ni errores.

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

Instalar el paquete

Instale la biblioteca cliente de Confidential Ledger para .NET con [NuGet][client_nuget_package]:

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

Para este inicio rápido, también debe instalar la biblioteca cliente del SDK de Azure para Azure Identity:

dotnet add package Azure.Identity

Modelo de objetos

La biblioteca cliente del libro de contabilidad confidencial de Azure para .NET permite crear una entrada de libro de contabilidad inmutable en el servicio. En la sección Ejemplos de código se muestra cómo crear una escritura en el libro de contabilidad y recuperar el identificador de transacción.

Ejemplos de código

Agregar directivas

Agregue las directivas siguientes al principio de Program.cs:

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

Autenticación y creación de un cliente

En este inicio rápido se emplea el usuario que ha iniciado sesión para autenticarlo en Azure Confidential Ledger, que es el método preferido para el desarrollo local. El nombre del libro de contabilidad confidencial se expande al URI del almacén de claves, con el formato "https://<your-confidential-ledger-name>.confidential-ledger.azure.com". En este ejemplo se usa la clase "DefaultAzureCredential()" de la biblioteca de identidades de Azure, que permite usar el mismo código en distintos entornos con diferentes opciones para proporcionar identidad.

credential = DefaultAzureCredential()

Escribir en el registro confidencial

Ahora puede escribir en el libro de contabilidad confidencial con el método PostLedgerEntry .

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

Obtención del identificador de transacción

El método PostLedgerEntry devuelve un objeto que contiene la transacción de la entrada que acaba de escribir en el libro de contabilidad confidencial. Para obtener el identificador de transacción, acceda al valor "Id":

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

Lectura del libro de contabilidad confidencial

Con un identificador de transacción, también puede leer desde el libro de contabilidad confidencial mediante el método GetLedgerEntry:

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

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

Console.WriteLine(entryContents);

Prueba y comprobación

En la consola directamente, ejecute el siguiente comando para ejecutar la aplicación.

dotnet run

Código de ejemplo

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

        }
    }
}

Pasos siguientes

Para más información sobre Azure Confidential Ledger y cómo integrarlo con las aplicaciones, consulte los siguientes artículos: