Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
Cifrado de nivel de campo del lado del cliente MongoDB - Controlador NodeJS - El campo keyAltNames no se crea en el documento de clave de datos en el almacén de claves local

He estado siguiendo esta guía: cómo usar MongoDB Client-Side Field Level Encryption (CSFLE) con Node.js/ para probar MongoDB CSFLE.

Al hacerlo, en el paso de crear la clave de datos en el almacén de bóveda de claves local https://developer.mongodb.com/how-to/client-side-field-level-encryption-csfle-mongodb-node/#create- a-data-key-in-mongodb-for-encrypting-and-decrypting-document-fields la clave de datos se crea correctamente pero keyAltName no se adjunta al documento de la clave de datos.

Probé esto varias veces y no hay nada malo en mi código y estoy siguiendo la guía tal como está. No puedo entender qué está causando este problema. La creación de la clave de datos es exitosa pero sin el campo keyAltNames. Una ayuda aquí sería muy apreciada.

El código relacionado con la creación de documentos clave de datos

 async findOrCreateDataKey(client) { const encryption = new ClientEncryption(client, { keyVaultNamespace: this.keyVaultNamespace, kmsProviders: this.kmsProviders }) await this.ensureUniqueIndexOnKeyVault(client) let dataKey = await client .db(this.keyDB) .collection(this.keyColl) .findOne({ keyAltNames: { $in: [this.keyAltNames] } }) if (dataKey === null) { dataKey = await encryption.createDataKey("local", { keyAltNames: [this.keyAltNames] }) return dataKey.toString("base64") } return dataKey["_id"].toString("base64") } }

Documento resultante

ingrese la descripción de la imagen aquí

Paquete JSON MongoDB Driver/MongoDB Client Side Encryption Versiones del paquete NPM

 "mongodb": "^3.6.0", "mongodb-client-encryption": "^1.2.1"
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

EDITAR: este problema ahora está solucionado por el equipo de MongoDB. Consulte el número 1 adjunto.

Ya está listo un ticket para solucionar este problema.

Visite el siguiente hilo que abrí yo mismo en los foros de MongoDB para obtener más información. -> https://developer.mongodb.com/community/forums/t/nodejs-the-keyaltnames-field-is-not-created-when-creating-the-data-key-in-mongodb-client-side- cifrado de nivel de campo/15875/3

Según los comentarios del hilo anterior, una solución es actualizar el documento local de KeyVault después de crearlo y agregar el campo keyAltName con su valor. Esta parece ser la única solución viable hasta que el equipo de MongoDB envíe una solución para esto en una versión futura.

over 4 years ago · Santiago Trujillo Denunciar

0

Logré resolver un problema similar al instalar mongodb-enterprise-cryptd lib en el nodo php . Para el contenedor mongo estaba usando la imagen oficial de mongo docker

 mongodb: image: mongo:4.2

ps, no estaba usando la versión empresarial de mongo. Más información aquí: conexión a una instancia de MongoCryptD en un entorno docker con Mongoose

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda