firebase / firebase/firebase-cpp-sdk

[Bug] Unable to use custom claims in firestore security rule when querying from C++ SDK

Ouverte
#1,783 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
api: auth new type: question
Langage dominant
C++
Étoiles
326
Forks
137
Merge moyen
3 j 9 h
PR mergées (30 j)
5

Description

### [REQUIRED] Please fill in the following fields:

* Pre-built SDK from the [website](https://firebase.google.com/download/cpp)
* Firebase C++ SDK version: 13.0.0
* Problematic Firebase Component: Auth and Firestore
* Other Firebase Components in use: Functions, Storage
* Platform you are using the C++ SDK on: Mac
* Platform you are targeting: Desktop and iOS

### [REQUIRED] Please describe the issue here:

I get Missing or insufficient permissions when querying firestore collection that has a security rule that looks like:
```
match /subscriptions/{subscriptionId} {
allow read: if request.auth != null && request.auth.token.legacy_id == resource.data.user_id;
}
```

I am using the C++ SDK, which doesn't give direct access to the auth custom claims, but I am able to fetch custom claims via a Firebase function, and see the values correctly in the client after those are fetched.

If I write a security rule that depends on those claims, it fails. Does writing a rule that uses request.auth.token.legacy_id work when the request comes from the C++ SDK?

#### Steps to reproduce:

What's the issue repro rate? 100%

It appears that using a custom claim (say, a numeric secondary ID) and requiring that to match a field on a document doesn't work when the query is run from the C++ SDK.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire l’échec à 100 % avec Firebase C++ SDK 13.0.0 sur Mac, en ciblant desktop ou iOS, à l’aide de la règle Firestore indiquée et d’une requête sur subscriptions. Vérifiez le chemin des requêtes Auth et Firestore, y compris la custom claim récupérée via Firebase Functions. Le travail est terminé lorsque vous avez déterminé si la claim atteint la règle de sécurité pour les requêtes du C++ SDK et documenté ou corrigé la cause de l’erreur d’autorisation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp, firebase
Domaine
authentication, databases, security
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.