Início rápido: biblioteca de clientes do razão confidencial do Azure para .NET
Comece a usar a biblioteca de clientes do razão confidencial do Azure para .NET. O razão confidencial do Azure é um serviço novo e altamente seguro para gerenciar registros de dados confidenciais. Baseado em um modelo de blockchain com permissão, o Razão Confidencial do Azure oferece vantagens exclusivas de integridade de dados. Isso inclui a imutabilidade, tornando o razão somente para acréscimo, e a proteção contra adulteração, para garantir que todos os registros permaneçam intactos.
Neste início rápido, você aprenderá a criar entradas em um razão confidencial do Azure usando a biblioteca de clientes para .NET
Recursos da biblioteca de clientes do razão confidencial do Azure:
Documentação de referência da API | Código-fonte da biblioteca | Pacote (NuGet)
Pré-requisitos
- Uma assinatura do Azure – crie uma gratuitamente
- SDK do .NET Core 3.1 ou posterior
- CLI do Azure
Você também precisará de uma razão confidencial em execução e um usuário registrado com os privilégios Administrator
. Você pode criar um razão confidencial (e um administrador) usando o portal do Azure, a CLI do Azure ou o Azure PowerShell.
Configuração
Criar um novo aplicativo de console do .NET
Em um shell de comando, execute o seguinte comando para criar um projeto chamado
acl-app
:dotnet new console --name acl-app
Altere para o diretório acl-app recém-criado e execute o seguinte comando para compilar o projeto:
dotnet build
A saída de compilação não deve conter nenhum aviso ou erro.
Build succeeded. 0 Warning(s) 0 Error(s)
Instalar o pacote
Instale a biblioteca de clientes do Razão Confidencial para .NET com [NuGet][client_nuget_package]:
dotnet add package Azure.Security.ConfidentialLedger --version 1.0.0
Para este início rápido, você também precisará instalar a biblioteca de clientes do SDK do Azure para a Identidade do Azure:
dotnet add package Azure.Identity
Modelo de objeto
A biblioteca de clientes do razão confidencial do Azure para .NET permite que você crie uma entrada de razão imutável no serviço. A seção Exemplos de código mostra como criar uma gravação no razão e recuperar a ID da transação.
Exemplos de código
Adicionar diretivas
Adicione as seguintes diretivas à parte superior de Program.cs:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.ConfidentialLedger;
using Azure.Security.ConfidentialLedger.Certificate;
Autenticar e criar um cliente
Neste guia de início rápido, o usuário conectado é usado para se autenticar no razão confidencial do Azure, que é o método preferencial para o desenvolvimento local. O nome do razão confidencial é expandido para o URI do cofre de chaves, no formato "https://<your-confidential-ledger-name>.confidential-ledger.azure.com". Este exemplo usa a classe 'DefaultAzureCredential()' da Biblioteca de Identidades do Azure, que permite usar o mesmo código em diferentes ambientes com outras opções para fornecer a identidade.
credential = DefaultAzureCredential()
Gravar no razão confidencial
Agora você pode gravar no razão confidencial usando o método PostLedgerEntry.
Operation postOperation = ledgerClient.PostLedgerEntry(
waitUntil: WaitUntil.Completed,
RequestContent.Create(
new { contents = "Hello world!" }));
Obter ID da transação
O método PostLedgerEntry retorna um objeto que contém a transação da entrada que você acabou de gravar no razão confidencial. Para obter a ID da transação, acesse o valor "ID":
string transactionId = postOperation.Id;
Console.WriteLine($"Appended transaction with Id: {transactionId}");
Ler no razão confidencial
Com uma ID da transação, você também pode ler no razão confidencial usando o método GetLedgerEntry:
Response ledgerResponse = ledgerClient.GetLedgerEntry(transactionId, collectionId);
string entryContents = JsonDocument.Parse(ledgerResponse.Content)
.RootElement
.GetProperty("entry")
.GetProperty("contents")
.GetString();
Console.WriteLine(entryContents);
Testar e verificar
No console diretamente, use o comando a seguir para executar o aplicativo.
dotnet run
Código de exemplo
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);
}
}
}
Próximas etapas
Para saber mais sobre o razão confidencial do Azure e como integrá-lo aos aplicativos, confira os seguintes artigos: