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

266
Vistas
Error: Falta la credencial para AssociateSoftwareTokenCommand con AWS CognitoIdentityProviderClient Javascript SDK

BLUF: Me gustaría configurar la asociación de tokens de software en AWS Cognito en una aplicación de JavaScript orientada al usuario (mediante AWS SDK) y tengo problemas con los errores "Falta la credencial".

Estoy tratando de crear una aplicación usando AWS Cognito usando Javascript SDK y CognitoIdentityProviderClient que requiere que el usuario use un token de software MFA.

Puedo registrarme y confirmar al usuario usando SignUpCommand y puedo generar una respuesta exitosa para el usuario con InitiateAuthCommand usando el nombre de usuario/contraseña de inicio de sesión (iniciar sesión por primera vez). En ese momento, necesito procesar un desafío MFA_SETUP que requiere el uso de un flujo AssociateSoftwareTokenCommand separado para generar los secretos y las respuestas.

Esperaría poder permitir que el usuario final, mientras inicia sesión a través de su navegador, emita el comando para asociar el token de software después de ingresar con éxito su nombre de usuario/contraseña por primera vez.

El problema con el que me encuentro es que aparece el siguiente error al emitir AssociateSoftwareTokenCommand:

 Error: Credential is missing at SignatureV4.credentialProvider (runtimeConfig.browser.js:16) at SignatureV4.<anonymous> (SignatureV4.js:169) at step (tslib.es6.js:102) at Object.next (tslib.es6.js:83) at tslib.es6.js:76 at new Promise (<anonymous>) at __awaiter (tslib.es6.js:72) at SignatureV4.signRequest (SignatureV4.js:165) at SignatureV4.<anonymous> (SignatureV4.js:85) at step (tslib.es6.js:102)

Un poco de búsqueda vigorosa en Google y búsqueda a través de StackOverflow, este método requiere un objeto de credencial en la configuración del Cliente, sin embargo, esta credencial, por lo que puedo decir de los documentos de Google/SO/AWS SDK, requiere que cree un objeto IAM y genere claves/un secreto llave.

Mi aplicación (construida con React) se basa principalmente en una sola aplicación/navegador y estoy tratando de evitar una lógica adicional del lado del servidor para actuar como intermediario si es posible, y obviamente no quiero dejar caer claves secretas en interfaces orientadas al usuario. .

Mis preguntas entonces son:

  • ¿Puedo hacer esto directamente en mi aplicación React sin acción que exponga las credenciales?
  • ¿Es un intermediario/proxy del lado del servidor la única forma de asociar de forma segura un token de software?
  • ¿O tal vez hay algún aspecto de estas credenciales que estoy pasando por alto?

Las líneas de código ofensivas son simples (puedo obtener la clave de sesión válida, no hay problema):

 const client = new CognitoIdentityProviderClient({ region: AWS_REGION }); const command = new AssociateSoftwareTokenCommand({Session: session }); const response = await client.send(command)

Otras búsquedas me han mostrado que el objeto credentials: {} luego iría en el objeto de configuración del cliente, que parte entiendo, simplemente no quiero poner eso en el lado del cliente con claves secretas, etc.

Gracias por cualquier ayuda.

about 4 years ago · Juan Pablo Isaza
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