Best practice

In questa pagina sono riportate alcune best practice generali per l'integrazione con OAuth 2.0. Considera queste best practice in aggiunta a indicazioni specifiche per il tuo tipo di piattaforma di applicazioni e sviluppo. Consulta anche il consiglio per preparare la tua app per la produzione e i criteri OAuth 2.0 di Google.

Gestisci le credenziali client in modo sicuro

Le credenziali del client OAuth identificano l'identità dell'app e devono essere gestite con cautela. Archivia queste credenziali solo in uno spazio di archiviazione sicuro, ad esempio utilizzando un sistema di gestione dei secret come Google Cloud Secret Manager. Non impostare le credenziali come hardcoded, non eseguirne il commit in un repository di codice o pubblicarle pubblicamente.

Gestisci i token utente in sicurezza

I token utente includono sia i token di aggiornamento sia i token di accesso utilizzati dall'applicazione. Archivia i token in modo sicuro at-rest e non trasmetterli mai come testo normale. Utilizza un sistema di archiviazione sicuro appropriato per la tua piattaforma, ad esempio Keystore su Android, Servizi portachiavi su iOS e macOS o Archivio credenziali su Windows.

Revoca i token non appena non sono più necessari ed eliminali definitivamente dai tuoi sistemi.

Inoltre, tieni conto anche di queste best practice per la tua piattaforma:

  • Per le applicazioni lato server che archiviano token per molti utenti, criptali at-rest e assicurati che il datastore non sia accessibile pubblicamente a internet.
  • Per le app desktop native, ti consigliamo vivamente di utilizzare il protocollo PKCE (Proof Key for Code Exchange) per ottenere codici di autorizzazione che possono essere scambiati con token di accesso.

Gestire la revoca e la scadenza dei token di aggiornamento

Se la tua app ha richiesto un token di aggiornamento per l'accesso offline, devi anche gestirne l'annullamento della convalida o la scadenza. I token potrebbero essere invalidati per diversi motivi, ad esempio potrebbero essere scaduti o l'accesso alle tue app potrebbe essere stato revocato dall'utente o da un processo automatizzato. In questo caso, valuta attentamente come deve rispondere l'applicazione, ad esempio chiedendo all'utente all'accesso successivo o eseguendo la pulizia dei suoi dati. Per ricevere notifiche relative alla revoca del token, esegui l'integrazione con il servizio Protezione su più account.

Utilizza autorizzazione incrementale

Utilizza l'autorizzazione incrementale per richiedere gli ambiti OAuth appropriati quando la funzionalità è necessaria per la tua applicazione.

Non devi richiedere l'accesso ai dati alla prima autenticazione dell'utente, a meno che non sia essenziale per la funzionalità di base dell'app. Richiedi invece solo gli ambiti specifici necessari per un'attività, seguendo il principio di selezionare gli ambiti più piccoli e limitati possibili.

Richiedi sempre gli ambiti nel contesto per aiutare gli utenti a capire perché la tua app richiede l'accesso e come verranno utilizzati i dati.

Ad esempio, la tua applicazione può seguire questo modello:

  1. L'utente si autentica con la tua app.
    1. Non vengono richiesti ambiti aggiuntivi. L'app fornisce funzionalità di base per consentire all'utente di esplorare e utilizzare funzionalità che non richiedono dati o accesso aggiuntivi.
  2. L'utente seleziona una funzionalità che richiede l'accesso a dati aggiuntivi.
    1. La tua applicazione invia una richiesta di autorizzazione per questo ambito OAuth specifico, necessario per questa funzionalità. Se questa funzionalità richiede più ambiti, segui le best practice riportate di seguito.
    2. Se l'utente rifiuta la richiesta, l'app disattiva la funzionalità e fornisce all'utente ulteriore contesto per richiedere nuovamente l'accesso.

Gestire il consenso per più ambiti

Quando richiedi più ambiti contemporaneamente, gli utenti possono non concedere tutti gli ambiti OAuth che hai richiesto. L'app deve gestire il rifiuto degli ambiti disattivando le funzionalità pertinenti.

Se la funzionalità di base dell'app richiede più ambiti, spiegalo all'utente prima di richiedere il consenso.

Puoi inviare nuovamente la richiesta all'utente solo dopo che ha indicato chiaramente l'intenzione di utilizzare la funzionalità specifica che richiede l'ambito. L'app deve fornire all'utente il contesto e la giustificazione pertinenti prima di richiedere ambiti OAuth.

Dovresti ridurre al minimo il numero di ambiti richiesti dalla tua app contemporaneamente. Utilizza invece l'autorizzazione incrementale per richiedere ambiti nel contesto di caratteristiche e funzionalità.

Utilizza browser sicuri

Sul web, le richieste di autorizzazione OAuth 2.0 devono essere effettuate solo da browser web completi. Su altre piattaforme, assicurati di selezionare il tipo di client OAuth corretto e di integrare OAuth in base alle esigenze della tua piattaforma. Non reindirizzare la richiesta tramite ambienti di navigazione incorporati, tra cui WebView su piattaforme mobile, come WebView su Android o WKWebView su iOS. Utilizza invece le librerie OAuth native o la funzionalità Accedi con Google per la tua piattaforma.

Creazione e configurazione manuali di client OAuth

Per prevenire abusi, i client OAuth non possono essere creati o modificati in modo programmatico. Devi utilizzare Google Developers Console per accettare esplicitamente i Termini di servizio, configurare il client OAuth e preparare la verifica OAuth.

Per i flussi di lavoro automatizzati, valuta la possibilità di utilizzare account di servizio.