firebase / firebase-functions

Firebase SDK for Cloud Functions
https://firebase.google.com/docs/functions/
MIT License
1.01k stars 201 forks source link

v2 Functions Auth Context does not carry tenant information when using Identity Platform #1574

Open arndtvoges opened 2 weeks ago

arndtvoges commented 2 weeks ago

[REQUIRED] Version info

node: 20.14.0

firebase-functions: 5.0.1

firebase-tools: 13.11.2

firebase-admin: 12.1.1

[REQUIRED] Test case

See below

[REQUIRED] Steps to reproduce

  1. Create a Firebase v2 Function with Auth Context that listens to a document
    
    import { onDocumentCreatedWithAuthContext } from "firebase-functions/v2/firestore"

exports.syncUser = onDocumentCreatedWithAuthContext("users/{userId}", (event) => { const { authType, authId } = event; // These are the only two strings related to auth and do not contain tenant information console.log(authType, authId}; });


2. Authenticate client-side as a tentant-scoped user via Identify Platform
3. Observe that auth context ([as documented here](https://github.com/cloudevents/spec/blob/main/cloudevents/extensions/authcontext.md)) is not tenant aware.

### [REQUIRED] Expected behavior
Tenant id should be in Auth Context of v2 Functions. This seems to be a regression from v1 Functions where the tenantId is carried in context.

### [REQUIRED] Actual behavior
Auth Context of v2 Functions does not carry tenant information. This makes it impossible to access a tenant-scoped user's information unless tenantId is tracked outside of the auth stack because Firebase Auth is tenant specific and requires to be initiated with tenantId.

### Were you able to successfully deploy your functions?
Yes
google-oss-bot commented 2 weeks ago

I found a few problems with this issue:

arndtvoges commented 2 weeks ago
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

My bad, the missing section should be there now.