Lista eller hitta en hemlighet i Azure Key Vault med JavaScript

Skapa SecretClient med lämpliga autentiseringsuppgifter för programmatisk autentisering och använd sedan klienten för att hitta en hemlighet från Azure Key Vault.

Alla listmetoder returnerar en iterbar. Du kan hämta alla objekt i listan eller länka metoden byPage för att iterera en sida med objekt i taget.

När du har en hemlighets egenskaper kan du sedan använda metoden getSecret för att hämta hemlighetens värde.

Visa en lista över alla hemligheter

Om du vill visa en lista över alla hemligheter i Azure Key Vault använder du metoden listPropertiesOfSecrets för att hämta egenskaperna för en aktuell hemlighet.

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

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

}

Den här metoden returnerar objektet SecretProperties .

Visa en lista över alla hemligheter efter sida

Om du vill visa en lista över alla hemligheter i Azure Key Vault använder du metoden listPropertiesOfSecrets för att hämta hemliga egenskaper en sida i taget genom att ange objektet PageSettings.

// 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}`);

Den här metoden returnerar objektet SecretProperties .

Visa en lista över alla versioner av en hemlighet

Om du vill visa en lista över alla versioner av en hemlighet i Azure Key Vault använder du metoden listPropertiesOfSecretVersions.

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

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

Den här metoden returnerar objektet SecretProperties .

Lista borttagna hemligheter

Om du vill visa en lista över alla borttagna hemligheter i Azure Key Vault använder du metoden listDeletedSecrets.

// 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}`);

Objektet secretProperties är ett DeletedSecret-objekt .

Hitta hemlighet efter egenskap

Om du vill hitta den aktuella (senaste) versionen av en hemlighet, som matchar ett egenskapsnamn/värde, loopar du över alla hemligheter och jämför egenskaperna. Följande JavaScript-kod hittar alla aktiverade hemligheter.

Den här koden använder följande metod i en loop med alla hemligheter:


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'
]
*/

Hitta versioner efter egenskap

Om du vill hitta alla versioner, som matchar ett egenskapsnamn/-värde, loopar du över alla hemliga versioner och jämför egenskaperna.

Den här koden använder följande metoder i en kapslad loop:

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'
  }
]
*/

Nästa steg