JavaScript ile Azure Key Vault'da bir gizli bilgiyi listeleme veya bulma

Uygun programlı kimlik doğrulama kimlik bilgileri ile SecretClient oluşturun, ardından istemciyi kullanarak Azure Key Vault’tan bir gizli anahtarı bulun.

Tüm liste yöntemleri yinelenebilir bir değer döndürür. Listedeki tüm öğeleri alabilir veya bir kerede bir öğe sayfasını yinelemek için byPage yöntemini zincirleyebilirsiniz.

Gizli dizinin özelliklerine sahip olduktan sonra, gizli dizinin değerini almak için getSecret yöntemini kullanabilirsiniz.

Tüm gizli bilgileri listele

Azure Key Vault içindeki tüm gizli dizileri listelemek için, geçerli gizli dizinin özelliklerini almak için listPropertiesOfSecrets yöntemini kullanın.

for await (const secretProperties of client.listPropertiesOfSecrets()){

  // do something with properties
  console.log(`Secret name: ${secretProperties.name}`);

}

Bu yöntem SecretProperties nesnesini döndürür.

Tüm gizli anahtarları sayfa bazında listele

Azure Key Vault içindeki tüm gizli dizileri listelemek için listPropertiesOfSecrets yöntemini kullanarak PageSettings nesnesini ayarlayarak bir kerede gizli dizi özelliklerini alın.

// 5 secrets per page
const maxResults = 5;
let pageCount = 1;
let itemCount=1;

// loop through all secrets
for await (const page of client.listPropertiesOfSecrets().byPage({ maxPageSize: maxResults })) {

  let itemOnPageCount = 1;

  // loop through each secret on page
  for (const secretProperties of page) {
    
    console.log(`Page:${pageCount++}, item:${itemOnPageCount++}:${secretProperties.name}`);
    
    itemCount++;
  }
}
console.log(`Total # of secrets:${itemCount}`);

Bu yöntem SecretProperties nesnesini döndürür.

Bir gizli bilginin tüm sürümlerini listeleme

Azure Key Vault bir gizli dizinin tüm sürümlerini listelemek için listPropertiesOfSecretVersions yöntemini kullanın.

for await (const secretProperties of client.listPropertiesOfSecretVersions(secretName)) {

  // do something with version's properties
  console.log(`Version created on: ${secretProperties.createdOn.toString()}`);
}

Bu yöntem SecretProperties nesnesini döndürür.

Silinen şifreleri listele

Azure Key Vault'daki tüm silinen gizli dizileri listelemek için listDeletedSecrets yöntemini kullanın.

// 5 secrets per page
const maxResults = 5;
let pageCount = 1;
let itemCount=1;

// loop through all secrets
for await (const page of client.listDeletedSecrets().byPage({ maxPageSize: maxResults })) {

  let itemOnPageCount = 1;

  // loop through each secret on page
  for (const secretProperties of page) {
    
    console.log(`Page:${pageCount++}, item:${itemOnPageCount++}:${secretProperties.name}`);
    
    itemCount++;
  }
}
console.log(`Total # of secrets:${itemCount}`);

secretProperties nesnesi bir DeletedSecret nesnesidir.

Özelliğe göre gizli anahtarı bul

Bir özellik adı/değeriyle eşleşen bir gizli dizinin geçerli (en son) sürümünü bulmak için tüm gizli diziler üzerinde döngü yapın ve özellikleri karşılaştırın. Aşağıdaki JavaScript kodu tüm etkinleştirilmiş gizli anahtarları bulur.

Bu kod, tüm gizli dizilerin döngüsünde aşağıdaki yöntemi kullanır:


const secretsFound = [];

const propertyName = "enabled"
const propertyValue = false;

for await (const secretProperties of client.listPropertiesOfSecrets()){

  if(propertyName === 'tags'){
    if(JSON.stringify(secretProperties.tags) === JSON.stringify(propertyValue)){
      secretsFound.push( secretProperties.name )
    }
  } else {
    if(secretProperties[propertyName].toString() === propertyValue.toString()){
      secretsFound.push( secretProperties.name )
    }
  }
}

console.log(secretsFound)
/*
[
  'my-secret-1683734823721',
  'my-secret-1683735278751',
  'my-secret-1683735523489',
  'my-secret-1684172237551'
]
*/

Özelliklere göre sürümleri bulma

Bir özellik adı/değerine uyan tüm sürümleri bulmak için, tüm gizli anahtar sürümleri üzerinde döngü kurun ve özellikleri karşılaştırın.

Bu kod iç içe döngüde aşağıdaki yöntemleri kullanır:

const secretsFound = [];

const propertyName = 'createdOn';
const propertyValue = 'Mon May 15 2023 20:52:37 GMT+0000 (Coordinated Universal Time)';

for await (const { name } of client.listPropertiesOfSecrets()){

  console.log(`Secret name: ${name}`);

  for await (const secretProperties of client.listPropertiesOfSecretVersions(name)) {
  
    console.log(`Secret version ${secretProperties.version}`);

    if(propertyName === 'tags'){
      if(JSON.stringify(secretProperties.tags) === JSON.stringify(propertyValue)){
        console.log(`Tags match`);
        secretsFound.push({ name: secretProperties.name, version: secretProperties.version });
      }
    } else {
      if(secretProperties[propertyName].toString() === propertyValue.toString()){
        console.log(`${propertyName} matches`);
        secretsFound.push({ name: secretProperties.name, version: secretProperties.version });
      }
    }
  }
}

console.log(secretsFound);
/*
[
  {
    name: 'my-secret-1684183956189',
    version: '93beaec3ff614be9a67cd2f4ef4d90c5'
  }
]
*/

Sonraki adımlar