Share via


Guida introduttiva: Creare una risorsa CCF gestita di Azure con Azure SDK per Java

CCF gestito di Azure è un servizio nuovo e altamente sicuro per la distribuzione di applicazioni riservate. Per altre informazioni su CCF gestito di Azure, vedere Informazioni su Azure Managed Confidential Consortium Framework.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Documentazione | di riferimento sulle API Pacchetto del codice | sorgente della libreria (repository centrale maven)

Prerequisiti

Impostare

Questa guida introduttiva usa la libreria di identità di Azure, insieme all'interfaccia della riga di comando di Azure o azure PowerShell, per autenticare l'utente nei servizi di Azure. Gli sviluppatori possono anche usare Visual Studio o Visual Studio- OpenSSL in un computer che esegue Windows o Linux.o Code per autenticare le chiamate. Per altre informazioni, vedere Autenticare il client con la libreria client di Identità di Azure.

Accedere ad Azure

Accedere ad Azure usando il comando az login dell'interfaccia della riga di comando di Azure o il cmdlet azure PowerShell Connessione-AzAccount.

Se l'interfaccia della riga di comando o PowerShell può aprire il browser predefinito, verrà caricata una pagina di accesso di Azure. In caso contrario, visitare https://aka.ms/devicelogin e immettere il codice di autorizzazione visualizzato nel terminale.

Se richiesto, accedere con le credenziali dell'account nel browser.

Installare le dipendenze

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-confidentialledger</artifactId>
    <version>1.0.0-beta.3</version>
</dependency>

Creare un gruppo di risorse

Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite le risorse di Azure. Usare il cmdlet New-AzResourceGroup di Azure PowerShell per creare un gruppo di risorse denominato myResourceGroup nella posizione southcentralus.

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

Registrare il provider di risorse

Il tipo di risorsa CCF gestito di Azure deve essere registrato nella sottoscrizione prima di creare una risorsa.

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

az provider register --namespace Microsoft.ConfidentialLedger

Creare membri

Generare una coppia di chiavi per il membro. Al termine dei comandi seguenti, la chiave pubblica del membro viene salvata in member0_cert.pem e la chiave privata viene salvata in member0_privk.pem.

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"

Creare l'applicazione Java

La libreria Azure SDK per Java (azure-resourcemanager-confidentialledger) consente operazioni sulle risorse CCF gestite, ad esempio la creazione e l'eliminazione, l'elenco delle risorse associate a una sottoscrizione e la visualizzazione dei dettagli di una risorsa specifica. Il frammento di codice seguente crea e visualizza le proprietà di una risorsa CCF gestita.

import com.azure.core.management.AzureEnvironment;
import com.azure.core.management.exception.ManagementException;
import com.azure.core.management.profile.AzureProfile;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.resourcemanager.confidentialledger.ConfidentialLedgerManager;
import com.azure.resourcemanager.confidentialledger.fluent.models.ManagedCcfInner;
import com.azure.resourcemanager.confidentialledger.models.DeploymentType;
import com.azure.resourcemanager.confidentialledger.models.LanguageRuntime;
import com.azure.resourcemanager.confidentialledger.models.ManagedCcfProperties;
import com.azure.resourcemanager.confidentialledger.models.MemberIdentityCertificate;
import java.util.*;

public class AzureJavaSdkClient {
    public static void main(String[] args) {
      try {
          AzureProfile profile = new AzureProfile("<tenant id>","<subscription id>", AzureEnvironment.AZURE);
          ConfidentialLedgerManager manager = ConfidentialLedgerManager.authenticate(new DefaultAzureCredentialBuilder().build(), profile);

          MemberIdentityCertificate member0 = new MemberIdentityCertificate()
              .withCertificate("-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAgIUA0YHcPpUCtd...0Yet/xU4G0d71ZtULNWo\n-----END CERTIFICATE-----")
              .withTags(Map.of("Dept", "IT"));
          List<MemberIdentityCertificate> members = new ArrayList<MemberIdentityCertificate>();
          members.add(member0);

          DeploymentType deployment = new DeploymentType().withAppSourceUri("").withLanguageRuntime(LanguageRuntime.JS);
          ManagedCcfProperties properties = new ManagedCcfProperties()
              .withDeploymentType(deployment)
              .withNodeCount(5)
              .withMemberIdentityCertificates(members);

          ManagedCcfInner inner = new ManagedCcfInner().withProperties(properties).withLocation("southcentralus");

          // Send Create request
          manager.serviceClient().getManagedCcfs().create("myResourceGroup", "confidentialbillingapp", inner);

          // Print the Managed CCF resource properties
          ManagedCcfInner app = manager.serviceClient().getManagedCcfs().getByResourceGroup("myResourceGroup", "confidentialbillingapp");
          printAppInfo(app);

          // Delete the resource
          manager.serviceClient().getManagedCcfs().delete("myResourceGroup", "confidentialbillingapp");
        } catch (ManagementException ex) {
            // The x-ms-correlation-request-id is located in the Header
            System.out.println(ex.getResponse().getHeaders().toString());
            System.out.println(ex);
        }
    }

    private static void printAppInfo(ManagedCcfInner app) {
        System.out.println("App Name: " + app.name());
        System.out.println("App Id: " + app.id());
        System.out.println("App Location: " + app.location());
        System.out.println("App type: " + app.type());
        System.out.println("App Properties Uri: " + app.properties().appUri());
        System.out.println("App Properties Language Runtime: " + app.properties().deploymentType().languageRuntime());
        System.out.println("App Properties Source Uri: " + app.properties().deploymentType().appSourceUri());
        System.out.println("App Properties NodeCount: " + app.properties().nodeCount());
        System.out.println("App Properties Identity Uri: " + app.properties().identityServiceUri());
        System.out.println("App Properties Cert 0: " + app.properties().memberIdentityCertificates().get(0).certificate());
        System.out.println("App Properties Cert tags: " + app.properties().memberIdentityCertificates().get(0).tags());
    }
}

Pulire le risorse

Altri articoli CCF gestiti possono basarsi su questa guida introduttiva. Se si prevede di continuare a lavorare con le guide introduttive e le esercitazioni successive, è possibile lasciare queste risorse sul posto.

In caso contrario, al termine delle risorse create in questo articolo, usare il comando az group delete dell'interfaccia della riga di comando di Azure per eliminare il gruppo di risorse e tutte le risorse contenute.

az group delete --resource-group myResourceGroup

Passaggi successivi

In questa guida introduttiva è stata creata una risorsa CCF gestita usando Azure SDK per Java. Per altre informazioni su CCF gestito di Azure e su come integrarlo con le applicazioni, continuare con questi articoli: