Delen via


Quickstart: Een Azure Managed CCF-resource maken met behulp van de Azure SDK voor JavaScript en TypeScript

Microsoft Azure Managed CCF (Managed CCF) is een nieuwe en zeer veilige service voor het implementeren van vertrouwelijke toepassingen. Zie Over Azure Managed Confidential Consortium Framework voor meer informatie over Azure Managed CCF.

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

API-referentiedocumentatie | Bibliotheekbroncode | Package (npm)

Vereisten

Instellingen

In deze quickstart wordt gebruikgemaakt van de Azure Identity-bibliotheek, samen met Azure CLI of Azure PowerShell, om de gebruiker te verifiëren bij Azure Services. Ontwikkelaars kunnen ook Visual Studio of Visual Studio Code gebruiken om hun aanroepen te verifiëren. Zie De client verifiëren met de Azure Identity-clientbibliotheek voor meer informatie.

Aanmelden bij Azure

Meld u aan bij Azure met behulp van de Azure CLI az login command of de Azure PowerShell Verbinding maken-AzAccount cmdlet.

az login

Als de CLI of PowerShell uw standaardbrowser kan openen, gebeurt dit en laadt u een Azure-aanmeldingspagina. Anders gaat u naar https://aka.ms/devicelogin en voert u de autorisatiecode in die wordt weergegeven in uw terminal.

Meld u aan met uw accountreferenties in de browser als u hierom wordt gevraagd.

Een nieuw NPM-project initialiseren

Maak in een terminal of opdrachtprompt een geschikte projectmap en initialiseer een npm project. U kunt deze stap overslaan als u een bestaand knooppuntproject hebt.

cd <work folder>
npm init -y

De pakketten installeren

Installeer de Azure Active Directory-identiteitsclientbibliotheek.

npm install --save @azure/identity

Installeer de clientbibliotheek van het Azure Confidential Ledger-beheervlak.

npm install -save @azure/arm-confidentialledger@1.3.0-beta.1

De TypeScript-compiler en -hulpprogramma's globaal installeren

npm install -g typescript

Een brongroep maken

Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Gebruik de Azure PowerShell New-AzResourceGroup-cmdlet om een resourcegroep met de naam myResourceGroup te maken op de locatie southcentralus .

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

De resourceprovider registreren

Het azure managed CCF-resourcetype moet worden geregistreerd in het abonnement voordat u een resource maakt.

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

az provider register --namespace Microsoft.ConfidentialLedger

Leden maken

Genereer een sleutelpaar voor het lid. Nadat de volgende opdrachten zijn voltooid, wordt de openbare sleutel van het lid opgeslagen en member0_cert.pem wordt de persoonlijke sleutel opgeslagen 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"

De JavaScript-toepassing maken

De clientbibliotheek voor het beheervlak gebruiken

Met de Azure SDK voor JavaScript- en TypeScript-bibliotheek azure/arm-confidentialledger kunt u bewerkingen uitvoeren op beheerde CCF-resources, zoals het maken en verwijderen, het weergeven van de resources die zijn gekoppeld aan een abonnement en de details van een specifieke resource bekijken.

Als u de onderstaande voorbeelden wilt uitvoeren, slaat u de codefragmenten op in een bestand met een .ts extensie in uw projectmap en compileert u het als onderdeel van uw TypeScript-project of compileert u het script afzonderlijk in JavaScript door het volgende uit te voeren:

tsc <filename.ts>

Het gecompileerde JavaScript-bestand heeft dezelfde naam, maar een *.js extensie. Voer vervolgens het script uit in nodeJS:

node <filename.js>

Met de volgende TypeScript-voorbeeldcode worden de eigenschappen van een beheerde CCF-resource gemaakt en weergegeven.

import  { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";

// Please replace these variables with appropriate values for your project
const subscriptionId = "0000000-0000-0000-0000-000000000001";
const rgName = "myResourceGroup";
const ledgerId = "testApp";
const memberCert0 = "-----BEGIN CERTIFICATE-----\nMIIBvjCCAUSgAwIBAg...0d71ZtULNWo\n-----END CERTIFICATE-----";
const memberCert1 = "-----BEGIN CERTIFICATE-----\nMIIBwDCCAUagAwIBAgI...2FSyKIC+vY=\n-----END CERTIFICATE-----";

async function main() {
    console.log("Creating a new instance.")
    const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);

    const properties = <ManagedCCFProperties> {
        deploymentType: <DeploymentType> {
            appSourceUri: "",
            languageRuntime: KnownLanguageRuntime.JS
        },
        memberIdentityCertificates: [
            <MemberIdentityCertificate>{
                certificate: memberCert0,
                encryptionkey: "",
                tags: { 
                    "owner":"member0"
                }
            },
            <MemberIdentityCertificate>{
                certificate: memberCert1,
                encryptionkey: "",
                tags: { 
                    "owner":"member1"
                }
            },
        ],
        nodeCount: 3,
    };

    const mccf = <ManagedCCF> {
        location: "SouthCentralUS",
        properties: properties,
    }

    const createResponse = await client.managedCCFOperations.beginCreateAndWait(rgName, ledgerId, mccf);
    console.log("Created. Instance id: " +  createResponse.id);

    // Get details of the instance
    console.log("Getting instance details.");
    const getResponse = await client.managedCCFOperations.get(rgName, ledgerId);
    console.log(getResponse.properties?.identityServiceUri);
    console.log(getResponse.properties?.nodeCount);

    // List mccf instances in the RG
    console.log("Listing the instances in the resource group.");
    const instancePages = await client.managedCCFOperations.listByResourceGroup(rgName).byPage();
    for await(const page of instancePages){
        for(const instance of page)
        {
            console.log(instance.name + "\t" + instance.location + "\t" + instance.properties?.nodeCount);
        }
    }

    console.log("Delete the instance.");
    await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
    console.log("Deleted.");
}

(async () => {
    try {
        await main();
    } catch(err) {
        console.error(err);
    }
})();

De beheerde CCF-resource verwijderen

Met het volgende codefragment wordt de beheerde CCF-resource verwijderd. Andere beheerde CCF-artikelen kunnen voortbouwen op deze quickstart. Als u van plan bent om door te gaan met de volgende quickstarts en zelfstudies, wilt u deze resources mogelijk behouden.

import  { ConfidentialLedgerClient, ManagedCCFProperties, ManagedCCF, KnownLanguageRuntime, DeploymentType, MemberIdentityCertificate } from "@azure/arm-confidentialledger";
import { DefaultAzureCredential } from "@azure/identity";

const subscriptionId = "0000000-0000-0000-0000-000000000001"; // replace
const rgName = "myResourceGroup";
const ledgerId = "confidentialbillingapp";

async function deleteManagedCcfResource() {
    const client = new ConfidentialLedgerClient(new DefaultAzureCredential(), subscriptionId);

    console.log("Delete the instance.");
    await client.managedCCFOperations.beginDeleteAndWait(rgName, ledgerId);
    console.log("Deleted.");
}

(async () => {
    try {
        await deleteManagedCcfResource();
    } catch(err) {
        console.error(err);
    }
})();

Resources opschonen

Andere beheerde CCF-artikelen kunnen voortbouwen op deze quickstart. Als u van plan bent om door te gaan met de volgende quickstarts en zelfstudies, wilt u deze resources mogelijk behouden.

Als u klaar bent met de resources die in dit artikel zijn gemaakt, gebruikt u de opdracht Azure CLI az group delete om de resourcegroep en alle bijbehorende resources te verwijderen.

az group delete --resource-group myResourceGroup

Volgende stappen

In deze quickstart hebt u een beheerde CCF-resource gemaakt met behulp van de Azure Python SDK voor Confidential Ledger. Voor meer informatie over Azure Managed CCF en hoe u deze integreert met uw toepassingen, gaat u verder met deze artikelen: