Firebase-godkendelse og apps med realtidsdatabase · Lektion

Tilpassede claims og sikkerhedsregler

Definer tilpassede claims for brugere, og integrer dem med Firebase Security Rules for at styre adgangen til ressourcer.

Lektion 3 af 411 trin

Tilpassede claims og sikkerhedsregler er en gratis Firebase-godkendelse og apps med realtidsdatabase-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Firebase-godkendelse og apps med realtidsdatabase, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Firebase-godkendelse og apps med realtidsdatabase-kurset indeholder 4 lektioner i alt.

Introduktion til tilpassede krav

Ud over grundlæggende brugergodkendelse giver Firebase dig mulighed for at definere tilpassede krav. Det er nøgleværdi-par, som du kan føje til en brugers ID-token for at give yderligere oplysninger om brugeren.

Tænk på dem som tilpassede mærkater eller emblemer, der er knyttet til brugerens identitet.

Hvorfor bruge tilpassede krav?

Tilpassede krav er effektive til at implementere rollebaseret adgangskontrol (RBAC) eller tildele bestemte tilladelser i din app. I stedet for kun at vide, hvem brugeren er, kan du også vide, hvad brugeren har tilladelse til at gøre.

  • Udpeg brugere som 'administrator', 'redaktør' eller 'abonnent'.
  • Giv adgang til premiumfunktioner eller -indhold.
  • Styr dataadgang baseret på tilpassede attributter.

Angivelse af krav (serverside)

Tilpassede krav er følsomme og skal angives fra et miljø, du har tillid til, f.eks. din backend-server, ved hjælp af Firebase Admin SDK. Det forhindrer ondsindede brugere i at give sig selv udvidede rettigheder.

Når kravene angives, opdateres brugerens ID-token. Klienter skal opdatere deres token for at modtage de nye krav.

Simulering af angivelse af krav

Dette begrebsmæssige eksempel viser, hvordan krav fungerer. På en rigtig backend ville Admin SDK opdatere en brugers profil, og disse krav ville derefter være tilgængelige i brugerens 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.");
    }
  }
}

Adgang til krav (klientside)

Når en bruger er logget ind, og brugerens ID-token er opdateret (f.eks. efter login eller ved en udtrykkelig opdatering), kan din klientsideapplikation læse disse tilpassede krav fra tokenet.

Kravene er indlejret i ID-tokenet, som er en JWT (JSON Web Token).

Sådan styrer krav regler

Den virkelige styrke ved tilpassede krav viser sig, når du kombinerer dem med Firebase Security Rules. Alle tilpassede krav, du angiver i en brugers ID-token, er automatisk tilgængelige i dine sikkerhedsregler.

Det giver dig mulighed for at oprette meget specifik og dynamisk adgangskontrol for din Realtime Database eller Cloud Firestore.

Regel-eksempel: Administratoradgang

Sådan kan en sikkerhedsregel for Firebase Realtime Database bruge et tilpasset krav med admin: true til at begrænse adgangen til en bestemt datasti.

Kun brugere med dette krav i deres token kan læse fra eller skrive til /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"
    }
  }
}

Regel-eksempel: Premiumindhold

Du kan også bruge krav til forskellige adgangsniveauer. Denne regel giver kun læseadgang til /premiumContent, hvis brugeren har kravet level: 'premium'.

Det er langt mere fleksibelt end blot at kontrollere, om en bruger er logget ind.

{
  "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"
      }
    }
  }
}

Bedste praksis for krav

Sådan sikrer du en effektiv og sikker brug af tilpassede krav:

  • Hold kravene små: ID-tokens har størrelsesbegrænsninger.
  • Gem ikke følsomme data: Krav er kodet med base64, ikke krypteret.
  • Brug dem til autorisation: Ikke til generel datalagring.
  • Opdater tokenet: Mind brugerne om at opdatere deres ID-token, hvis kravene ændres.

Quiz om krav

Du har lært, hvordan tilpassede krav forbedrer brugerroller og sikkerhedsregler. Hvilken påstand beskriver korrekt et vigtigt aspekt ved Firebase Custom Claims?

Opsummering: Tilpassede krav og regler

Denne lektion handlede om Firebase Custom Claims, en effektiv funktion til avanceret brugeradministration.

  • Tilpassede krav giver dig mulighed for at føje tilpassede attributter til brugernes ID-tokens.
  • De angives sikkert ved hjælp af Firebase Admin SDK på din backend.
  • Disse krav integreres problemfrit med Firebase Security Rules og muliggør robust, rollebaseret adgangskontrol til din apps ressourcer.
  • Husk altid at opdatere klientens ID-token, for at ændringerne kan træde i kraft.
Gratis at komme i gang

Lær Firebase-godkendelse og apps med realtidsdatabase med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
11
Lektioner
44

Ofte stillede spørgsmål

Er lektionen “Tilpassede claims og sikkerhedsregler” gratis?

Ja — alle 3 lektioner i læringssporet Firebase-godkendelse og apps med realtidsdatabase, inklusive “Tilpassede claims og sikkerhedsregler”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Firebase-godkendelse og apps med realtidsdatabase-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Tilpassede claims og sikkerhedsregler”?

Definer tilpassede claims for brugere, og integrer dem med Firebase Security Rules for at styre adgangen til ressourcer. Du øver dig i Firebase-godkendelse og apps med realtidsdatabase med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Firebase-godkendelse og apps med realtidsdatabase?

Der kræves ingen tidligere erfaring. Firebase-godkendelse og apps med realtidsdatabase på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Tilpassede claims og sikkerhedsregler”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Firebase-godkendelse og apps med realtidsdatabase-lektion?

Ja. Alle Firebase-godkendelse og apps med realtidsdatabase-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Godkendelse med telefonnummer
  2. Multifaktorgodkendelse (MFA)
  3. Tilpassede claims og sikkerhedsregler
  4. Sammenkædning af konti og administration af udbydere
← Tilbage til Firebase-godkendelse og apps med realtidsdatabase