JavaScript'te Azure Key Vault anahtarları kullanmaya başlama

Bu makalede JavaScript için Azure Key Vault anahtarları istemci kitaplığını kullanarak Azure Key Vault nasıl bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra kodunuz kasadaki anahtarlar üzerinde çalışabilir.

API referansı | Package (npm) | Kütüphane kaynak kodu | Örnekler | Geri bildirim ver

Önkoşullar

Projenizi ayarlayın

  1. Bir komut istemi açın ve proje klasörünüze geçin. <your-directory>'yi klasör adınızla değiştirin.

    cd <your-directory>
    
  2. Dizininizde henüz bir package.json dosya yoksa, dosyayı oluşturmak için projeyi başlatın:

    npm init -y
    
  3. JavaScript için Azure Key Vault anahtarları istemci kitaplığını yükleyin:

    npm install @azure/keyvault-keys
    
  4. Microsoft Entra ID kullanarak parolasız bağlantılar kullanmak istiyorsanız JavaScript için Azure Identity istemci kitaplığını yükleyin:

    npm install @azure/identity
    

Erişimi yetkilendir ve Key Vault'a bağlan

Microsoft Entra ID, bağlantı kimliğini (managed identity) yöneterek en güvenli bağlantıyı sağlar. Bu parolasız işlevsellik, kodda depolanan anahtar gerektirmeyen bir uygulama geliştirmenizi sağlar.

Azure Key Vault anahtarları kullanmak için Azure programlama yoluyla kimlik doğrulamadan önce ortamınızı ayarladığınızdan emin olun.

Azure SDK için JavaScript kimlik bilgisi akış diyagramı.

Bir geliştirici Azure CLI yüklemeli ve kodda DefaultAzureCredential'ı kullanmadan önce Azure oturum açmak için az login komutuyla etkileşimli olarak oturum açmalıdır.

az login

Uygulamanızı oluşturun

Uygulamanızı oluştururken kodunuz iki tür kaynakla etkileşim kurar:

  • KeyVaultKey, şunları içerir:
    • Kimlik, ad ve değer.
    • İzin verilen işlemler.
    • Şöyle yazın: EC, EC-HSM, RSA, RSA-HSM, oct, oct-HSM.
    • KeyProperties Olarak Özellikler
  • Anahtar adı, sürümü, etiketleri, süre sonu verileri ve etkinleştirilip etkinleştirilmediği gibi anahtarların meta verilerini içeren KeyProperties.

KeyVaultKey değerine ihtiyacınız varsa KeyVaultKey döndüren yöntemleri kullanın:

Nesne modeli

JavaScript için Azure Key Vault anahtarları istemci kitaplığı aşağıdaki istemcileri içerir:

  • KeyClient: KeyClient nesnesi SDK'daki en üstteki nesnedir. Bu istemci, anahtarları oluşturma, döndürme, silme ve listeleme gibi anahtar yönetimi görevlerini gerçekleştirmenizi sağlar.
  • CryptographyClient anahtarları şifrelemenize, şifre çözmenize, imzalamanıza, doğrulamanıza, sarmalamanıza ve çözmenize olanak tanır.

İstemci kitaplığındaki KeyClient ile CryptographyClient arasındaki ilişkiyi gösteren kavramsal diyagram.

KeyClient nesnesi oluşturma

Yerel ortamınız ve Key Vault yetkilendirmeniz ayarlandıktan sonra @azure/identity ve @azure/keyvault-keys paketlerini içeren bir JavaScript dosyası oluşturun. Kasanıza parolasız bağlantılar uygulamak için DefaultAzureCredential gibi bir kimlik bilgisi oluşturun. KeyClient nesnesiyle kimlik doğrulaması yapmak için bu kimlik bilgilerini kullanın.

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

CryptographyClient nesnesi oluşturma

CryptographyClient nesnesi, şifreleme, şifre çözme, imzalama ve doğrulama, sarmalama ve açma gibi eylemleri gerçekleştirmek için anahtarınızı kullanan SDK'daki işletimsel nesnedir.

İşlemleri gerçekleştirmek üzere bir CryptographyClient oluşturmak için KeyClient'ınızdaki Kimlik kimlik bilgilerinizi anahtar adıyla birlikte kullanın.

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

Ayrıca bakınız

Sonraki Adımlar