Introducción a las claves de Azure Key Vault en JavaScript
En este artículo se muestra cómo conectarse a Azure Key Vault mediante la biblioteca cliente de claves de Azure Key Vault para JavaScript. Una vez conectado, su código puede operar con las claves del almacén.
Referencia de API | Paquete (npm) | Código fuente de la biblioteca | Muestras | Enviar comentarios
Prerrequisitos
- Una suscripción a Azure: cree una cuenta gratuita.
- Instancia de Azure Key Vault. Revise las directivas de acceso de Key Vault para incluir los permisos necesarios para las tareas específicas realizadas en el código.
- Node.js, versión LTS
Configuración del proyecto
Abra un símbolo del sistema y cambie a la carpeta del proyecto. Cambie
YOUR-DIRECTORY
al nombre de la carpeta:cd YOUR-DIRECTORY
Si aún no tiene un archivo
package.json
en el directorio, inicialice el proyecto para crearlo:npm init -y
Instale la biblioteca cliente de claves de Azure Key Vault para JavaScript:
npm install @azure/keyvault-keys
Si quiere usar conexiones sin contraseña mediante Microsoft Entra ID, instale la biblioteca cliente de Azure Identity para JavaScript:
npm install @azure/identity
Autorización de acceso y conexión a Key Vault
Microsoft Entra ID proporciona la conexión más segura mediante la administración de la identidad de conexión (identidad administrada). Esta funcionalidad sin contraseña permite desarrollar una aplicación que no requiere tener claves almacenadas en el código.
Antes de autenticarse mediante programación en Azure para usar claves de Azure Key Vault, asegúrese de configurar el entorno.
Un desarrollador debe instalar la CLI de Azure e iniciar sesión de forma interactiva con el comando az login para iniciar sesión en Azure antes de usar DefaultAzureCredential en el código.
az login
Compilación de la aplicación
A medida que compile la aplicación, el código interactuará con dos tipos de recursos:
- KeyVaultKey, que incluye:
- Identificador, nombre y valor.
- Operaciones permitidas.
- Tipo como
EC
,EC-HSM
,RSA
,RSA-HSM
,oct
,oct-HSM
. - Propiedades como KeyProperties
- KeyProperties, que incluye los metadatos de la clave, como su nombre, versión, etiquetas, datos de expiración y si está habilitado.
Si necesita el valor de KeyVaultKey, use métodos que devuelvan KeyVaultKey:
Modelo de objetos
La biblioteca cliente de claves de Azure Key Vault para JavaScript incluye los siguientes clientes:
- KeyClient: el objeto KeyClient es el objeto principal del SDK. Este cliente permite realizar tareas de administración de claves, como crear, rotar, eliminar y enumerar las claves.
- CryptographyClient permite cifrar, descifrar, firmar, comprobar, encapsular y desencapsular claves.
Creación de un objeto KeyClient
Una vez que se han configurado la autorización de Key Vault y el entorno local, cree un archivo JavaScript que incluya los paquetes @azure/identity y @azure/keyvault-keys. Cree una credencial, como DefaultAzureCredential, para implementar conexiones sin contraseña en el almacén. Use esa credencial para autenticarse con un objeto KeyClient.
// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';
import { KeyClient } from '@azure/keyvault-keys';
// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential();
const client = new KeyClient(
`https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
credential
);
// Get key
const key = await client.getKey("MyKeyName");
Creación de un objeto CryptographyClient
El objeto CryptographyClient es el objeto operativo en el SDK, con la clave para realizar acciones como cifrar, descifrar, firmar y comprobar, encapsular y desencapsular.
Use la credencial de identidad de KeyClient, junto con el nombre de clave, para crear un CryptographyClient para realizar operaciones.
// Include required dependencies
import { DefaultAzureCredential } from '@azure/identity';
import {
CryptographyClient,
KeyClient,
KnownEncryptionAlgorithms,
RsaEncryptParameters
} from '@azure/keyvault-keys';
// Authenticate to Azure
// Create KeyClient
const credential = new DefaultAzureCredential();
const client = new KeyClient(
`https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
credential
);
// Get key
const key = await client.getKey("MyKeyName");
if (key?.name) {
// get encryption client
const encryptClient = new CryptographyClient(key, credential);
// encrypt data
const encryptParams = {
algorithm: KnownEncryptionAlgorithms.RSAOaep256,
plaintext: Buffer.from("Hello world!")
}
const encryptResult = await encryptClient.encrypt(encryptParams);
}
Consulte también
- Paquete (npm)
- Muestras
- Referencia de las API
- Código fuente de la biblioteca
- Envíenos sus comentarios