Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Key Vault, güvenli anahtarları kullanarak kimlik doğrulama anahtarlarını, depolama hesabı anahtarlarını, veri şifreleme anahtarlarını, .pfx dosyalarını ve parolaları şifrelemenizi sağlayan bir hizmettir. Azure Key Vault hakkında daha fazla bilgi edinmek isterseniz şunları gözden geçirmek isteyebilirsiniz: Azure Key Vault nedir?
Azure Key Vault Yönetilen HSM, FIPS 140-2 Düzey 3 doğrulanmış HSM'leri kullanarak bulut uygulamalarınız için şifreleme anahtarlarını korumanızı sağlayan, tam olarak yönetilen, yüksek oranda kullanılabilir, tek kiracılı, standartlara uyumlu bir bulut hizmetidir. Azure Key Vault Yönetilen HSM hakkında daha fazla bilgi edinmek isterseniz şunları gözden geçirmek isteyebilirsiniz: Azure Key Vault Yönetilen HSM nedir?
Azure Key Vault anahtar kitaplığı istemcisi RSA anahtarlarını, Üç Nokta Eğrisi (EC) anahtarlarını ve yönetilen bir HSM'de çalışırken simetrik (sekiz) anahtarları destekler ve bunların her birinin donanım güvenlik modülleri (HSM) desteği vardır. Anahtarları ve sürümlerini oluşturma, alma, güncelleştirme, silme, temizleme, yedekleme, geri yükleme ve listeleme işlemleri sunar.
Node.js uygulamanızda Azure Key Vault Anahtarları için istemci kitaplığını kullanarak:
- İsteğe bağlı olarak Donanım Güvenlik Modülleri (HSM) tarafından desteklenen üç nokta eğrisi veya RSA şifrelemesi kullanarak anahtarlar oluşturun.
- Anahtarları içeri aktarma, silme ve güncelleştirme.
- Öznitelikleriyle birlikte bir veya daha fazla anahtar ve silinmiş anahtar alın.
- Silinen bir anahtarı kurtarın ve yedeklenen bir anahtarı geri yükleyin.
- Anahtarın sürümlerini alın.
Bu kitaplıkta bulunan şifreleme istemcisini kullanarak aşağıdakilere de erişebilirsiniz:
- Şifreleme
- Şifre çözme
- Imzalama
- Doğrulama
- Kaydırma anahtarları
- Tuşların sarmalarını kaldırma
Not: Azure Key Vault hizmet sınırlamaları nedeniyle bu paket tarayıcıda kullanılamıyor, yönergeler için lütfen bu belge
bakın.
Önemli bağlantılar:
Başlangıç Yapmak
Şu anda desteklenen ortamlar
Önkoşullar
- Azure aboneliği
- Mevcut Azure Key Vault. Anahtar kasası oluşturmanız gerekiyorsa, azure portalda bu belgeyi
adımlarını izleyerek bunu yapabilirsiniz. Alternatif olarak, bu adımlarıizleyerek Azure CLI'yı kullanın. - Yönetilen HSM kullanılıyorsa, azure key vault yönetilen HSM mevcut bir. Yönetilen HSM oluşturmanız gerekiyorsa, bu belgeyi altındaki adımları izleyerek Azure CLI kullanarak bunu yapabilirsiniz.
Paketi yükle
npm kullanarak Azure Key Vault Anahtar istemci kitaplığını yükleme
npm install @azure/keyvault-keys
Kimlik kitaplığını yükleme
Azure Key Vault istemcileri, Azure kimlik kitaplığını kullanarak kimlik doğrulaması yapar. Npm kullanarak da yükleyin
npm install @azure/identity
TypeScript'i yapılandırma
TypeScript kullanıcılarının Düğüm türü tanımlarının yüklü olması gerekir:
npm install @types/node
ayrıca tsconfig.jsoncompilerOptions.allowSyntheticDefaultImports etkinleştirmeniz gerekir.
compilerOptions.esModuleInteropetkinleştirdiyseniz allowSyntheticDefaultImports varsayılan olarak etkin olduğunu unutmayın. Daha fazla bilgi için bkz. TypeScript'in derleyici seçenekleri el kitabı.
Temel kavramlar
- Anahtar istemcisi, JavaScript uygulamasından Azure Key Vault API'sindeki anahtarlarla ilgili API yöntemleriyle etkileşime geçmek için kullanılan birincil arabirimdir. Başlatıldıktan sonra anahtarları oluşturmak, okumak, güncelleştirmek ve silmek için kullanılabilecek temel bir yöntem kümesi sağlar.
- Anahtar sürümü, Key Vault'taki bir anahtarın sürümüdür. Bir kullanıcı benzersiz anahtar adına her değer atayışında, bu anahtarın yeni bir sürümü oluşturulur. Bir anahtarın bir ada göre alınması, sorguya belirli bir sürüm sağlanmadığı sürece her zaman atanan en son değeri döndürür.
- Geçici silme Key Vault'ların silme ve temizlemeyi iki ayrı adım olarak desteklemesine olanak tanır, bu nedenle silinen anahtarlar hemen kaybolmaz. Bu durum yalnızca Key Vault geçici silme etkin
olduğunda gerçekleşir. - Oluşturulan herhangi bir anahtardan Anahtar yedekleme oluşturulabilir. Bu yedeklemeler ikili veri olarak gelir ve yalnızca daha önce silinmiş bir anahtarı yeniden oluşturmak için kullanılabilir.
- Şifreleme istemcisi, Key Vault API'sindeki anahtar API yöntemleriyle etkileşim kuran ayrı bir arabirimdir. Bu istemci yalnızca Key Vault'ta önceden oluşturulmuş bir anahtar kullanılarak yürütülebilen şifreleme işlemlerine odaklanır. Şifreleme bölümünde bu istemci hakkında daha fazla bilgi edinin.
Azure Active Directory ile kimlik doğrulaması
Key Vault hizmeti, API'lerine yönelik isteklerin kimliğini doğrulamak için Azure Active Directory'ye dayanır.
@azure/identity paketi, uygulamanızın bunu yapmak için kullanabileceği çeşitli kimlik bilgisi türleri sağlar.
Azure Key Vault hizmetiyle etkileşim kurmak için KeyClient sınıfının bir örneğini, kasası url'sini ve kimlik bilgisi nesnesini oluşturmanız gerekir. Bu belgede gösterilen örneklerde, yerel geliştirme ve üretim ortamları dahil olmak üzere çoğu senaryo için uygun olan DefaultAzureCredentialadlı bir kimlik bilgisi nesnesi kullanılır. Ayrıca, üretim ortamlarında kimlik doğrulaması için yönetilen kimlik kullanmanızı öneririz.
Kimlik doğrulamasının farklı yolları ve bunların ilgili kimlik bilgileri türleri hakkında daha fazla bilgiyi
İşte hızlı bir örnek. İlk olarak, DefaultAzureCredential içeri aktarıp KeyClient. Bunlar içeri aktarıldıktan sonra Key Vault hizmetine bağlanabiliriz:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
// Build the URL to reach your key vault
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`; // or `https://${vaultName}.managedhsm.azure.net` for managed HSM.
// Lastly, create our keys client and connect to the service
const client = new KeyClient(url, credential);
Azure Key Vault hizmet API'sinin sürümünü belirtme
Varsayılan olarak, bu paket 7.2en son Azure Key Vault hizmet sürümünü kullanır. İstemci oluşturucusunda serviceVersion seçeneğini aşağıda gösterildiği gibi ayarlayarak kullanılan hizmet sürümünü değiştirebilirsiniz:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
// Build the URL to reach your key vault
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`; // or `https://${vaultName}.managedhsm.azure.net` for managed HSM.
// Change the Azure Key Vault service API version being used via the `serviceVersion` option
const client = new KeyClient(url, credential, {
serviceVersion: "7.0", // Or 7.1
});
Örnekler
Aşağıdaki bölümlerde, Azure Key Vault Anahtarlarını kullanarak bazı yaygın görevleri kapsayan kod parçacıkları sağlanır. Burada ele alınan senaryolar şunlardan oluşur:
- anahtar oluşturma.
- anahtar alma.
- öznitelikleriyle anahtar oluşturma ve güncelleştirme.
- bir anahtarı silme.
- anahtar listelerini yinelemeyi.
Anahtar oluşturma
createKey, Azure Key Vault'ta depolanacak bir Anahtar oluşturur. Aynı ada sahip bir anahtar zaten varsa, anahtarın yeni bir sürümü oluşturulur.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const result = await client.createKey(keyName, "RSA");
console.log("result: ", result);
createKey gönderilen ikinci parametre anahtarın türüdür. Desteklenen anahtarların türü SKU'ya ve Azure Key Vault mu yoksa Azure Yönetilen HSM mi kullandığınıza bağlıdır. Desteklenen anahtar türlerinin up-totarih listesi için bkz. Anahtarlar hakkında
Anahtar alma
Anahtarları kasadan geri okumanın en basit yolu, bir anahtarı ada göre almaktır. Bu işlem anahtarın en son sürümünü alır. İsteğe bağlı parametrelerin bir parçası olarak belirtirseniz isteğe bağlı olarak anahtarın farklı bir sürümünü alabilirsiniz.
getKey, Key Vault'ta önceki depolardan bir anahtar alır.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const latestKey = await client.getKey(keyName);
console.log(`Latest version of the key ${keyName}: `, latestKey);
const specificKey = await client.getKey(keyName, { version: latestKey.properties.version! });
console.log(`The key ${keyName} at the version ${latestKey.properties.version!}: `, specificKey);
Özniteliklerle anahtar oluşturma ve güncelleştirme
Aşağıdaki öznitelikler bir Key Vault'taki herhangi bir anahtara da atanabilir:
-
tags: Anahtarları aramak ve filtrelemek için kullanılabilecek herhangi bir anahtar-değer kümesi. -
keyOps: Bu anahtarın gerçekleştirebileceği işlemlerin dizisi (encrypt,decrypt,sign,verify,wrapKey,unwrapKey). -
enabled: Anahtar değerinin okunup okunamayacağını belirleyen boole değeri. -
notBefore: Anahtar değerinin alınabildiği belirli bir tarih. -
expires: Anahtar değerinin alınamadığı belirli bir tarih.
Bu özniteliklere sahip bir nesne, anahtarın adından ve değerinden hemen sonra createKey'nin üçüncü parametresi olarak aşağıdaki gibi gönderilebilir:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const result = await client.createKey(keyName, "RSA", {
enabled: false,
});
console.log("result: ", result);
Bu, sağlanan en son özniteliklere sahip olacak aynı anahtarın yeni bir sürümünü oluşturur.
Öznitelikler, updateKeyPropertiesile mevcut bir anahtar sürümüne de aşağıdaki gibi güncelleştirilebilir:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const result = await client.createKey(keyName, "RSA");
await client.updateKeyProperties(keyName, result.properties.version, {
enabled: false,
});
Anahtar silme
beginDeleteKey yöntemi bir anahtarın silinmesini başlatır.
Bu işlem, gerekli kaynaklar kullanılabilir duruma gelir gelmez arka planda gerçekleşir.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const poller = await client.beginDeleteKey(keyName);
await poller.pollUntilDone();
Key Vault için geçici silme etkinleştirilirse, bu işlem anahtarı yalnızca silinmiş anahtarı olarak etiketler. Silinen anahtar güncelleştirilemez. Bunlar yalnızca okunabilir, kurtarılabilir veya temizlenebilir.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const poller = await client.beginDeleteKey(keyName);
// You can use the deleted key immediately:
const deletedKey = poller.getResult();
// The key is being deleted. Only wait for it if you want to restore it or purge it.
await poller.pollUntilDone();
// You can also get the deleted key this way:
await client.getDeletedKey(keyName);
// Deleted keys can also be recovered or purged:
// recoverDeletedKey also returns a poller, just like beginDeleteKey.
const recoverPoller = await client.beginRecoverDeletedKey(keyName);
await recoverPoller.pollUntilDone();
// And here is how to purge a deleted key
await client.purgeDeletedKey(keyName);
Anahtarların tamamen silinmesi biraz zaman verdiğinden, beginDeleteKey temel alınan Uzun Süre Çalışan İşlemi yönergelerimize göre izleyen bir Poller nesnesi döndürür: https://azure.github.io/azure-sdk/typescript_design.html#ts-lro
Alınan poller, poller.getResult()çağrısı yaparak silinen anahtarı almanıza olanak sağlar.
Ayrıca, anahtar silinene kadar tek tek hizmet çağrılarını çalıştırarak veya işlem bitene kadar bekleyerek silme işleminin bitmesini de bekleyebilirsiniz:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const poller = await client.beginDeleteKey(keyName);
// You can use the deleted key immediately:
let deletedKey = poller.getResult();
// Or you can wait until the key finishes being deleted:
deletedKey = await poller.pollUntilDone();
console.log(deletedKey);
Anahtar tamamen silinene kadar beklemenin bir diğer yolu da tek tek çağrıları aşağıdaki gibi yapmaktır:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
const poller = await client.beginDeleteKey(keyName);
while (!poller.isDone()) {
await poller.poll();
await delay(5000);
}
console.log(`The key ${keyName} is fully deleted`);
Otomatik Anahtar Döndürmeyi Yapılandırma
KeyClient kullanarak, döndürme ilkesini belirterek bir anahtar için otomatik anahtar döndürmeyi yapılandırabilirsiniz. Buna ek olarak, KeyClient verilen anahtarın yeni bir sürümünü oluşturarak isteğe bağlı olarak bir anahtarı döndürmek için bir yöntem sağlar.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
// Set the key's automated rotation policy to rotate the key 30 days before expiry.
const policy = await client.updateKeyRotationPolicy(keyName, {
lifetimeActions: [
{
action: "Rotate",
timeBeforeExpiry: "P30D",
},
],
// You may also specify the duration after which any newly rotated key will expire.
// In this case, any new key versions will expire after 90 days.
expiresIn: "P90D",
});
// You can get the current key rotation policy of a given key by calling the getKeyRotationPolicy method.
const currentPolicy = await client.getKeyRotationPolicy(keyName);
// Finally, you can rotate a key on-demand by creating a new version of the given key.
const rotatedKey = await client.rotateKey(keyName);
Anahtar listelerini yineleme
KeyClient kullanarak, Azure Key Vault'taki tüm anahtarların yanı sıra silinen tüm anahtarlar ve belirli bir anahtarın sürümleri aracılığıyla alabilir ve yineleyebilirsiniz. Aşağıdaki API yöntemleri kullanılabilir:
-
listPropertiesOfKeys, silinmeyen tüm anahtarlarınızı yalnızca en son sürümlerinde adlarına göre listeler. -
listDeletedKeyssilinen tüm anahtarlarınızı yalnızca en son sürümlerinde adlarına göre listeler. -
listPropertiesOfKeyVersionsbir anahtarın tüm sürümlerini bir anahtar adına göre listeler.
Aşağıdaki gibi kullanılabilir:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
for await (const keyProperties of client.listPropertiesOfKeys()) {
console.log("Key properties: ", keyProperties);
}
for await (const deletedKey of client.listDeletedKeys()) {
console.log("Deleted: ", deletedKey);
}
for await (const versionProperties of client.listPropertiesOfKeyVersions(keyName)) {
console.log("Version properties: ", versionProperties);
}
Bu yöntemlerin tümü tüm kullanılabilir sonuçları aynı anda döndürür. Bunları sayfalara göre almak için, kullanmak istediğiniz API yöntemini çağırdıktan hemen sonra aşağıdaki gibi .byPage() ekleyin:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const keyName = "MyKeyName";
for await (const page of client.listPropertiesOfKeys().byPage()) {
for (const keyProperties of page) {
console.log("Key properties: ", keyProperties);
}
}
for await (const page of client.listDeletedKeys().byPage()) {
for (const deletedKey of page) {
console.log("Deleted key: ", deletedKey);
}
}
for await (const page of client.listPropertiesOfKeyVersions(keyName).byPage()) {
for (const versionProperties of page) {
console.log("Version: ", versionProperties);
}
}
Şifreleme
Bu kitaplık, CryptographyClientaracılığıyla kullanılabilen bir dizi şifreleme yardımcı programı da sunar.
KeyClientbenzer şekilde, CryptographyClient sağlanan kimlik bilgileri kümesiyle Azure Key Vault'a bağlanır. bağlandıktan sonra CryptographyClient anahtarları şifreleyebilir, şifre çözebilir, imzalayabilir, doğrulayabilir, sarmalayabilir ve anahtarları açabilir.
Daha sonra KeyClientgibi key vault hizmetine bağlanabiliriz.
Bağlandığımız anahtar kasasından bazı ayarları ortam değişkenlerimize kopyalamamız gerekir. Ortamımıza girdikten sonra aşağıdaki kodla bunlara erişebiliriz:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
// Create or retrieve a key from the keyvault
const myKey = await client.createKey("MyKey", "RSA");
// Lastly, create our cryptography client and connect to the service
const cryptographyClient = new CryptographyClient(myKey, credential);
Şifreleme
encrypt bir iletiyi şifreler.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
Şifreyi çöz
decrypt şifrelenmiş iletinin şifresini çözer.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
const decryptResult = await cryptographyClient.decrypt({
algorithm: "RSA1_5",
ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());
Oturum aç
sign, bir iletinin özetini (karma) imzayla şifreli olarak imzalar.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
let myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signatureValue = "MySignature";
const hash = createHash("sha256");
const digest = hash.update(signatureValue).digest();
console.log("digest: ", digest);
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
Verileri İmzala
signData bir iletiyi imzayla şifreli olarak imzalar.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signResult = await cryptographyClient.signData("RS256", Buffer.from("My Message"));
console.log("sign result: ", signResult.result);
Doğrulama
verify, imzalanan özetin verilen imzayla imzalandığını şifreli olarak doğrular.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const hash = createHash("sha256");
hash.update("My Message");
const digest = hash.digest();
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verify("RS256", digest, signResult.result);
console.log("verify result: ", verifyResult.result);
Verileri Doğrula
verifyData, imzalanan iletinin verilen imzayla imzalandığını şifreli olarak doğrular.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const buffer = Buffer.from("My Message");
const signResult = await cryptographyClient.signData("RS256", buffer);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verifyData("RS256", buffer, signResult.result);
console.log("verify result: ", verifyResult.result);
Anahtarı Sarmala
wrapKey bir anahtarı şifreleme katmanıyla sarmalar.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
Anahtar Sarmalamasını Geri Al
unwrapKey sarmalanmış anahtarın işaretini kaldıracaktır.
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
const unwrapResult = await cryptographyClient.unwrapKey("RSA-OAEP", wrapResult.result);
console.log("unwrap result: ", unwrapResult.result);
Sorun giderme
Çeşitli hata senaryolarını tanılama hakkında ayrıntılı bilgi için sorun giderme kılavuzumuza bakın.
Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Sonraki Adımlar
Aşağıdaki bağlantılardan daha fazla kod örneği bulabilirsiniz:
- Key Vault Anahtar Örnekleri (JavaScript)
- Anahtar Kasası Anahtar Örnekleri (TypeScript)
- Anahtar Kasası Anahtarları Test Çalışmalarını
Katkıda Bulunmak
Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.
Azure SDK for JavaScript