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

110
Vistas
firebase funciona llama a GCP - con un 403 - IAM bloquea la llamada

¡Hola en este increíble 2022, eso SERA mejor!

aquí está el caso que tenemos y el problema que enfrentamos:

  1. Tenemos dos partes del mismo proyecto: firebase (funciones de firebase creadas en javascript - proyecto A) y google cloud (función de nube creada en python - proyecto B).
  2. Desde la parte FirebaseFunction (A) estamos enviando un POST a CloudFunction (B)
  3. Queremos que esta solicitud se autentique con el IAM en el lado de GCP (B)

Y así en el proyecto A:

 const firebase = require("firebase-admin"); const botInformURL = "URLTOHIT"; const token = await firebase.auth().createCustomToken("XXX-notification-system"); const output = await axios.post(botInformURL, { headers: { "Content-Type": "application/json", Authorization: "Bearer " + token, }, method: "post", body: JSON.stringify({ additionalMessage }),

Desde la plataforma de la nube de Google (para CloudFunctions - en la configuración del proyecto B) he agregado el correo electrónico de la cuenta de servicio ((...) proyectoA (...) iam.gserviceaccount.com) como Invocador de funciones en la nube (también probé el administrador - sin éxito)

Y ahora, estoy siendo bloqueado en GCP con un 403.

¿Qué me estoy perdiendo aquí?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cuando una persona que llama sin autenticar envía una solicitud a Cloud Function, verá una respuesta de código de estado 401/403 . En este escenario, la salida es asegurarse de que 'allUsers' tenga el rol 'roles/cloudfunctions.invoker' en el IAM de Cloud Function. Puede consultar esta documentación para obtener más información al respecto.

Pero sí, tiene razón, si usa 'allUsers', expondría el punto final públicamente y cualquiera podría acceder a él .

Si quieres evitar esto, tienes que seguir los siguientes pasos:

 From the receiving function: 1. You need to configure the receiving function to accept requests from the calling function. 2. Use the gcloud functions add-iam-policy-binding command. From the calling function: 1. Create a Google-signed OAuth ID token with the audience (aud) set to the URL of the receiving function. 2. Include the ID token in an Authorization: Bearer ID_TOKEN header in the request to the function.

También puede consultar el enlace de Stackoverflow para obtener más información.

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