Firebase: erota identiteetti, oikeudet, tallennus ja viestit

Tiivistelmä

Firebase sisältää palveluja, joiden SDK:t, käyttöoikeudet ja hinnoittelu eroavat. Käyttäjän tunnistaminen ei oikeuta kaikkiin tietoihin. Arvioi turvallisuus ja kustannukset palvelukohtaisesti.

Kuvitteellinen tyhjä henkilöllisyyden tarkistushuone, kaksi turva-avainta, tyhjä kortti ja viininpunainen kansio
Tässä artikkelissa

Firebase sisältää palveluja, joiden SDK:t, käyttöoikeudet ja hinnoittelu eroavat. Käyttäjän tunnistaminen ei oikeuta kaikkiin tietoihin. Arvioi turvallisuus ja kustannukset palvelukohtaisesti.

Tunnistautuminen ja valtuutus

Firebase Authentication hoitaa kirjautumisen; oikeudet on määriteltävä erikseen. Cloud Firestoren verkko- ja mobiiliasiakkaat käyttävät Security Rules -sääntöjä. Palvelinkirjastot ohittavat ne ja käyttävät IAM:ia: sama kontrolli ei kata molempia reittejä. Dokumentoitu verkon MFA edellyttää Firebase Authentication with Identity Platform -palvelua.

Tiedot ja tiedostot

Cloud Firestore ja Realtime Database ovat erillisiä tietokantapalveluja; Cloud Storage tallentaa objekteja, kuten tiedostoja. Niillä ei ole yhtä yhteistä turvasääntöä. Nykyinen FAQ edellyttää Blaze-tilausta Cloud Storage for Firebaseen, myös olemassa oleviin säilöihin; maksutonta käyttöä voi silti olla. Tarkista kiintiöt ja laskutus ennen ilmaisuusväitteitä.

FCM-ilmoitukset

FCM HTTP v1 käyttää palvelinvaltuutusta, muun muassa lyhytikäisiä OAuth 2.0 -pääsytunnisteita. Lähetä luotetusta ympäristöstä, älä sisällytä ylläpitotunnuksia asiakasohjelmaan. Laitteen rekisteröintitunniste osoittaa kohteen; se ei ole käyttäjän ID-token tai liiketoiminnan käyttöoikeus.

Istunnot ja ylläpito

Erota ID-token, päivitystunniste ja peruminen. Kryptografinen kelvollisuus ei todista jatkuvaa valtuutusta. Määritä tarpeelliset lokit, säilytys, kustannushälytykset ja kohdekohtaiset oikeudet. Firebase ei automaattisesti tee käsittelystä GDPR:n mukaista.

Lähteet

Toimituksellinen tarkistus: 1. marraskuuta 2026.

Vie identiteettipäätökset resolvereihin.

Onnistunut kirjautuminen ei valtuuta kaikkia graafin kenttiä. Jokaiseen resolveriin saapuvan identiteettikontekstin on tuettava pyydetyn objektin ja arkaluonteisten tietojen tarkistuksia.

  • Testaa samaa kenttää useiden roolien ja omistajien alaisuudessa.
  • Estä objektin käyttöoikeus ennen sisäkkäisten kenttien laskemista.
  • Toista uudelleen roolimuutosten tai istunnon peruuttamisen jälkeen.

Ensisijainen lähde: OWASP — GraphQL Cheat Sheet. Aiheeseen liittyvä menetelmä: lue käytännön opas.

API-sivutus ja johdonmukainen vienti

Muuttuva aineisto voi aiheuttaa puutteita tai toistoja viennissä.

  • Kirjaa suodattimet, järjestys ja tasatilanteen ratkaiseva avain. Selvitä, tarjoaako API tilannekuvan vai muuttuvan kokoelman. Testaa luominen ja poistaminen lukemisen aikana; kursorin olemassaolo ei takaa jäädytettyä aineistoa.
  • AIP-158:ssa tyhjä next_page_token päättää lukemisen, ei lyhyt tai tyhjä tulossivu. Kuvitteellisissa sivuissa [A,B] ja [B,C] on neljä riviä mutta kolme yksilöllistä tunnistetta. Havaitse myös sama kursori ilman etenemistä ja noudata käytetyn API:n sopimusta.
  • Tallenna erä pysyvästi ennen jatkotilan vahvistamista. Toista keskeytynyt erä vakailla tunnisteilla ja tarkista käyttöoikeus jokaisella pyynnöllä; kursori ei ole lupa tietoihin. Jos tilannekuva vanhenee, aloita uudelleen tai täsmäytä määritellyllä tavalla; älä yhdistä eri tiloja hiljaisesti.

Toistettava hyväksyntätapaus

Kuvitteellinen esimerkki: tiedot eivät kuvaa asiakasta tai havaittua tulosta.

Näytä tapauksen tiedot
{
    "page_1_ids": [
        "A",
        "B"
    ],
    "page_2_ids": [
        "B",
        "C"
    ],
    "next_cursor": "c2",
    "empty_page_has_next_cursor": true
}

Odotettu päätös

B toistuu. Tarkista tunnisteet ja seuraa kursoria myös tyhjän sivun jälkeen.

Tarkistusmenettely

  1. Määritä suodattimet, vakaa järjestys ja tunnisteet.
  2. Testaa toisto ja tyhjä sivu jatkokursorilla.
  3. Säilytä tunnisteet ja todellinen loppuehto. Vertaa vastaanotettuja objekteja ja yksilöllisiä tunnisteita; merkitse toistuva kursori tulkitsematta jatkolinkin sisältävää tyhjää sivua keruun lopuksi.

Google AIP-158 — Pagination

Todistaako odotettu rivimäärä viennin täydellisyyden?

Ei. Puuttuva ja toistuva tunniste voivat kumota toisensa määrässä. Vertaa tunnisteita, rajausta ja katkaisuaikaa sekä kirjaa ratkaisemattomat erot.

Ensisijainen lähde: Google AIP-158 — Pagination. Aiheeseen liittyvä menetelmä: lue käytännön opas.

Passkeyt: verkkotunnuksen ja RP ID:n vaihto

Erota tili, verkkoalkuperä ja RP ID, jotta tunnistetietoja ei siirretä hiljaisesti uuteen rajaukseen.

  • Kirjaa vanhat ja uudet alkuperät, RP ID:t ja niihin liittyvät tilit. Sama tilinimi ei tee passkeysta kelvollista toiselle RP ID:lle. Tarkista WebAuthnin sallimat yhdistelmät ja siirtymän aikana toimivat pääsypolut.
  • Tarkista valtuutetussa testiympäristössä haaste, alkuperä, RP ID ja tilisidonta sopivalla kirjastolla. Testaa odottamaton alkuperä ja toistettu haaste. RP ID:n vaihto vaatii uuden tunnistetun rekisteröinnin; rivin kopiointi ei siirrä avainta.
  • Testaa käyttäjä, jolla on vain vanha tunniste, palautuminen ja avoimet istunnot. Määritä polkujen avaus ja poisto testatulla paluulla. Rekisteröinti uudessa tunnuksessa ei osoita kaikkien vanhojen istuntojen peruuttamista.

Toistettava hyväksyntätapaus

Kuvitteellinen esimerkki: tiedot eivät kuvaa asiakasta tai havaittua tulosta.

Näytä tapauksen tiedot
{
    "old_origin": "https://login.old.example",
    "old_rp_id": "old.example",
    "new_origin": "https://login.new.example",
    "new_rp_id": "new.example",
    "same_service_account": true,
    "expected": "authenticated_new_registration"
}

Odotettu päätös

Kuvitteellinen esimerkki: tili säilyy, mutta old.example vaihtuu new.exampleksi eri RP ID:llä. Vanhaa tunnistetta ei voi hiljaisesti siirtää; uusi rekisteröinti seuraa suunniteltua tunnistettua polkua.

W3C — Web Authentication Level 2

Ensisijainen lähde: W3C — Web Authentication Level 2. Aiheeseen liittyvä menetelmä: lue käytännön opas.

Identiteetti: tekijät, istunnot ja palautus

Firebase: lyhyt tunniste ei päätä koko istuntoa

Dokumentaatio määrittää ID-tokenin kestoksi tunnin; päivitystunnisteilla saa uusia tunnisteita. Päivitystunnisteiden peruminen ja ID-tokenin perumisen tunnistaminen ovat eri kontrolleja.

  • Kohdista peruminen asianomaiseen tiliin.
  • Käytä dokumentoitua SDK:n perumistarkistusta, esimerkiksi checkRevoked.
  • Kokeile vanhaa tunnistetta jokaisessa suojatussa taustapalvelussa ja tarkista oikeudet.

Tutustu identiteetin kontrolleihin →

Lähteet tarkistettu · NIST · Authenticator Event Management NIST · Session Management Firebase · Manage User Sessions