Snabbstart: Skapa en Azure Managed CCF-resurs med hjälp av Azure SDK för JavaScript och TypeScript
Microsoft Azure Managed CCF (Managed CCF) är en ny och mycket säker tjänst för distribution av konfidentiella program. Mer information om Azure Managed CCF finns i Om Azure Managed Confidential Consortium Framework.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
API-referensdokumentationEns källkodspaket | för bibliotek (npm) |
Förutsättningar
- En Azure-prenumeration – skapa en kostnadsfritt.
- Node.js-versioner som stöds av Azure SDK för JavaScript.
- OpenSSL på en dator som kör Windows eller Linux.
Ställ in
Den här snabbstarten använder Azure Identity-biblioteket, tillsammans med Azure CLI eller Azure PowerShell, för att autentisera användaren till Azure Services. Utvecklare kan också använda Visual Studio eller Visual Studio Code för att autentisera sina anrop. Mer information finns i Autentisera klienten med Azure Identity-klientbiblioteket.
Logga in på Azure
Logga in på Azure med azure CLI az login-kommandot eller cmdleten Azure PowerShell Anslut-AzAccount.
az login
Om CLI eller PowerShell kan öppna standardwebbläsaren kommer den att göra det och läsa in en Azure-inloggningssida. Annars går du till https://aka.ms/devicelogin och anger auktoriseringskoden som visas i terminalen.
Logga in med dina kontoautentiseringsuppgifter i webbläsaren om du uppmanas att göra det.
Initiera ett nytt npm-projekt
I en terminal eller kommandotolk skapar du en lämplig projektmapp och initierar ett npm
projekt. Du kan hoppa över det här steget om du har ett befintligt nodprojekt.
cd <work folder>
npm init -y
Installera paketen
Installera Azure Active Directory-identitetsklientbiblioteket.
npm install --save @azure/identity
Installera klientbiblioteket för Azure Confidential Ledger-hanteringsplanet.
npm install -save @azure/arm-confidentialledger@1.3.0-beta.1
Installera TypeScript-kompilatorn och verktygen globalt
npm install -g typescript
Skapa en resursgrupp
En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Använd cmdleten Azure PowerShell New-AzResourceGroup för att skapa en resursgrupp med namnet myResourceGroup på platsen southcentralus.
New-AzResourceGroup -Name "myResourceGroup" -Location "SouthCentralUS"
Registrera resursprovidern
Resurstypen Azure Managed CCF måste registreras i prenumerationen innan du skapar en resurs.
az feature registration create --namespace Microsoft.ConfidentialLedger --name ManagedCCF
az provider register --namespace Microsoft.ConfidentialLedger
Skapa medlemmar
Generera ett nyckelpar för medlemmen. När följande kommandon har slutförts sparas medlemmens offentliga nyckel i member0_cert.pem
och den privata nyckeln sparas i 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"
Skapa JavaScript-programmet
Använda klientbiblioteket för hanteringsplanet
Azure SDK för JavaScript- och TypeScript-biblioteket azure/arm-confidentialledger tillåter åtgärder på hanterade CCF-resurser, till exempel skapande och borttagning, lista resurser som är associerade med en prenumeration och visning av information om en specifik resurs.
Om du vill köra exemplen nedan sparar du kodfragmenten i en fil med ett .ts
tillägg i projektmappen och kompilerar det som en del av TypeScript-projektet, eller kompilerar skriptet till JavaScript separat genom att köra:
tsc <filename.ts>
Den kompilerade JavaScript-filen har samma namn men ett *.js
tillägg. Kör sedan skriptet i nodeJS:
node <filename.js>
Följande TypeScript-exempelkod skapar och visar egenskaperna för en hanterad CCF-resurs.
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);
}
})();
Ta bort den hanterade CCF-resursen
Följande kodavsnitt tar bort den hanterade CCF-resursen. Andra hanterade CCF-artiklar kan bygga vidare på den här snabbstarten. Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats.
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);
}
})();
Rensa resurser
Andra hanterade CCF-artiklar kan bygga vidare på den här snabbstarten. Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats.
När du är klar med resurserna som skapas i den här artikeln använder du annars kommandot Azure CLI az group delete för att ta bort resursgruppen och alla dess inneslutna resurser.
az group delete --resource-group myResourceGroup
Nästa steg
I den här snabbstarten skapade du en hanterad CCF-resurs med hjälp av Azure Python SDK för konfidentiell transaktionsregister. Om du vill veta mer om Azure Managed CCF och hur du integrerar det med dina program kan du fortsätta med följande artiklar: