Share via


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

Ön koş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.

Diagram of Azure SDK for JavaScript credential flow.

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.

Conceptual diagram showing the relationship within the client library between the KeyClient and CryptographyClient.

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