Aracılığıyla paylaş


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

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

API başvuru | Paketi (npm) | Kitaplık kaynak kodu | Örnekleri | Geri bildirimde bulunmak

Önkoşullar

Projenizi ayarlama

  1. Bir komut istemi açın ve proje klasörünüzde değiştirin. Klasör adınızla değiştirin YOUR-DIRECTORY :

    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 yetkilendirme ve Key Vault'a bağlanma

Microsoft Entra ID, bağlantı kimliğini (yönetilen kimlik) 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ını kullanmak için Azure'da program aracılığıyla kimlik doğrulaması gerçekleştirmeden önce ortamınızı ayarladığınızdan emin olun.

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

Bir geliştiricinin Azure CLI'yi yüklemesi ve kodda DefaultAzureCredential'ı kullanmadan önce Azure'da oturum açmak için az login komutuyla etkileşimli olarak oturum açması gerekir.

az login

Uygulamanızı derleme

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

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/kimlik 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 bkz.

Sonraki adımlar