Udostępnij za pośrednictwem


Wprowadzenie do kluczy usługi Azure Key Vault w języku JavaScript

W tym artykule pokazano, jak nawiązać połączenie z usługą Azure Key Vault przy użyciu biblioteki klienta kluczy usługi Azure Key Vault dla języka JavaScript. Po nawiązaniu połączenia kod może działać na kluczach w magazynie.

Przykłady kodu | | źródłowego biblioteki źródłowej pakietu referencyjnego | interfejsu API (npm) | Prześlij opinię

Wymagania wstępne

konfigurowanie projektu

  1. Otwórz wiersz polecenia i przejdź do folderu projektu. Zmień YOUR-DIRECTORY nazwę folderu na:

    cd YOUR-DIRECTORY
    
  2. Jeśli nie masz package.json jeszcze pliku w katalogu, zainicjuj projekt w celu utworzenia pliku:

    npm init -y
    
  3. Zainstaluj bibliotekę klienta kluczy usługi Azure Key Vault dla języka JavaScript:

    npm install @azure/keyvault-keys
    
  4. Jeśli chcesz używać połączeń bez hasła przy użyciu identyfikatora Entra firmy Microsoft, zainstaluj bibliotekę klienta tożsamości platformy Azure dla języka JavaScript:

    npm install @azure/identity
    

Autoryzowanie dostępu i nawiązywanie połączenia z usługą Key Vault

Identyfikator entra firmy Microsoft zapewnia najbezpieczniejsze połączenie, zarządzając tożsamością połączenia (tożsamością zarządzaną). Ta funkcja bez hasła umożliwia tworzenie aplikacji, która nie wymaga żadnych kluczy przechowywanych w kodzie.

Przed programowym uwierzytelnieniem na platformie Azure w celu korzystania z kluczy usługi Azure Key Vault upewnij się, że skonfigurowaliśmy środowisko.

Diagram przepływu poświadczeń zestawu Azure SDK dla języka JavaScript.

Deweloper powinien zainstalować interfejs wiersza polecenia platformy Azure i zalogować się interaktywnie za pomocą polecenia az login , aby zalogować się na platformie Azure przed użyciem polecenia DefaultAzureCredential w kodzie.

az login

Kompilowanie aplikacji

Podczas tworzenia aplikacji kod współdziała z dwoma typami zasobów:

  • KeyVaultKey, który obejmuje:
    • Identyfikator, nazwa i wartość.
    • Dozwolone operacje.
    • Typ, taki jak EC, , EC-HSMRSA, RSA-HSM, , . oct-HSMoct
    • Właściwości jako właściwości KeyProperties
  • KeyProperties, które obejmują metadane kluczy, takie jak jego nazwa, wersja, tagi, dane wygasania i czy jest włączona.

Jeśli potrzebujesz wartości KeyVaultKey, użyj metod, które zwracają klucz KeyVaultKey:

Model obiektów

Biblioteka klienta kluczy usługi Azure Key Vault dla języka JavaScript obejmuje następujących klientów:

  • KeyClient: obiekt KeyClient jest głównym obiektem w zestawie SDK. Ten klient umożliwia wykonywanie kluczowych zadań zarządzania, takich jak tworzenie, obracanie, usuwanie i wyświetlanie listy kluczy.
  • Program CryptographyClient umożliwia szyfrowanie, odszyfrowywanie, podpisywanie, weryfikowanie, zawijanie i odpakowywanie kluczy.

Diagram koncepcyjny przedstawiający relację w bibliotece klienta między elementami KeyClient i CryptographyClient.

Tworzenie obiektu KeyClient

Po skonfigurowaniu środowiska lokalnego i autoryzacji usługi Key Vault utwórz plik JavaScript zawierający @azure/tożsamość oraz pakiety @azure/keyvault-keys . Utwórz poświadczenie, takie jak DefaultAzureCredential, aby zaimplementować połączenia bez hasła z magazynem. Użyj tego poświadczenia, aby uwierzytelnić się za pomocą obiektu 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");

Tworzenie obiektu CryptographyClient

Obiekt CryptographyClient jest obiektem operacyjnym w zestawie SDK, używając klucza do wykonywania akcji, takich jak szyfrowanie, odszyfrowywanie, podpisywanie i weryfikowanie, opakowywanie i odpakowywanie.

Użyj poświadczeń tożsamości z klienta KeyClient wraz z nazwą klucza, aby utworzyć element CryptographyClient w celu wykonywania operacji.

// 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);
}

Zobacz też

Następne kroki