Aracılığıyla paylaş


Hızlı Başlangıç: .NET için Azure SDK'sını kullanarak Azure Yönetilen CCF kaynağı oluşturma

Azure Yönetilen CCF (Yönetilen CCF), gizli uygulamaları dağıtmak için yeni ve son derece güvenli bir hizmettir. Yönetilen CCF hakkında daha fazla bilgi edinmek ve örnek kullanım örnekleri için bkz . Azure Yönetilen Gizli Konsorsiyum Çerçevesi Hakkında.

Bu hızlı başlangıçta.NET istemci yönetim kitaplığını kullanarak Yönetilen CCF kaynağı oluşturmayı öğreneceksiniz.

Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.

API başvuru belgeleri | Kitaplık kaynak kodu | Paketi (NuGet)

Ön koşullar

Kurulum

Yeni .NET konsol uygulaması oluşturma

  1. Komut kabuğunda aşağıdaki komutu çalıştırarak adlı managedccf-appbir proje oluşturun:

    dotnet new console --name managedccf-app
    
  2. Yeni oluşturulan managedccf-app dizinine geçin ve projeyi oluşturmak için aşağıdaki komutu çalıştırın:

    dotnet build
    

    Derleme çıkışı hiçbir uyarı veya hata içermemelidir.

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

paketini yükleyin

NuGet ile .NET için Azure Yönetilen CCF istemci kitaplığını yükleyin:

dotnet add package Azure.ResourceManager.ConfidentialLedger --version 1.1.0-beta.2

Bu hızlı başlangıç için Azure Identity için Azure SDK istemci kitaplığını da yüklemeniz gerekir:

dotnet add package Azure.Identity

Kaynak grubu oluşturma

Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. Southcentralus konumunda myResourceGroup adlı bir kaynak grubu oluşturmak için Azure PowerShell New-AzResourceGroup cmdlet'ini kullanın.

New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"

Kaynak sağlayıcısını kaydetme

Kaynak oluşturmadan önce Azure Yönetilen CCF kaynak türünün aboneliğe kaydedilmesi gerekir.

az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF

az provider register --namespace Microsoft.ConfidentialLedger

Üye oluşturma

Üye için bir anahtar çifti oluşturun. Aşağıdaki komutlar tamamlandıktan sonra, üyenin ortak anahtarı öğesine member0_cert.pem kaydedilir ve özel anahtar öğesine member0_privk.pemkaydedilir.

openssl ecparam -out "member0_privk.pem" -name "secp384r1" -genkey
openssl req -new -key "member0_privk.pem" -x509 -nodes -days 365 -out "member0_cert.pem" -"sha384" -subj=/CN="member0"

.NET uygulamasını oluşturma

Yönetim düzlemi istemci kitaplığını kullanma

.NET için Azure SDK (azure/arm-confidentialledger), Yönetilen CCF kaynakları üzerinde oluşturma ve silme, abonelikle ilişkili kaynakları listeleme ve belirli bir kaynağın ayrıntılarını görüntüleme gibi işlemlere olanak tanır. Aşağıdaki kod parçası, Yönetilen CCF kaynağının özelliklerini oluşturur ve görüntüler.

Aşağıdaki yönergeleri Program.cs dosyasının en üstüne ekleyin:

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Azure;
using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.ConfidentialLedger;
using Azure.ResourceManager.ConfidentialLedger.Models;
using Azure.ResourceManager.Resources;

Kimlik doğrulaması yapma ve istemci oluşturma

Bu hızlı başlangıçta oturum açmış kullanıcı, yerel geliştirme için tercih edilen yöntem olan Azure Yönetilen CCF'de kimlik doğrulaması yapmak için kullanılır. Bu örnekte Azure Kimlik Kitaplığı'ndan 'DefaultAzureCredential()' sınıfı kullanılmaktadır. Bu sınıf, kimlik sağlamak için farklı seçeneklerle farklı ortamlarda aynı kodun kullanılmasına olanak tanır.

// get your azure access token, for more details of how Azure SDK get your access token, please refer to https://learn.microsoft.com/en-us/dotnet/azure/sdk/authentication?tabs=command-line
TokenCredential cred = new DefaultAzureCredential();

Azure Resource Manager istemcisi oluşturma ve belirteç kimlik bilgilerini kullanarak kimlik doğrulaması yapma.

// authenticate your client
ArmClient client = new ArmClient(cred);

Yönetilen CCF kaynağı oluşturma

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation
string appName = "confidentialbillingapp";
ManagedCcfData data = new ManagedCcfData(new AzureLocation("SouthCentralUS"))
{
    Properties = new ManagedCcfProperties()
    {
        MemberIdentityCertificates =
        {
            new ConfidentialLedgerMemberIdentityCertificate()
            {
                Certificate = "-----BEGIN CERTIFICATE-----MIIBsjCCATigA...LjYAGDSGi7NJnSkA-----END CERTIFICATE-----",
                Encryptionkey = "",
                Tags = BinaryData.FromObjectAsJson(new Dictionary<string, object>()
                {
                    ["additionalProps1"] = "additional properties"
                }),
            }
        },
        DeploymentType = new ConfidentialLedgerDeploymentType()
        {
            LanguageRuntime = ConfidentialLedgerLanguageRuntime.JS,
            AppSourceUri = new Uri(""),
        },
        NodeCount = 3,
    },
    Tags =
    {
        ["additionalProps1"] = "additional properties",
    },
};

ArmOperation<ManagedCcfResource> lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, appName, data);
ManagedCcfResource result = lro.Value;

// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
ManagedCcfData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");

Yönetilen CCF kaynağının özelliklerini görüntüleme

Aşağıdaki kod parçası Yönetilen CCF kaynağını alır ve özelliklerini yazdırır.

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation
string appName = "confidentialbillingapp";
ManagedCcfResource result = await collection.GetAsync(appName);

// the variable result is a resource, you could call other operations on this instance as well
// but just for demo, we get its data from this resource instance
ManagedCcfData resourceData = result.Data;
// for demo we just print out the id
Console.WriteLine($"Succeeded on id: {resourceData.Id}");

Bir Kaynak Grubundaki Yönetilen CCF kaynaklarını listeleme

Aşağıdaki kod parçası, bir kaynak grubundaki Yönetilen CCF kaynaklarını alır.

// this example assumes you already have this ResourceGroupResource created on azure
// for more information of creating ResourceGroupResource, please refer to the document of ResourceGroupResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
string resourceGroupName = "myResourceGroup";
ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = client.GetResourceGroupResource(resourceGroupResourceId);

// get the collection of this ManagedCcfResource
ManagedCcfCollection collection = resourceGroupResource.GetManagedCcfs();

// invoke the operation and iterate over the result
await foreach (ManagedCcfResource item in collection.GetAllAsync())
{
    // the variable item is a resource, you could call other operations on this instance as well
    // but just for demo, we get its data from this resource instance
    ManagedCcfData resourceData = item.Data;
    // for demo we just print out the id
    Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}

Console.WriteLine($"Succeeded");

Abonelikteki Yönetilen CCF kaynaklarını listeleme

Aşağıdaki kod parçası bir abonelikteki Yönetilen CCF kaynaklarını alır.

// this example assumes you already have this SubscriptionResource created on azure
// for more information of creating SubscriptionResource, please refer to the document of SubscriptionResource
string subscriptionId = "0000000-0000-0000-0000-000000000001";
ResourceIdentifier subscriptionResourceId = SubscriptionResource.CreateResourceIdentifier(subscriptionId);
SubscriptionResource subscriptionResource = client.GetSubscriptionResource(subscriptionResourceId);

// invoke the operation and iterate over the result
await foreach (ManagedCcfResource item in subscriptionResource.GetManagedCcfsAsync())
{
    // the variable item is a resource, you could call other operations on this instance as well
    // but just for demo, we get its data from this resource instance
    ManagedCcfData resourceData = item.Data;
    // for demo we just print out the id
    Console.WriteLine($"Succeeded on id: {resourceData.Id}");
}

Console.WriteLine($"Succeeded");

Kaynakları temizleme

Diğer Yönetilen CCF makaleleri bu hızlı başlangıcı temel alabilir. Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz.

Aksi takdirde, bu makalede oluşturulan kaynakları tamamladığınızda, kaynak grubunu ve içerdiği tüm kaynakları silmek için Azure CLI az group delete komutunu kullanın.

az group delete --resource-group myResourceGroup

Sonraki adımlar

Bu hızlı başlangıçta, Gizli Kayıt Defteri için Azure Python SDK'sını kullanarak bir Yönetilen CCF kaynağı oluşturdunuz. Azure Yönetilen CCF ve uygulamalarınızla tümleştirme hakkında daha fazla bilgi edinmek için şu makalelere geçin: