firebase / firebase/firebase-admin-node

FirbaseAdmin.Auth().verifyIdToken not tenant aware

オープン
#2,803 コメント 1 件 リアクション 1 件 担当者 1 名 @Xiaoshouzi-gh が担当を希望しています GitHub で見る
api: auth
主要言語
TypeScript
スター
1.7k
フォーク
419
平均マージ
3日 10時間
マージ済み PR(30日)
16

説明

* Operating System version: run.googleapis.com (linux)
* Firebase SDK version: 5.1.0
* Firebase Product: Admin auth
* Node.js version: 20
* NPM version: 10.8.2

### Verify id tokens in firebase functions will fail when using tenants in Google Identity platform

#### Steps to reproduce:

1 Create a app in Firebase and enable google identitiy platform.
2 Add tenant to identities platform
3 Add user to tenant
4 Log into app using user and tenant id
5 call google function from app
6 in function attempt to verify id token with FirebaseAdmin.auth().verifyIdToken('tokenString')

error
Error: There is no user record corresponding to the provided identifier.

#### Relevant Code:

```
var token = await admin.auth() .verifyIdToken(req.rawRequest.header('Authorization').substring(7),true);
```

I could use the TenantAuth but to get that I would need the TennantId which is in the token, which you can access by verifying the token but like I said you need to know the tenant for that. I could manually scrape the tenantId from the jet by parsing it myself but then I have to hard code its location in the jwt firebase attribute with could change.

```
var tenantAuth = await admin.auth().tenantManager().authForTenant(token.firebase.tenant);
var token = await tenantAuth.verifyIdToken(req.rawRequest.header('Authorization').substring(7),true);
```

Expected functionality would be that it detect the presence of a tenant in the firebase attribute and attempt to get the correct tenantAuth instance and use that to verify.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。