Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

108
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!