Condividi tramite


Introduzione alle chiavi di Azure Key Vault in JavaScript

Questo articolo illustra come connettersi ad Azure Key Vault usando la libreria client delle chiavi di Azure Key Vault per JavaScript. Una volta connesso, il tuo codice può operare sulle chiavi nell'archivio.

Riferimento API | Pacchetto (npm) | Codice sorgente della libreria | Esempi | Inviare feedback

Prerequisiti

Impostare il progetto

  1. Aprire un prompt dei comandi e passare alla cartella del progetto. Modificare YOUR-DIRECTORY con il nome della cartella:

    cd YOUR-DIRECTORY
    
  2. Se nella directory non è già presente un file package.json, inizializzare il progetto per crearlo:

    npm init -y
    
  3. Installare la libreria client delle chiavi di Azure Key Vault per JavaScript:

    npm install @azure/keyvault-keys
    
  4. Se si vogliono usare connessioni senza password usando Microsoft Entra ID, installare la libreria client di identità di Azure per JavaScript:

    npm install @azure/identity
    

Autorizzare l'accesso e connettersi a Key Vault

Microsoft Entra ID fornisce la connessione più sicura gestendo l'identità di connessione (identità gestita). Questa funzionalità senza password consente di sviluppare un'applicazione che non richiede chiavi archiviate nel codice.

Prima di eseguire l'autenticazione a livello di codice in Azure per usare le chiavi di Azure Key Vault, assicurarsi di configurare l'ambiente.

Diagramma del flusso delle credenziali di Azure SDK per JavaScript.

Uno sviluppatore deve installare l'interfaccia della riga di comando di Azure e accedere in modo interattivo con il comando az login per accedere ad Azure prima di usare DefaultAzureCredential nel codice.

az login

Compilare l'applicazione

Durante la compilazione dell'applicazione, il codice interagisce con due tipi di risorse:

  • KeyVaultKey, che comprende:
    • ID, nome e valore.
    • Operazioni consentite.
    • Tipo, ad esempio EC, EC-HSMRSA, RSA-HSM, octoct-HSM.
    • Proprietà come Proprietà chiave
  • KeyProperties, che includono i metadati delle chiavi, ad esempio il nome, la versione, i tag, i dati di scadenza e se sono abilitati.

Se è necessario il valore di KeyVaultKey, usare i metodi che restituiscono KeyVaultKey:

Modello a oggetti

La libreria client delle chiavi di Azure Key Vault per JavaScript include i client seguenti:

  • KeyClient: l'oggetto KeyClient è l'oggetto principale dell'SDK. Questo client consente di eseguire attività di gestione delle chiavi, ad esempio creare, ruotare, eliminare ed elencare le chiavi.
  • CryptographyClient consente di crittografare, decrittografare, firmare, verificare, wrappare e unwrappare le chiavi.

Diagramma concettuale che mostra la relazione all'interno della libreria client tra KeyClient e CryptographyClient.

Creare un oggetto KeyClient

Dopo aver configurato l'ambiente locale e l'autorizzazione di Key Vault, creare un file JavaScript, che include i pacchetti @azure/identity e i pacchetti @azure/keyvault-keys . Creare credenziali, ad esempio DefaultAzureCredential, per implementare connessioni senza password all'insieme di credenziali. Usare tale credenziale per eseguire l'autenticazione con un oggetto KeyClient .

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import { KeyClient } from '@azure/keyvault-keys';  

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  );

// Get key
const key = await client.getKey("MyKeyName");

Creare un oggetto CryptographyClient

L'oggetto CryptographyClient è l'oggetto operativo nell'SDK, che utilizza la tua chiave per eseguire azioni quali crittografare, decrittografare, firmare e verificare, nonché eseguire il wrapping e il de-wrapping.

Usare le credenziali di identità di KeyClient, insieme al nome della chiave, per creare un cryptographyClient per eseguire operazioni.

// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';  
import {
  CryptographyClient,
  KeyClient,
  KnownEncryptionAlgorithms,
  RsaEncryptParameters
} from '@azure/keyvault-keys'; 

// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential(); 
const client = new KeyClient(
    `https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
    credential
  ); 

// Get key
const key = await client.getKey("MyKeyName");

if (key?.name) {

    // get encryption client
    const encryptClient = new CryptographyClient(key, credential);

    // encrypt data
    const encryptParams = { 
        algorithm: KnownEncryptionAlgorithms.RSAOaep256,
        plaintext: Buffer.from("Hello world!")
    }
    const encryptResult = await encryptClient.encrypt(encryptParams);
}

Vedere anche

Passaggi successivi