Esegui il provisioning degli account utente

Il provisioning delle identità (o provisioning degli account) è il processo di configurazione degli account e di connessione tra i tre sistemi e, in alcuni casi, di connessioni tra gli utenti e i loro dispositivi.

In un ambiente Android aziendale, fino a tre diversi sistemi contengono dati dell'account:

  • La directory utenti dell'organizzazione è la fonte definitiva di informazioni sugli utenti.
  • In qualità di provider di soluzioni EMM, devi gestire almeno una directory minima di utenti dell'organizzazione.
  • Google conserva alcune informazioni sugli account della versione gestita di Google Play e sugli Account Google per fornire la gestione delle app tramite Google Play.

Una risorsa Users rappresenta un account associato a un'azienda. L'account può essere specifico per un dispositivo o essere associato a un individuo che dispone di più dispositivi (cellulare, tablet e così via) e utilizza l'account su tutti i dispositivi. L'account può fornire accesso solo alla versione gestita di Google Play o ad altri servizi Google, a seconda di come hai configurato l'azienda del cliente:

  • Gli account della versione gestita di Google Play offrono alle aziende un mezzo trasparente per creare automaticamente account utente o dispositivo tramite il proprio provider di soluzioni di gestione della mobilità aziendale (EMM). Questi account forniscono accesso solo alla versione gestita di Google Play.

  • Gli Account Google sono account esistenti gestiti da Google e richiedono la sincronizzazione con le origini degli Account Google.

Tabella 1: campi e metodi dell'API Users

 Account della versione gestita di Google PlayAccount gestiti da Google
Campo
id
kind
accountIdentifierUn identificatore univoco creato e mappato all'ID (userId) restituito da Google Play. Non usare informazioni che consentono l'identificazione personale (PII).Non impostato.
accountTypedeviceAccount, userAccountuserAccount
displayNameIl nome visualizzato negli elementi dell'interfaccia utente, ad esempio all'interno di Google Play. Non utilizzare informazioni che consentono l'identificazione personale.Non impostato.
managementTypeemmManagedgestito da google, emmManaged
primaryEmailNon impostato.Questo campo è la chiave primaria con cui gestisci la sincronizzazione dagli account del dominio gestiti da Google agli account utente nel tuo sistema.
Metodi
elimina
generateAuthenticationToken
generateToken
get
getAvailableProductSet
insert
list
revokeToken
setAvailableProductSet
update

Account della versione gestita di Google Play

Esistono due tipi di account della versione gestita di Google Play:

Account utente
Offre a un singolo utente l'accesso alla versione gestita di Google Play da tutti i suoi dispositivi. Devi eseguire il provisioning degli account utente per gli utenti, che non dispongono delle credenziali necessarie per aggiungere autonomamente account della versione gestita di Google Play.
Per creare un account utente, chiama il numero Users.insert. Imposta il tipo di account su userType e imposta un accountIdentifier, che fa riferimento in modo univoco all'utente all'interno dell'azienda.
Best practice: non utilizzare lo stesso account su più di 10 dispositivi.
Account dispositivo
Consente di accedere alla versione gestita di Google Play da un singolo dispositivo. Se è stato emesso un token di autenticazione per un account del dispositivo, la nuova richiesta di un token di autenticazione per quell'account del dispositivo disattiva il token precedente. Ogni dispositivo deve disporre delle proprie licenze separate per le app.
Per creare un account del dispositivo, chiama il numero Users.insert e imposta il tipo di account su deviceType.

Creerai e gestirai una mappatura tra le identità degli utenti o dei dispositivi e i corrispondenti account della versione gestita di Google Play e gestisci gli account per tutto il loro ciclo di vita. L'organizzazione non ha bisogno di alcun controllo diretto su questi account della versione gestita di Google Play, poiché gli account esistono esclusivamente per la gestione delle applicazioni.

Requisiti per le console e i server EMM

Gli account della versione gestita di Google Play vengono creati on demand e in modo programmatico utilizzando le API EMM di Google Play e le API framework Android nei componenti della soluzione EMM (console EMM, server EMM e DPC). Questi componenti interagiscono in fase di runtime per creare un account utente e per eseguire il provisioning del profilo di lavoro sul dispositivo di destinazione. La console o il server EMM devono:

  • Fornisci un meccanismo per creare identificatori anonimi di account univoci (il campo accountIdentifier) da utilizzare nella chiamata a Users.insert. Ad esempio, potresti utilizzare un valore interno per l'utente ("sanjeev237389") o un numero di tag asset criptico ("asset#44448"). Evita di utilizzare informazioni che consentono l'identificazione personale (PII) per l'identificatore dell'account.

  • Archivia la mappatura tra userId (restituito dalla chiamata insert) e accountIdentifier che selezioni.

Per i requisiti per il tuo DPC, consulta Creare un controller dei criteri dei dispositivi.

Creare un account utente della versione gestita di Google Play

  1. Un utente accede al tuo DPC utilizzando (in genere) credenziali aziendali.
  2. Il DPC richiede i dettagli sull'utente al server o alla console EMM. Se l'utente è sconosciuto al tuo sistema:
    1. Invia la richiesta di un nuovo account della versione gestita di Google Play chiamando Users.insert con i valori per i nuovi accountIdentifier, displayName e accountType.
      • Il sistema deve creare accountIdentifier. L'identificatore dell'account deve essere un valore univoco nel sistema. Non utilizzare PII per l'identificatore dell'account.
      • Il valore displayName viene mostrato nel selettore di account del Google Play Store e dovrebbe avere un certo significato per l'utente (ma non PII dell'utente). Ad esempio, il nome potrebbe includere il nome dell'organizzazione o un nome generico relativo all'EMM.
      • Imposta accountType su userAccount o deviceAccount. Un userAccount può essere utilizzato su più dispositivi, mentre un deviceAccount è specifico per un singolo dispositivo. Il valore accountType specificato può essere deviceType o userType.
      • Imposta managementType su emmManaged.
    2. Google Play elabora la richiesta, crea l'account e restituisce un userId.
    3. Archivia la mappatura tra accountIdentifier e userId nel datastore.
    4. Chiama Users.generateAuthenticationToken con il userId e il enterpriseId. Google Play restituisce un token di autenticazione che può essere utilizzato una sola volta e che deve essere usato entro pochi minuti.
    5. Inoltra in modo sicuro il token di autenticazione al tuo DPC.
  3. Il DPC esegue il provisioning del profilo di lavoro e aggiunge l'account al profilo o al dispositivo di lavoro.
  4. L'utente può accedere alla versione gestita di Google Play all'interno del profilo di lavoro o del dispositivo.

Account amministratore

Se un amministratore crea un'azienda con account della versione gestita di Google Play, l'Account Google che utilizza non può essere un account G Suite. L'account che utilizza diventa proprietario dell'azienda e il proprietario può aggiungere altri proprietari e amministratori nella versione gestita di Google Play Console.

Sia Enterprises.get che Enterprises.completeSignup restituiscono un elenco di indirizzi email di amministratori associati a un'azienda (solo per le aziende con account della versione gestita di Google Play).

Gestisci i cicli di vita degli account

Nel deployment degli account Google Play gestiti, sei responsabile del ciclo di vita degli account utente e del dispositivo, il che significa che devi creare, aggiornare ed eliminare questi account.

Gli account vengono creati durante il provisioning dei dispositivi, un processo che coinvolge l'app DPC e la console EMM. Per le istruzioni, consulta il metodo Account Google Play gestiti.

Per modificare le informazioni di un account, chiama Users.update.

Per eliminare un account, chiama Users.delete.

Gli amministratori non possono eliminare singoli account, ma possono eliminare un'azienda con account della versione gestita di Google Play. Quando eseguono questa operazione, il dispositivo e gli account utente associati all'azienda vengono eliminati, come descritto in Annullare la registrazione, registrare di nuovo, eliminare.

Scadenza dell'account

A volte gli account o i relativi token scadono, il che può accadere per diversi motivi:

  • Il token di autenticazione ottenuto per aggiungere l'account al dispositivo è scaduto.
  • L'account o l'azienda sono stati eliminati.
  • Per gli account del dispositivo, l'account è stato aggiunto a un nuovo dispositivo e viene quindi disattivato sul vecchio dispositivo.
  • Vengono attivati i controlli automatici degli abusi.

Nella maggior parte dei casi (a meno che l'EMM non sposti intenzionalmente un account del dispositivo su un nuovo dispositivo), la best practice consiste nell'utilizzare l'API EMM di Google Play per richiedere un nuovo token al server EMM, prendere nota dello stato dell'account e dell'azienda e di eventuali errori restituiti, quindi intraprendere le azioni appropriate sul dispositivo. Ad esempio, aggiorna il token o, se l'errore non è recuperabile, reimposta o annulla la registrazione del dispositivo.

La versione 9.0.00 di Google Play Services avvisa il DPC che l'account è scaduto utilizzando l'azione di trasmissione:

  1. Quando l'account della versione gestita di Google Play viene invalidato su un dispositivo, il DPC riceve una trasmissione con la seguente azione:

    com.google.android.gms.auth.ACCOUNT_REAUTH_REQUIRED

    L'intent di trasmissione contiene un elemento aggiuntivo Parcelable con il nome account, che è l'oggetto Account dell'account invalidato.

  2. Il DPC controlla Account#name con il server EMM per identificare l'account invalidato.

  3. Il DPC richiede nuove credenziali o un nuovo account, seguendo la stessa procedura utilizzata per il provisioning del dispositivo inizialmente.


Account Google

Per le organizzazioni che utilizzano Account Google, gli account utente di una soluzione EMM riflettono gli account utente esistenti associati a un altro servizio Google (ad esempio, G Suite). Questi account sono googleManaged (Tabella 1) perché i servizi di backend di Google sono la fonte per la creazione e le informazioni sull'account.

In qualità di EMM, puoi fornire meccanismi nella tua console per semplificare la creazione e la sincronizzazione continua degli account utente presenti nel tuo sistema con le origini degli account del dominio Google utilizzando strumenti quali Google Cloud Directory Sync (GCDS) e l'API Directory dell'SDK Google Admin per avere una panoramica dei vari approcci. Il modello di identità del dominio gestito da Google richiede che l'account utente esista nel contesto della tua soluzione (console EMM, server EMM, magari in un datastore) prima di poterne eseguire il provisioning su qualsiasi dispositivo dell'utente nel contesto di un profilo di lavoro.

Durante il provisioning dell'identità, il dominio gestito da Google dell'organizzazione include gli account utente. In alcuni casi, le identità online esistenti degli utenti (ad esempio gli account Microsoft Exchange) vengono sincronizzate con i loro Account Google.

Dopo la sincronizzazione iniziale, ma prima che le app vengano distribuite sul dispositivo degli utenti, questi devono attivare il proprio Account Google, come descritto nella sezione Attivare gli account sui dispositivi. Questa attivazione consente al dispositivo di accedere alla versione gestita di Google Play.

Sincronizzare gli account cliente

In un deployment di Account Google, l'organizzazione può utilizzare lo strumento GCDS per sincronizzare i dati del proprio dominio G Suite con quelli della propria directory LDAP. In alternativa, puoi utilizzare GCDS per eseguire questa operazione per conto dell'organizzazione, se quest'ultima ti concede l'accesso.

Lo strumento GCDS chiama l'API Google Directory e sincronizza i nomi utente, ma non le password.

Se l'organizzazione utilizza Microsoft Active Directory e vuole mantenere sincronizzate le password G Suite degli utenti con quelle di Active Directory, loro o tu puoi utilizzare lo strumento G Suite Password Sync (GSPS) con GCDS.

Per le istruzioni di GCDS per gli amministratori, vedi Preparare il dominio G Suite per la sincronizzazione.

API Google Directory

In un deployment di Google Account, puoi utilizzare l'API Google Directory per sincronizzare directory attive, password o entrambi:

  • Utilizzo dell'API Directory per la sincronizzazione solo directory. Se disponi dell'accesso di sola lettura al dominio Google gestito dell'organizzazione, puoi utilizzare l'API Directory di Google per ottenere i dati dell'Account Google, ad esempio i nomi utente (ma non le password) da Google. Poiché non puoi scrivere dati negli Account Google degli utenti, l'organizzazione è pienamente responsabile dei cicli di vita degli account.

    Lo scenario 1 e gli scenari di autenticazione SSO basati su SAML descrivono questa situazione in modo più dettagliato.

    Per informazioni su come utilizzare l'API Directory in questo modo, consulta Recuperare tutti gli utenti account nella documentazione dell'API Directory.

  • Utilizzare l'API Directory per la sincronizzazione delle directory e della password facoltativa. Se disponi dell'accesso in lettura/scrittura al dominio Google gestito dell'organizzazione, puoi utilizzare l'API Google Directory per ottenere nomi utente, password e altri dati degli Account Google. Puoi aggiornare queste informazioni e sincronizzarle con il tuo database. Potresti avere la responsabilità completa o parziale dei cicli di vita dell'account, a seconda della soluzione che offri al tuo cliente.

    Lo scenario 2 descrive questa situazione in modo più completo.

    Per ulteriori informazioni sull'utilizzo dell'API Directory per gestire le informazioni degli account utente, consulta la guida per gli sviluppatori dell'API Directory: account utente.

Scenari degli Account Google

Di seguito sono descritti alcuni scenari tipici di provisioning delle identità degli Account Google.

Scenario 1. Cliente responsabile dei cicli di vita dell'account

Utilizzare l'API Directory (con accesso di sola lettura) e GCDS

In questo scenario, il cliente crea e gestisce Account Google per i propri utenti.

Puoi ottenere le informazioni sugli account utente dalla directory LDAP dell'organizzazione e metterle in relazione con i dati dell'Account Google che ricevi da Google tramite l'API Directory di Google.

L'organizzazione è pienamente responsabile dei cicli di vita dell'account. Ad esempio, quando viene creato un nuovo Account Google, l'organizzazione aggiunge l'utente alla propria directory LDAP. Alla successiva sincronizzazione del tuo database con la directory LDAP, il database riceverà informazioni sul nuovo utente.

In questo caso:

  • Disponi dell'accesso di sola lettura agli Account Google.
  • Il database acquisisce i nomi degli Account Google, ma non i nomi utente o le password LDAP.
  • Puoi utilizzare l'API Google Directory per ottenere i dati di base dell'account per gli utenti dei tuoi clienti. Le informazioni a tua disposizione sono le informazioni non scrivibili restituite da una richiesta Users.get. Puoi utilizzare queste informazioni per verificare che gli Account Google degli utenti esistano in modo che gli utenti possano autenticarsi sui propri dispositivi.
  • Il cliente utilizza lo strumento GCDS per eseguire una sincronizzazione unidirezionale per completare gli Account Google degli utenti. È probabile che l'organizzazione utilizzi anche GCDS per la propria sincronizzazione continua dopo che il provisioning dell'identità è stato completato. Facoltativamente, l'organizzazione può utilizzare anche lo strumento GSPS per sincronizzare non solo i nomi utente, ma anche le password.

Scenario 2: EMM responsabile dei cicli di vita dell'account

Utilizzo dell'API Directory con accesso in lettura/scrittura

In questo scenario, sei tu a gestire il processo di creazione degli Account Google per conto del tuo cliente e sei responsabile dei cicli di vita degli account degli utenti.

Ad esempio, se le informazioni utente cambiano nella directory LDAP dell'organizzazione, sei responsabile dell'aggiornamento dell'Account Google dell'utente. GCDS non viene utilizzato in questo scenario.

In questo caso:

  • Disponi dell'accesso in lettura/scrittura agli Account Google.
  • Il database acquisisce i nomi degli Account Google e i nomi utente LDAP (e, facoltativamente, hash delle password).
  • Puoi utilizzare l'API Google Directory per conto del tuo cliente per leggere e scrivere informazioni sugli account per gli utenti dell'organizzazione. Le informazioni disponibili sono le informazioni non scrivibili restituite da una richiesta Users.get. Puoi utilizzare queste informazioni per verificare che gli Account Google degli utenti esistano in modo che gli utenti possano autenticarsi sui propri dispositivi.
  • Lo strumento GCDS non viene utilizzato.

Scenari di autenticazione SSO basati su SAML

In un deployment di Account Google, tu o il tuo cliente potreste utilizzare SAML (Security Assertion Markup Language) con un provider di identità (IdP) per autenticare l'Account Google associato a ciascun utente. I nomi degli Account Google vengono utilizzati come verifica dell'esistenza degli Account Google degli utenti, necessaria per l'autenticazione degli utenti quando accedono ai propri dispositivi. Ad esempio, nello scenario 2 potrebbe essere utilizzato SAML. Per maggiori dettagli su come eseguire la configurazione, vedi Configurare il servizio Single Sign-On (SSO) per gli account G Suite.

Attivare gli account sui dispositivi

Per distribuire le app al dispositivo di un utente tramite la versione gestita di Google Play, l'utente deve accedere al dispositivo durante il provisioning del dispositivo:

  • Nel provisioning del dispositivo degli account Google Play gestiti, il tuo DPC aiuta l'utente ad accedere utilizzando le credenziali accettate dalla tua console EMM, in genere le credenziali email aziendali.
  • In un deployment di Account Google, il DPC aiuta l'utente a inserire le proprie credenziali di accesso all'Account Google. Normalmente queste credenziali corrispondono a quelle con cui gli utenti accedono al proprio dominio aziendale quando sono sincronizzate con GCDS o GCDS, oppure quando un'organizzazione utilizza un IdP per l'autenticazione. Questa operazione attiva l'Account Google dell'utente, genera un ID dispositivo univoco e associa l'identità dell'Account Google dell'utente e l'ID dispositivo del dispositivo.