Firebase Admin SDK ti consente di integrare i tuoi server con Firebase Authentication. Puoi utilizzare Firebase Admin SDK per gestire gli utenti o per gestire i token di autenticazione. Esistono diversi motivi per cui potresti voler eseguire questa operazione:
Gestione utenti
Non è sempre comodo dover visitare la Console di Firebase per gestire gli utenti di Firebase. L'API di gestione degli utenti amministratore fornisce accesso programmatico a questi stessi utenti. Ti consente persino di eseguire operazioni che non sono possibili con la console Firebase, ad esempio recuperare i dati completi di un utente e modificare la password, l'indirizzo email o il numero di telefono di un utente.
Autenticazione personalizzata
Puoi integrare un sistema di utenti esterni con Firebase. Ad esempio, potresti già avere un database utente preesistente o potresti voler eseguire l'integrazione con un provider di identità di terze parti non supportato in modo nativo da Firebase Authentication.
A questo scopo, puoi creare token personalizzati con rivendicazioni arbitrarie che identificano l'utente. Questi token personalizzati possono essere utilizzati per accedere al servizio Firebase Authentication su un'applicazione client e assumere l'identità descritta dalle rivendicazioni del token. Questa identità verrà poi utilizzata per accedere ad altri servizi Firebase come Cloud Storage.
Verifica dell'identità
Firebase Authentication viene utilizzato principalmente per identificare gli utenti della tua app al fine di limitare l'accesso ad altri servizi, come Cloud Storage. Puoi anche utilizzare il servizio per identificare questi utenti sul tuo server. In questo modo, puoi eseguire in modo sicuro la logica lato server per conto degli utenti che hanno eseguito l'accesso con Firebase Authentication.
Per farlo, puoi recuperare un token ID da un'applicazione client che ha eseguito l'accesso con Firebase Authentication e includerlo in una richiesta al tuo server. Il server verifica quindi il token ID ed estrae le rivendicazioni che identificano l'utente (incluso il suo uid
, il provider di identità con cui ha eseguito l'accesso e così via). Queste informazioni sull'identità possono essere utilizzate dal server per eseguire azioni per conto dell'utente.
Firebase Admin SDK fornisce metodi per svolgere le attività di autenticazione riportate sopra consentendoti di gestire gli utenti, generare token personalizzati e verificare i token ID.
Rivendicazioni utente personalizzate
In alcuni casi, potresti voler implementare il controllo granulare dell'accesso per gli utenti che hanno già eseguito l'accesso con uno dei fornitori di autenticazione Firebase supportati, come email/password, Google, Facebook, telefono e così via. Questa funzionalità è fornita da una combinazione di rivendicazioni utente personalizzate e regole di sicurezza dell'applicazione. Ad esempio, un utente che ha eseguito l'accesso con il fornitore Firebase Authentication Email e password può avere il controllo dell'accesso definito utilizzando claim personalizzati.
Gestione utenti
Firebase Admin SDK fornisce un'API per gestire gli utenti Firebase con privilegi elevati. L'API di gestione degli utenti amministratore consente di recuperare, creare, aggiornare ed eliminare utente in modo programmatico senza richiedere le credenziali esistenti di un utente e senza preoccuparsi del limite di frequenza lato client.
Gestire gli utentiCreazione di token personalizzati
Lo scopo principale della creazione di token personalizzati è consentire agli utenti di autenticarsi nei confronti di un meccanismo di autenticazione esterno o precedente. Potrebbe trattarsi di un provider di cui hai il controllo, ad esempio il tuo server LDAP, o di un provider OAuth di terze parti non supportato nativamente da Firebase, come Instagram o LinkedIn.
Firebase Admin SDK ha un metodo integrato per creare token personalizzati. Puoi anche creare token personalizzati in modo programmatico in qualsiasi linguaggio utilizzando librerie JWT di terze parti.
Il server deve creare un token personalizzato con un identificatore univoco (uid
) e passarlo a un'app client, che lo utilizzerà per accedere aFirebase. Consulta
Creare token personalizzati
per esempi di codice e ulteriori dettagli sulla procedura di creazione dei token personalizzati.
Verifica del token di identità
Se la tua app client Firebase comunica con il tuo server di backend, potresti dover identificare l'utente attualmente connesso sul server per poter eseguire la logica lato server per suo conto. Puoi farlo in modo sicuro utilizzando i token di identità, che vengono creati da Firebase quando un utente accede a un'app Firebase. I token di identità sono conformi alla specifica OpenID Connect e contengono dati per identificare un utente, nonché alcune altre informazioni relative al profilo e all'autenticazione. Puoi inviare, verificare e ispezionare questi token dai tuoi backend. In questo modo puoi identificare in modo sicuro l'utente che ha eseguito l'accesso e autorizzarlo alle tue risorse di backend.
Firebase Admin SDK ha un metodo integrato per verificare i token ID. Puoi anche verificare in modo programmatico i token ID in qualsiasi linguaggio utilizzando librerie JWT di terze parti. Per ulteriori dettagli e esempi di codice sulla procedura di verifica dei token ID, consulta Verificare i token ID.
Dichiarazioni utente personalizzate
Firebase Admin SDK ti consente di impostare attributi personalizzati sugli account utente. Con i claim utente personalizzati, puoi assegnare agli utenti diversi livelli di accesso (ruoli), che vengono poi applicati nelle regole di sicurezza di un'applicazione.
Dopo che i claim personalizzati sono stati modificati su un utente tramite Firebase Admin SDK, vengono propagati agli utenti autenticati lato client tramite i loro token ID. Il token ID è un meccanismo attendibile per l'invio di questi claim personalizzati e tutto l'accesso autenticato deve convalidare il token ID prima di elaborare la richiesta associata.
Controllare l'accesso con i claim personalizzati