Introduzione all'API Admin Auth

Firebase Admin SDK ti consente di integrare i tuoi server con Firebase Authentication. Puoi utilizzare Firebase Admin SDK per gestire gli utenti o i token di autenticazione. Esistono diversi motivi per cui potresti volerlo fare:

Gestione utenti

Non è sempre conveniente dover visitare la console Firebase per gestire gli utenti Firebase. L'API di gestione degli utenti amministratore fornisce accesso programmatico a questi stessi utenti. Ti consente persino di eseguire operazioni che la console Firebase non può eseguire, 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à disporre di un database utenti preesistente o voler eseguire l'integrazione con un provider di identità di terze parti che Firebase Authentication non supporta in modo nativo.

A questo scopo, puoi creare token personalizzati con rivendicazioni arbitrarie che identificano l'utente. Questi token personalizzati possono poi essere utilizzati per accedere al servizio Firebase Authentication su un'applicazione client e assumere l'identità descritta dalle rivendicazioni del token. Questa identità verrà quindi 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 includere il token in una richiesta al tuo server. Il server verifica quindi il token ID ed estrae le attestazioni 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 poi essere utilizzate dal server per eseguire azioni per conto dell'utente.

Firebase Admin SDK fornisce metodi per eseguire le attività di autenticazione sopra descritte consentendoti di gestire gli utenti, generare token personalizzati e verificare i token ID.

Rivendicazioni utente personalizzate

In alcuni casi, potresti voler implementare un controllo dell'accesso granulare per gli utenti che hanno già eseguito l'accesso con uno dei Firebase provider di autenticazione supportati, come email/password, Google, Facebook, telefono e così via. Una combinazione di rivendicazioni utente personalizzate e regole di sicurezza dell'applicazione fornisce questa funzionalità. Ad esempio, un utente che ha eseguito l'accesso con il provider Firebase Authentication Email e password può avere il controllo dell'accesso definito utilizzando rivendicazioni personalizzate.

Gestione utenti

Firebase Admin SDK fornisce un'API per la gestione degli utenti Firebasecon privilegi elevati. L'API di gestione utenti amministratore consente di recuperare, creare, aggiornare ed eliminare utenti in modo programmatico senza richiedere le credenziali esistenti di un utente e senza preoccuparsi della limitazione della frequenza lato client.

Gestire gli utenti

Creazione di token personalizzati

Lo scopo principale della creazione di token personalizzati è consentire agli utenti di autenticarsi in base a un meccanismo di autenticazione esterno o legacy. Può trattarsi di un'origine che controlli, ad esempio il tuo server LDAP, o di un provider OAuth di terze parti che Firebase non supporta in modo nativo, come Instagram o LinkedIn.

Firebase Admin SDK dispone di un metodo integrato per la creazione di token personalizzati. Puoi anche creare token personalizzati a livello di programmazione 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 a Firebase. Consulta Creare token personalizzati per esempi di codice e maggiori dettagli sulla procedura di creazione dei token personalizzati.

Creare token personalizzati

Verifica del token ID

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 ID, creati da Firebase quando un utente accede a un'app Firebase. I token ID sono conformi alla specifica OpenID Connect e contengono dati per identificare un utente, nonché 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 ad accedere alle risorse di backend.

Firebase Admin SDK ha un metodo integrato per la verifica dei token ID. Puoi anche verificare in modo programmatico i token ID in qualsiasi linguaggio utilizzando librerie JWT di terze parti. Consulta la sezione Verificare i token ID per ulteriori dettagli ed esempi di codice sulla procedura di verifica dei token ID.

Verificare i token ID

Attestazioni utente personalizzate

Firebase Admin SDK ti consente di impostare attributi personalizzati sugli account utente. Con le rivendicazioni utente personalizzate, puoi concedere agli utenti diversi livelli di accesso (ruoli), che vengono poi applicati nelle regole di sicurezza di un'applicazione.

Dopo che le rivendicazioni personalizzate vengono modificate per un utente tramite Firebase Admin SDK, vengono propagate agli utenti autenticati sul lato client tramite i relativi token ID. Il token ID è un meccanismo affidabile per la distribuzione di queste rivendicazioni personalizzate e tutto l'accesso autenticato deve convalidare il token ID prima di elaborare la richiesta associata.

Controllare l'accesso con rivendicazioni personalizzate