Estoy tratando de autorizar llamadas de API Gateway mediante un autorizador de grupo de usuarios de Cognito. Si obtengo el token de acceso de la interfaz de usuario alojada que ofrece AWS y lo paso como encabezado en Postman, todo funciona bien y puedo llamar a mis API.
Así que decidí ver si puedo obtener ese token JWT mediante programación en Node.js, sin usar Amplify. Al usar el módulo de nodo 'amazon-cognito-identity-js' (que es lo que Amplify realmente usa), puedo autenticarme con éxito en un grupo de usuarios de Cognito (llamando al método CognitoUser() , luego llamando a authenticateUser() y finalmente en su devolución de llamada Puedo obtener los tokens necesarios con result.getAccessToken().getJwtToken() ). De esta manera puedo obtener un token de acceso, un token de identificación y un token de actualización. Sin embargo, ese token de acceso no funciona en Postman y la API regresa sin autorización.
Traté de analizar su estructura y es muy similar al token de acceso devuelto por la interfaz de usuario alojada. Las únicas diferencias son: no tiene una propiedad de versión, el alcance es diferente y tiene una propiedad extra origin_jti. El iss, client_id y nombre de usuario son los mismos.
¿Qué estoy haciendo mal?