Attributs personnalisés et règles de sécurité
Définissez des attributs personnalisés pour les utilisateurs et intégrez-les aux règles de sécurité Firebase afin de contrôler l’accès aux ressources
Attributs personnalisés et règles de sécurité est une leçon Firebase Auth & Realtime Database Apps gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Firebase Auth & Realtime Database Apps, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Intro to Custom Claims
Beyond basic user authentication, Firebase allows you to define Custom Claims. These are key-value pairs that you can add to a user's ID token, providing extra information about the user.
Think of them as custom labels or badges attached to a user's identity.
Why Use Custom Claims?
Custom claims are powerful for implementing role-based access control (RBAC) or granting specific permissions within your app. Instead of just knowing 'who' the user is, you can know 'what' they are allowed to do.
- Designate users as 'admin', 'editor', or 'subscriber'.
- Grant access to premium features or content.
- Control data access based on custom attributes.
Setting Claims (Server-Side)
Custom claims are sensitive and must be set by a trusted environment, like your backend server, using the Firebase Admin SDK. This prevents malicious users from giving themselves elevated privileges.
When claims are set, the user's ID token is updated. Clients need to refresh their token to receive the new claims.
Simulating Claim Setting
This conceptual example shows how claims work. On a real backend, the Admin SDK would update a user's profile, and these claims would then be available in their ID token.
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String userId = "user123";
Map<String, Object> claims = new HashMap<>();
// --- Server-side action (simulated) ---
System.out.println("Server sets claims for " + userId);
claims.put("role", "admin");
claims.put("level", "premium");
// --- Client-side action (simulated after token refresh) ---
System.out.println("\nClient receives ID token with claims:");
System.out.println("User ID: " + userId);
System.out.println("Claims: " + claims);
// Client checks for specific claim
if (claims.containsKey("role") && claims.get("role").equals("admin")) {
System.out.println("Access check: User is an admin.");
} else {
System.out.println("Access check: Not an admin.");
}
}
}Accessing Claims (Client-Side)
Once a user is logged in and their ID token is refreshed (e.g., after login or explicitly refreshing), your client-side application can read these custom claims from the token.
The claims are embedded within the ID token, which is a JWT (JSON Web Token).
How Claims Power Rules
The true power of custom claims comes when you combine them with Firebase Security Rules. Any custom claim you set on a user's ID token is automatically available within your security rules.
This allows you to create highly specific and dynamic access control logic for your Realtime Database or Cloud Firestore.
Rule Example: Admin Access
Here's how a Firebase Realtime Database Security Rule might use a custom admin: true claim to restrict access to a specific data path.
Only users with this claim in their token would be able to read or write to /adminContent.
{
"rules": {
"adminContent": {
// Only users with 'admin: true' claim can read/write
".read": "auth.token.admin === true",
".write": "auth.token.admin === true"
},
"publicContent": {
// Anyone authenticated can read, no special claims needed
".read": "auth != null",
".write": "false"
}
}
}Rule Example: Premium Content
You can also use claims for different levels of access. This rule grants read access to /premiumContent only if the user has a level: 'premium' claim.
This is much more flexible than just checking if a user is logged in.
{
"rules": {
"premiumContent": {
// Only users with 'level: premium' claim can read
".read": "auth.token.level === 'premium'",
".write": "false"
},
"users": {
"$uid": {
".read": "auth.uid === $uid",
".write": "auth.uid === $uid"
}
}
}
}Best Practices for Claims
To ensure efficient and secure use of custom claims:
- Keep claims small: ID tokens have size limits.
- Don't store sensitive data: Claims are base64 encoded, not encrypted.
- Use for authorization: Not for general data storage.
- Token refresh: Remind users to refresh their ID token if claims change.
Claims Quiz
You've learned how custom claims enhance user roles and security rules. Which statement accurately describes a key aspect of Firebase Custom Claims?
Recap: Custom Claims & Rules
This lesson covered Firebase Custom Claims, a powerful feature for advanced user management.
- Custom claims allow you to add custom attributes to user ID tokens.
- They are set securely using the Firebase Admin SDK on your backend.
- These claims are seamlessly integrated with Firebase Security Rules, enabling robust, role-based access control for your app's resources.
- Always remember to refresh the client's ID token for changes to take effect.
Apprends Firebase Auth & Realtime Database Apps avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 11
- Leçons
- 44
Questions Fréquemment Posées
La leçon « Attributs personnalisés et règles de sécurité » est-elle gratuite ?
Oui — le texte complet de « Attributs personnalisés et règles de sécurité » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Firebase Auth & Realtime Database Apps, passe à CoddyKit PRO. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Attributs personnalisés et règles de sécurité » ?
Définissez des attributs personnalisés pour les utilisateurs et intégrez-les aux règles de sécurité Firebase afin de contrôler l’accès aux ressources Tu pratiques Firebase Auth & Realtime Database Apps avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Firebase Auth & Realtime Database Apps ?
Aucune expérience préalable n'est requise. Firebase Auth & Realtime Database Apps sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Attributs personnalisés et règles de sécurité » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Firebase Auth & Realtime Database Apps ?
Oui. Chaque leçon Firebase Auth & Realtime Database Apps inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Authentification par numéro de téléphone
- Authentification multifacteur (MFA)
- Attributs personnalisés et règles de sécurité
- Association de comptes et gestion des fournisseurs