Enumerar o buscar un secreto en Azure Key Vault con JavaScript
Cree SecretClient con las credenciales de autenticación de programación adecuadas y, a continuación, use el cliente para encontrar un secreto de Azure Key Vault.
Todos los métodos de la lista devuelven un iterable. Puede obtener todos los elementos de la lista o encadenar el método byPage para iterar una página de elementos a la vez.
Una vez tenga las propiedades de un secreto, puede usar el método getSecret para obtener el valor del secreto.
Enumerar todos los secretos
Para enumerar todos los secretos en Azure Key Vault, use el método listPropertiesOfSecrets para obtener las propiedades de un secreto actual.
for await (const secretProperties of client.listPropertiesOfSecrets()){
// do something with properties
console.log(`Secret name: ${secretProperties.name}`);
}
Este método devuelve el objeto SecretProperties.
Enumerar todos los secretos por página
Para enumerar todos los secretos en Azure Key Vault, use el método listPropertiesOfSecrets para obtener las propiedades de un secreto de una página a la vez estableciendo el objeto 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}`);
Este método devuelve el objeto SecretProperties.
Enumerar todas las versiones de un secreto
Para enumerar todas las versiones de un secreto en Azure Key Vault, use el método listPropertiesOfSecretVersions.
for await (const secretProperties of client.listPropertiesOfSecretVersions(secretName)) {
// do something with version's properties
console.log(`Version created on: ${secretProperties.createdOn.toString()}`);
}
Este método devuelve el objeto SecretProperties.
Lista de secretos eliminados
Para enumerar todos los secretos eliminados en Azure Key Vault, use el método 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}`);
El objeto secretProperties es un objeto DeletedSecret.
Buscar secretos por propiedad
Para buscar la versión actual (la más reciente) de un secreto, que coincide con un nombre o valor de propiedad, vaya en bucle por todos los secretos y compare las propiedades. El código JavaScript siguiente busca todos los secretos habilitados.
Este código usa el método siguiente en un bucle de todos los secretos:
- listPropertiesOfSecrets(): devuelve el objeto de propiedad de la versión más reciente por secreto
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'
]
*/
Buscar versiones por propiedad
Para buscar todas las versiones, las cuales coinciden con un nombre o valor de propiedad, vaya en bucle por todas las versiones secretas y compare las propiedades.
Este código usa los métodos siguientes en un bucle anidado:
- listPropertiesOfSecrets(): devuelve el objeto de propiedad de la versión más reciente por secreto
- listPropertiesOfSecretVersions(): devuelve todas las versiones de un secreto
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'
}
]
*/