Freigeben über


Auflisten oder Suchen eines Geheimnisses in Azure Key Vault mit JavaScript

Erstellen Sie den SecretClient mit den entsprechenden Anmeldeinformationen für die programmgesteuerte Authentifizierung, und verwenden Sie dann den Client, um nach einem Azure Key Vault-Geheimnis zu suchen.

Alle Auflistungsmethoden geben einen iterierbaren Wert zurück. Sie können alle Elemente in der Liste abrufen oder die byPage-Methode verketten, um eine Seite mit Elementen gleichzeitig zu durchlaufen.

Sobald Sie über die Eigenschaften eines Geheimnisses verfügen, können Sie die getSecret-Methode verwenden, um den Wert des Geheimnisses abzurufen.

Auflisten aller Geheimnisse

Um alle Geheimnisse in Azure Key Vault aufzulisten, verwenden Sie die listPropertiesOfSecrets-Methode, um die Eigenschaften eines aktuellen Geheimnisses abzurufen.

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

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

}

Diese Methode gibt das SecretProperties-Objekt zurück.

Auflisten aller Geheimnisse nach Seite

Um alle Geheimnisse in Azure Key Vault aufzulisten, verwenden Sie die listPropertiesOfSecrets-Methode, um die Geheimniseigenschaften einer Seite gleichzeitig abzurufen, indem Sie das PageSettings-Objekt festlegen.

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

Diese Methode gibt das SecretProperties-Objekt zurück.

Auflisten aller Versionen eines Geheimnisses

Verwenden Sie die listPropertiesOfSecretVersions-Methode, um alle Versionen eines Geheimnisses in Azure Key Vault aufzulisten.

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

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

Diese Methode gibt das SecretProperties-Objekt zurück.

Auflisten gelöschter Geheimnisse

Verwenden Sie die listDeletedSecrets-Methode, um alle gelöschten Geheimnisse in Azure Key Vault aufzulisten.

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

Das secretProperties-Objekt ist ein DeletedSecret-Objekt.

Suchen nach einem Geheimnis nach Eigenschaft

Um die aktuelle (neueste) Version eines Geheimnisses zu finden, die einem Eigenschaftsnamen/-wert entspricht, führen Sie eine Schleife über alle Geheimnisse aus, und vergleichen Sie die Eigenschaften. Mit dem folgenden JavaScript-Code wird nach allen aktivierten Geheimnissen gesucht.

Dieser Code verwendet die folgende Methode in einer Schleife für alle Geheimnisse:


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

Suchen nach Versionen nach Eigenschaft

Um nach allen Versionen zu suchen, die einem Eigenschaftsnamen/-wert entsprechen, führen Sie eine Schleife für alle Geheimnisversionen durch, und vergleichen Sie die Eigenschaften.

Dieser Code verwendet die folgenden Methoden in einer geschachtelten Schleife:

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ächste Schritte