Identità multi-cliente

Quando gli sviluppatori creano software, questo include regolarmente moduli che vengono eseguiti su un server web, altri moduli che vengono eseguiti nel browser e altri che vengono eseguiti come app mobile native. In genere, sia gli sviluppatori sia le persone che utilizzano il software considerano tutti questi moduli come parte di una singola app.

L'implementazione OAuth 2.0 di Google supporta questa visione del mondo. Per utilizzare qualsiasi servizio basato su OAuth 2.0, devi configurare il software in Google API Console. L'unità dell'organizzazione in API Console è un "progetto" che può corrispondere a un'app con più componenti. Per ogni progetto puoi fornire informazioni di branding e devi specificare a quali API avrà accesso l'app. Ogni componente di un'app con più componenti è identificato da un client ID, una stringa univoca generata in API Console.

Obiettivi di autorizzazione tra client

Quando un'app utilizza OAuth 2.0 per l'autorizzazione, agisce per conto di un utente richiedendo un token di accesso OAuth 2.0 per l'accesso a una risorsa, che l'app identifica in base a una o più stringhe di ambito. Normalmente, all'utente viene chiesto di approvare l'accesso.

Quando un utente concede l'accesso alla tua app per un determinato ambito, sta guardando la schermata per il consenso, che include il branding del prodotto a livello di progetto che hai configurato in Google API Console. Pertanto, Google considera che, quando un utente ha concesso l'accesso a un determinato ambito a qualsiasi ID client in un progetto, la concessione indica la fiducia dell'utente nell'intera applicazione per quell'ambito.

Di conseguenza, all'utente non deve essere chiesto di approvare l'accesso a una risorsa più di una volta per la stessa applicazione logica, ogni volta che i componenti dell'applicazione possono essere autenticati in modo affidabile dall'infrastruttura di autorizzazione di Google, che oggi include app web, app Android, app di Chrome, app per iOS, app desktop native e dispositivi a input limitato.

Token di accesso tra client

Il software può ottenere i token di accesso OAuth 2.0 in diversi modi, a seconda della piattaforma su cui viene eseguito il codice. Per maggiori dettagli, consulta l'articolo sull'utilizzo di OAuth 2.0 per accedere alle API di Google. Normalmente, l'approvazione dell'utente è richiesta quando si concede un token di accesso.

Fortunatamente, l'infrastruttura di autorizzazione di Google può utilizzare le informazioni sulle approvazioni degli utenti per un ID client all'interno di un determinato progetto quando valuta se autorizzare altri utenti nello stesso progetto.

Di conseguenza, se un'app Android richiede un token di accesso per un determinato ambito e l'utente richiedente ha già concesso l'approvazione a un'applicazione web nello stesso progetto per lo stesso ambito, all'utente non verrà chiesto di nuovo di approvare. Questo funziona in entrambi i modi: se l'accesso a un ambito è stato concesso nella tua app per Android, non verrà richiesto nuovamente da un altro client nello stesso progetto, ad esempio un'applicazione web.