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
- Azure aboneliği - ücretsiz bir abonelik oluşturun.
- Azure Key Vault örneği. Kodda gerçekleştirilen belirli görevler için gerekli izinleri eklemek için Key Vault'unuzda erişim ilkelerini gözden geçirin.
- Node.js sürümü LTS
Projenizi ayarlama
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
Dizininizde henüz bir
package.json
dosya yoksa, dosyayı oluşturmak için projeyi başlatın:npm init -y
JavaScript için Azure Key Vault anahtarları istemci kitaplığını yükleyin:
npm install @azure/keyvault-keys
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.
Uygulamanızı derleme
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.
- , ,
EC-HSM
,RSA
,RSA-HSM
,oct
oct-HSM
gibiEC
yazın. - 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.
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);
}