Provisioning dei dispositivi

Esistono diversi modi per eseguire il provisioning dei dispositivi. I requisiti aziendali dei tuoi clienti determinano i metodi di provisioning che utilizzerai.

Nozioni di base sul provisioning dei dispositivi

Gli scenari di deployment del provisioning dei dispositivi che i tuoi clienti vogliono supportare (ad esempio BYOD o di proprietà dell'azienda) determinano le modalità operative che utilizzerai (ad esempio la modalità proprietario del dispositivo o il proprietario del profilo). Analogamente, le modalità operative e le release di Android necessarie per supportare determinano i metodi di provisioning da implementare.

Scenari di deployment

In uno scenario di deployment di proprietà dell'azienda, l'azienda possiede e controlla pienamente i dispositivi utilizzati dai dipendenti. In genere, le organizzazioni implementano i dispositivi di proprietà dell'azienda quando devono monitorare e gestire rigorosamente l'intero dispositivo.

Le aziende che supportano uno scenario di deployment BYOD consentono ai propri dipendenti di portare al lavoro dispositivi di proprietà personale e di utilizzarli per accedere a informazioni e applicazioni aziendali con privilegi.

Modalità di funzionamento

Le implementazioni di proprietà dell'azienda sono supportate dalla modalità operativa del proprietario del dispositivo. In Android, l'app di gestione è denominata controller dei criteri dei dispositivi (DPC). Il DPC applica criteri su un dispositivo Android e, quando agisce in qualità di proprietario del dispositivo, gestisce l'intero dispositivo. In qualità di proprietario del dispositivo, il DPC può eseguire azioni a livello di dispositivo, ad esempio configurare la connettività a livello di dispositivo, configurare le impostazioni globali ed eseguire un ripristino dei dati di fabbrica.

I deployment BYOD sono supportati dalla modalità operativa proprietario del profilo. Tramite il DPC, l'azienda abilita i dispositivi personali per l'uso di lavoro aggiungendo un profilo di lavoro all'account utente principale sul dispositivo. Il profilo di lavoro è associato all'utente principale, ma come profilo separato. In qualità di proprietario del profilo, il DPC gestisce solo il profilo di lavoro sul dispositivo e ha un controllo limitato al di fuori del profilo di lavoro.

Metodi di provisioning del proprietario del dispositivo

Devi eseguire il provisioning della modalità di funzionamento Proprietario del dispositivo durante la configurazione iniziale di un nuovo dispositivo o dopo un ripristino dei dati di fabbrica. La modalità Proprietario del dispositivo non può essere eseguita il provisioning su un dispositivo in nessun altro momento.

A seconda del caso d'uso, esistono due tipi principali di metodi di provisioning per la modalità proprietario del dispositivo.

  • In un flusso basato sui dispositivi, gli amministratori IT possono utilizzare la tecnologia NFC per eseguire il provisioning di un numero elevato di dispositivi. Questo flusso può essere utilizzato per scenari di account Google Play gestito o Google Workspace.
  • In un flusso gestito dall'utente, le opzioni dipendono dall'utilizzo o meno di Google Workspace da parte dell'organizzazione.
    • In uno scenario di Google Workspace, l'utente aggiunge il proprio Account Google durante la configurazione iniziale del dispositivo e il DPC deve guidare l'utente attraverso i passaggi per la configurazione del proprietario del dispositivo. Un flusso gestito dall'utente può aiutare gli utenti finali a configurare nuovi dispositivi ed è anche un'alternativa quando i dispositivi non supportano la tecnologia NFC.
    • Se un'organizzazione non utilizza Google Workspace, devi usare il metodo degli account della versione gestita di Google Play.

Nota: se limiti la distribuzione della tua app a paesi specifici in Play, queste limitazioni vengono ignorate durante il provisioning del proprietario del dispositivo. Il DPC verrà scaricato anche se il dispositivo non si trova in un paese target.

Metodi di provisioning del proprietario del profilo

Il metodo consigliato per eseguire il provisioning della modalità operativa di proprietario del profilo dipende dall'utilizzo o meno di Google Workspace da parte dell'organizzazione.

  • Nel caso di Google Workspace, il metodo consigliato è un flusso gestito dall'utente in cui quest'ultimo aggiunge l'Account Google dell'utente e il DPC guida l'utente attraverso i passaggi per configurare il proprietario del profilo.
  • Quando un'organizzazione non utilizza Google Workspace, il metodo consigliato è Account della versione gestita di Google Play.

È supportato anche il metodo tradizionale, in cui all'utente viene chiesto di installare manualmente il DPC. Si basa sul download del DPC da Google Play e sull'installazione, che guiderà l'utente per il resto del processo di configurazione del proprietario del profilo.

Differenze di provisioning delle chiavi tra le versioni di Android

Scenario di deployment Modalità di funzionamento Metodo di provisioning 5,0, 5,1 6.0, versioni successive 7.0, versioni successive
Di proprietà dell'azienda Proprietario del dispositivo Codice QR
Account della versione gestita di Google Play
Account Google
NFC
BYOD (Bring your own device, Porta il tuo dispositivo) Proprietario del profilo Account della versione gestita di Google Play
Account Google 5.11
Installazione DPC manuale

Considerazioni generali sull'implementazione

Di seguito sono riportati alcuni aspetti da considerare durante la scrittura del DPC, indipendentemente dalla modalità operativa implementata.

Compatibilità con Google Play Services

La guida agli APK di Google Play Services indica agli sviluppatori di eseguire un controllo della versione dei servizi Google Play prima di eseguire transazioni API. Poiché il tentativo di aggiornamento di Google Play Services causa gravi interruzioni nella procedura di configurazione del dispositivo, il tuo DPC non deve tentare di aggiornare Google Play Services prima del completamento del provisioning del dispositivo.

I punti chiave relativi alla compatibilità dei DPC con Google Play Services sono:

  • Il DPC deve essere eseguito utilizzando i servizi Google Play forniti con un determinato dispositivo.
  • Il DPC non deve fare affidamento sulle nuove funzionalità delle versioni future di Google Play Services disponibili al momento del provisioning del dispositivo.

Una volta completato il provisioning del dispositivo, il DPC può chiedere all'utente di aggiornare Google Play Services in modo che possa utilizzare le funzionalità più recenti. Tuttavia, se per qualche motivo una funzionalità non è disponibile, il DPC deve tornare indietro tranquillamente alla versione fornita con il dispositivo.

Recupera i dettagli del dispositivo

A causa dei ritardi nella propagazione, potrebbero essere necessari fino a 2 minuti prima che una chiamata adevices.get per un dispositivo appena registrato restituisca i dettagli del dispositivo.

Se il tuo flusso di lavoro richiede i dettagli prima che l'utente finale possa utilizzare il dispositivo o il profilo di lavoro, ti consigliamo di utilizzare una schermata di avanzamento nel DPC e di attendere che la chiamata abbia esito positivo.

Considerazioni sull'implementazione della modalità proprietario del profilo

Di seguito sono riportati alcuni aspetti da tenere in considerazione quando scrivi il DPC per implementare la modalità operativa di proprietario del profilo.

Rimuovere o disattivare il DPC personale

Quando esegui il provisioning della modalità operativa di proprietario del profilo, il DPC inizia a essere eseguito nel profilo personale e avvia il processo per la creazione di un profilo di lavoro. Una volta creato il profilo di lavoro, anche il DPC viene eseguito all'interno del profilo. Il DPC nel profilo di lavoro completa il processo di provisioning. A quel punto, il DPC nel profilo personale deve disattivarsi o l'utente del dispositivo deve rimuoverlo.

L'utente rimuove il DPC personale

  1. Il DPC personale ascolta ACTION_MANAGED_PROFILE_PROVISIONED. Per i dispositivi Android 5.1, il DPC personale dovrebbe invece rimanere in ascolto di ACTION_MANAGED_PROFILE_ADDED.
  2. Il DPC personale avvia una richiesta di disinstallazione ACTION_UNINSTALL_PACKAGE. In questo modo viene richiesto all'utente di disinstallare il DPC personale. Per un'esperienza utente ottimale, il processo di disinstallazione deve essere eseguito durante il flusso di provisioning.

Il DPC personale si disattiva automaticamente

  1. Il DPC personale ascolta ACTION_MANAGED_PROFILE_PROVISIONED. Per i dispositivi Android 5.1, il DPC personale dovrebbe invece rimanere in ascolto di ACTION_MANAGED_PROFILE_ADDED.
  2. Se applicabile, il DPC personale deve rilasciare i privilegi amministrativi del dispositivo prima di disattivarlo.
  3. Il DPC personale avvia una richiesta di disattivazione setApplicationEnabledSetting con il parametro COMPONENT_ENABLED_STATE_DISABLED.
  4. L'utente può riattivare il DPC personale da Google Play.

Considerazioni sull'implementazione della modalità Proprietario del dispositivo

Di seguito sono riportati alcuni aspetti da considerare durante la scrittura del DPC per implementare la modalità operativa proprietario del dispositivo.

Il dispositivo deve essere nuovo o aver ripristinato i dati di fabbrica

Devi eseguire il provisioning della modalità di funzionamento Proprietario del dispositivo durante la configurazione iniziale di un nuovo dispositivo o dopo un ripristino dei dati di fabbrica. Non è possibile eseguire il provisioning della modalità Proprietario del dispositivo in nessun altro momento.

La modalità Proprietario del dispositivo fornisce al DPC il controllo completo del dispositivo. Se è stato consentito il provisioning della modalità di proprietario del dispositivo dopo la configurazione iniziale:

  • Il malware potrebbe creare il proprietario di un dispositivo e assumere il controllo del dispositivo.
  • Potrebbero verificarsi problemi di privacy se sul dispositivo erano già presenti alcuni dati utente o alcune app.

Configurare la modalità proprietario del dispositivo solo sui dispositivi di proprietà dell'azienda

Devi eseguire il provisioning della modalità proprietario del dispositivo solo sui dispositivi che identifichi come di proprietà dell'azienda del tuo cliente. Puoi verificarlo rilevando un identificatore univoco del dispositivo (ad esempio un numero di serie) o utilizzando un insieme dedicato di account autorizzati alla registrazione dei dispositivi tramite il tuo criterio EMM.

Se non riesci a verificare la proprietà dell'azienda di un dispositivo, devi creare un meccanismo di sicurezza in modo che il provisioning della modalità proprietario del dispositivo non venga eseguito per errore. Ad esempio, potresti chiedere all'utente del dispositivo di confermare o di eseguire un'azione affermativa prima di eseguire il provisioning della modalità proprietario del dispositivo.

Attiva le app di sistema

Quando il DPC esegue il provisioning di un profilo di lavoro, si presume che tutte le app di sistema prive di icone in Avvio applicazioni siano fondamentali per il dispositivo e ne venga automaticamente autorizzata l'esecuzione nel profilo di lavoro. Le app di sistema con icone in Avvio applicazioni sono considerate facoltative e puoi decidere se attivarle.

Attivare le app di sistema tramite Google Play

Attivare le app di sistema tramite Google Play è facile e gli utenti ricevono gli aggiornamenti delle app non appena sono disponibili.

Abilita le app di sistema utilizzando le API del framework Android

Se vuoi che gli utenti vedano le app di sistema non appena iniziano a utilizzare i propri dispositivi, abilita le app di sistema come parte del processo di provisioning dei dispositivi. Il DPC abilita le app di sistema in base al nome del pacchetto o all'intent utilizzando DevicePolicyManager.enableSystemApp().

Esistono diversi modi per identificare le app di sistema che vuoi abilitare e presentare nella console EMM agli amministratori IT.

Creare cataloghi di app di sistema

Con questo metodo, ogni dispositivo determina quali app sono presenti sul dispositivo e invia questi dati alla console EMM. La console EMM mostra dinamicamente questi dati durante la creazione dei criteri relativi ai dispositivi, consentendo all'amministratore IT di gestire le app per ogni singola app.

  1. Se non è stato ancora eseguito il provisioning del profilo di lavoro sul dispositivo, puoi estrarre un elenco di tutte le app con icone in Avvio applicazioni su un dispositivo utilizzando queryIntentActivities():

    private List<ResolveInfo> getAppsWithLauncher() {
      Intent i = new Intent(Intent.ACTION_MAIN);
      i.addCategory(Intent.CATEGORY_LAUNCHER);
      return getPackageManager().queryIntentActivities(i, 0);
    }
    
  2. Se è già stato eseguito il provisioning del profilo di lavoro sul dispositivo, esegui il pull di un elenco di tutte le app nel profilo di lavoro utilizzando PackageManager.GET_DISABLED_COMPONENTS e PackageManager.GET_UNINSTALLED_PACKAGES.

  3. Per trovare le app di sistema nell'elenco delle app, controlla FLAG_SYSTEM, che indica se un'app è installata nell'immagine di sistema del dispositivo.

Vantaggi:

  • Offre agli amministratori IT un quadro completo delle app su tutti i dispositivi.
  • Offre un controllo granulare sulle app attivate.

Contro:

  • Poiché ogni dispositivo ha un catalogo di app diverso, è difficile applicare un modello di configurazione con criterio singolo a più tipi di dispositivi.
  • Può essere difficile presentare il volume di app specifiche per OEM in modo significativo per gli amministratori IT.

Classificare le app di sistema in base alla funzionalità

Quando un amministratore IT vuole abilitare un'app di sistema per un gruppo di dispositivi, seleziona un'app generica in base alla funzionalità, ad esempio "Browser di sistema". Il DPC consente quindi tutte le app di sistema per quell'intento.

Vantaggi:

  • Abilitazione semplice e basata su funzionalità per gli amministratori IT.
  • Garantisce funzionalità coerenti su una varietà di dispositivi (almeno per i casi d'uso comuni).

Contro:

  • Limita le app di sistema a quelle supportate su tutti i tipi di dispositivi.
  • Gli amministratori IT potrebbero voler eseguire il push di una versione OEM di un'app (ad esempio un browser Samsung®), ma non di un'altra (ad esempio un browser LG®).
  • Gli amministratori IT potrebbero non voler eseguire il push di più app, ma non possono impedirlo quando sono presenti più gestori di intent.

Supportare solo le app di sistema approvate

Collabori con l'OEM per identificare specifici pacchetti OEM e supporti solo quei pacchetti all'interno della console EMM. In questo modo puoi anche catalogare le configurazioni gestite per l'app OEM, cosa che altrimenti non avresti scoperto perché l'app OEM non è ospitata su Google Play.

Vantaggi:

  • Semplifica notevolmente il flusso di lavoro di integrazione ed elimina i casi limite che risultano problematici nelle prime due opzioni.
  • Puoi catalogare le configurazioni gestite per l'app OEM e presentarle nella console EMM per gli amministratori IT.
  • Consente stretti rapporti con gli OEM per il supporto dei dispositivi di punta.

Contro:

  • Il risultato è meno scalabile e riduce la scelta del consumatore.

Scenari di test per il DPC (controller criteri dispositivi)

Test DPC è un'app open source fornita da Google per testare le funzionalità aziendali nella tua app DPC. Test DPC è disponibile su github o Google Play. Puoi utilizzare il DPC di test per:

  • Simulare funzionalità in Android
  • Imposta e applica i criteri
  • Imposta limitazioni relative ad app e intent
  • Configurare i profili di lavoro
  • Configurare i dispositivi Android completamente gestiti

Sebbene il DPC Test sia pensato principalmente come strumento per testare la soluzione aziendale per Android, puoi utilizzarlo anche come sorgente di codice di esempio per le funzionalità di Android.

Personalizza provisioning

Durante il provisioning dei dispositivi, l'interfaccia utente del sistema mostra un colore predefinito nella barra di stato e un logo predefinito nella parte superiore dello schermo. Imposta colori e loghi personalizzati per garantire una transizione visiva coerente tra il DPC e l'interfaccia di sistema oppure consenti agli amministratori di farlo utilizzando la console EMM. Ad esempio, un amministratore potrebbe caricare un logo aziendale o personalizzare l'aspetto delle schermate che mostrano le notifiche.

Il tuo DPC applica le scelte relative a colore e logo utilizzando gli extra di DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR e DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI.

Per impostare un colore personalizzato, utilizza EXTRA_PROVISIONING_MAIN_COLOR per impostare un numero intero che indichi il colore predominante da mostrare durante il provisioning del dispositivo. Inserisci l'elemento aggiuntivo (costante) in un intent con ACTION_PROVISION_MANAGED_PROFILE o ACTION_PROVISION_MANAGED_DEVICE.

Per vedere come sono rappresentati i numeri interi, vedi Colore. Ad esempio, vedi MAIN_COLOR nell'app TestDPC.

Per impostare un logo personalizzato, utilizza EXTRA_PROVISIONING_LOGO_URI per impostare un'immagine da visualizzare nella parte superiore dello schermo durante il provisioning del dispositivo. Inserisci l'elemento aggiuntivo (costante) in un intent con ACTION_PROVISION_MANAGED_PROFILE o ACTION_PROVISION_MANAGED_DEVICE. Assicurati che la densità dei pixel dell'immagine sia ragionevole per il dispositivo.

Ad esempio, vedi LOGO_URI nell'app TestDPC.

Metodo codice QR

Il metodo di provisioning del codice QR consente di impostare e configurare la modalità Proprietario del dispositivo scansionando un codice QR dalla configurazione guidata. Il codice QR contiene un payload di coppie chiave-valore con tutte le informazioni necessarie al DPC per eseguire il provisioning di un dispositivo.

La console EMM dovrebbe fornire agli amministratori IT un modo per creare codici QR per i dispositivi di cui vogliono eseguire il provisioning. L'amministratore IT invia i codici QR ai propri utenti finali, che a loro volta eseguono il provisioning dei dispositivi scansionando i codici QR.

Casi d'uso per il provisioning del codice QR

Alcuni dispositivi, come i tablet, non supportano la tecnologia NFC. Il provisioning del codice QR è un modo pratico per eseguire il provisioning di un parco dispositivi distribuito che non supporta la tecnologia NFC. Un amministratore IT può inviare codici QR agli utenti per consentire il provisioning gestito dagli utenti.

Il provisioning del codice QR non richiede un'identità Google, ad esempio un dominio Google o un Account Google. Le organizzazioni che usano Android, ma non Google Workspace, non hanno un'identità Google.

Come nel caso di NFC, il provisioning del codice QR consente implementazioni kiosk e monouso in cui non è necessaria o desiderare un'identità Google (o qualsiasi altra identità). Ad esempio, un dispositivo kiosk in uno store non appartiene a nessuno e non dovrebbe avere l'identità di un utente finale.

Crea un codice QR

Un codice QR valido per il provisioning del codice QR è una stringa JSON (JavaScript® Object Notation) codificata in UTF-8. Puoi includere queste proprietà in un codice QR valido:

Sempre obbligatoria

Obbligatorio se un DPC non è già installato sul dispositivo

Consigliato se il dispositivo non è già connesso alla rete Wi-Fi

Facoltativo

Questo esempio crea un codice QR valido:

{
"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":
"com.emm.android/com.emm.android.DeviceAdminReceiver",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM":
"gJD2YwtOiWJHkSMkkIfLRlj-quNqG1fb6v100QmzM9w=",

"android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":
"https://path.to/dpc.apk",
    "android.app.extra.PROVISIONING_SKIP_ENCRYPTION": false,
    "android.app.extra.PROVISIONING_WIFI_SSID": "GuestNetwork",
    "android.app.extra.PROVISIONING_ADMIN_EXTRAS_BUNDLE": {
        "dpc_company_name": "Acme Inc.",
        "emm_server_url": "https://server.emm.biz:8787",
        "another_custom_dpc_key": "dpc_custom_value"
    }
}

Procedura di provisioning del codice QR

  1. La configurazione guidata richiede all'utente di toccare sei volte la schermata di benvenuto. I tocchi devono essere effettuati nello stesso punto dello schermo.
  2. La configurazione guidata richiede all'utente di connettersi a Internet per consentire alla procedura guidata di scaricare un lettore di codici QR.
  3. Google Play Services scarica un modulo che contiene un motore di riconoscimento dei codici QR.
  4. L'utente esegue la scansione del codice QR fornito dall'amministratore IT.
  5. La configurazione guidata scarica l'app DPC e avvia il processo di provisioning del proprietario del dispositivo utilizzando ACTION_PROVISION_MANAGED_DEVICE.

Metodo Account della versione gestita di Google Play

Un DPC può utilizzare il metodo di provisioning degli account Google Play gestiti per configurare la modalità proprietario del dispositivo o la modalità proprietario del profilo. Questo metodo di provisioning è destinato a organizzazioni che non utilizzano Google Workspace.

Il metodo di provisioning degli account Google Play gestiti utilizza la DPC Support Library. Questa libreria client garantisce il corretto funzionamento degli account Google Play gestiti. Mantiene inoltre la compatibilità con gli aggiornamenti futuri del processo di provisioning degli account Google Play gestiti.

Prerequisiti per il provisioning dei dispositivi

  • L'ID aziendale viene creato e registrato con un'identità EMM e l'ESA viene impostato, come descritto in Creare e registrare un'azienda.
  • L'identità aziendale dell'utente è nota alla tua console EMM.
  • L'utente può accedere all'app DPC utilizzando le credenziali accettate dalla tua console EMM, in genere le credenziali email aziendali.

Configura la modalità proprietario del profilo

Puoi eseguire il provisioning della modalità operativa di proprietario del profilo su un dispositivo che viene utilizzato in uno scenario BYOD come dispositivo personale.

  1. L'utente scarica manualmente il DPC da Google Play e lo avvia.
  2. Il DPC esegue il provisioning del profilo di lavoro utilizzando ACTION_PROVISION_MANAGED_PROFILE.
  3. Completa i passaggi di configurazione finali.

Configurare la modalità proprietario del dispositivo

Devi eseguire il provisioning della modalità Proprietario del dispositivo durante la configurazione iniziale di un nuovo dispositivo o dopo un ripristino dei dati di fabbrica. La modalità Proprietario del dispositivo non può essere eseguita in nessun altro momento su un dispositivo.

Durante la configurazione del dispositivo, l'utente inserisce un token speciale specifico del DPC quando gli viene richiesto di aggiungere un account. Il formato del token è afw#DPC_IDENTIFIER. Per un EMM denominato ACME, afw#acme installerebbe il DPC predefinito dell'EMM ACME. Ogni provider EMM deve richiedere a Google un identificatore DPC specifico prima di poterlo utilizzare nel processo di provisioning.

  1. L'utente accende un dispositivo nuovo o ripristina i dati di fabbrica e viene avviata la configurazione guidata.
  2. Quando viene richiesto di aggiungere un account, l'utente inserisce un token speciale nel formato afw#DPC_IDENTIFIER che identifica il DPC per il tuo EMM.
  3. Utilizzando l'identificatore DPC nel token, la configurazione guidata aggiunge un Account Google temporaneo al dispositivo. Questo account temporaneo viene utilizzato soltanto per scaricare il DPC (controller criteri dispositivi) del tuo provider EMM da Google Play e viene rimosso nei passaggi di configurazione finali.
  4. Il DPC esegue il provisioning del dispositivo utilizzando ACTION_PROVISION_MANAGED_DEVICE.
  5. Completa i passaggi di configurazione finali.

Passaggi finali di configurazione per tutte le modalità operative

Esegui questa procedura solo dopo il completamento dei passaggi iniziali per la configurazione della modalità proprietario del profilo o della modalità proprietario del dispositivo.

  1. Il DPC (controller criteri dispositivi) verifica che il dispositivo possa supportare gli account Google Play gestiti inizializzando la DPC Support Library:

    AndroidForWorkAccountSupport androidForWorkAccountSupport =
      new AndroidForWorkAccountSupport(context, admin);
    androidForWorkAccountSupport.ensureWorkingEnvironment(callback);
    

    Se stai configurando la modalità proprietario del dispositivo su un dispositivo, con questo passaggio viene rimosso l'Account Google temporaneo aggiunto per scaricare il DPC.

  2. L'utente accede al DPC utilizzando le proprie credenziali EMM. Si tratta in genere di credenziali email aziendali.

  3. Il DPC richiede le credenziali dell'account Google Play gestito per l'utente aziendale autenticato dalla console EMM.

  4. Se la console EMM non dispone di un userId di Google Play per l'utente, crea un nuovo utente chiamando Users.insert(). Se esegui il provisioning della modalità proprietario del dispositivo, specifica un account del dispositivo (per le implementazioni dei dispositivi dedicate) o un account utente (per le implementazioni di proprietà dell'azienda).

  5. Imposta i criteri del dispositivo chiamando Devices.update. Il criterio deve essere impostato prima di aggiungere l'account della versione gestita di Google Play al dispositivo, altrimenti il criterio non verrà applicato per un breve periodo di tempo dopo l'aggiunta dell'account al dispositivo.

  6. La console EMM richiede le credenziali dell'account per userId chiamando Users.generateAuthenticationToken(). Questo token di autenticazione ha durata breve e non può essere riutilizzato. Il DPC deve utilizzare il token per aggiungere l'account in modo programmatico (non serve a nulla per l'utente finale).

  7. L'API EMM di Google Play restituisce il token di autenticazione alla console EMM.

  8. La console EMM inoltra il token di autenticazione al DPC.

  9. Il DPC aggiunge l'account della versione gestita di Google Play al dispositivo utilizzando

    androidForWorkAccountSupport.addAndroidForWorkAccount(token,
      accountAddedCallback);
    

Metodo Account Google

Un DPC può utilizzare il metodo di provisioning dell'Account Google per impostare la modalità proprietario del dispositivo o la modalità proprietario del profilo. Con il metodo di provisioning dell'Account Google, il DPC guida l'utente attraverso la procedura di provisioning dopo che ha aggiunto il proprio Account Google durante la configurazione iniziale del dispositivo.

Quando un utente inserisce le credenziali del proprio Account Google:

  • Il server di autenticazione di Google autentica l'account utente.
  • Il server di autenticazione comunica quindi con il server aziendale per verificare se il dominio dell'account è registrato come dominio Google Workspace o come dominio gestito da EMM.
  • In tal caso, il sistema scarica automaticamente il DPC associato al dominio da Google Play e lo installa.

Configura la modalità proprietario del profilo

Puoi eseguire il provisioning della modalità operativa di proprietario del profilo durante la configurazione iniziale di un dispositivo o quando l'utente aggiunge un account utilizzando Impostazioni > Aggiungi account.

  1. L'autenticazione dell'account viene avviata da un utente nella configurazione guidata o in Impostazioni > Aggiungi account.
  2. GMSCore avvia il provisioning del profilo di lavoro utilizzando ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE.
  3. Il DPC viene scaricato automaticamente sul dispositivo e avviato utilizzando il gestore di ACTION_GET_PROVISIONING_MODE per verificare che il provisioning del profilo di lavoro sia supportato dal DPC.
  4. La piattaforma esegue il provisioning del profilo di lavoro.
  5. Quando viene eseguito il provisioning del profilo di lavoro, il DPC riceve la trasmissione ACTION_PROFILE_PROVISIONING_COMPLETE. Il gestore ACTION_ADMIN_POLICY_COMPLIANCE del DPC viene lanciato nel profilo di lavoro. Una volta creato il profilo di lavoro, il DPC viene eseguito anche al suo interno. Il DPC esegue il push dei criteri per l'Account Google gestito, garantisce che il dispositivo non sia in uno stato di compromissione e verifica che i criteri siano applicati (ad esempio, richiedere una password).
  6. Il DPC nel profilo personale si disattiva se stesso o l'utente lo rimuove.

Configurare la modalità proprietario del dispositivo o COPE

Devi eseguire il provisioning della modalità Proprietario del dispositivo durante la configurazione iniziale di un nuovo dispositivo o dopo un ripristino dei dati di fabbrica. La modalità Proprietario del dispositivo non può essere aggiunta a un dispositivo in nessun altro momento.

  1. L'autenticazione dell'account viene avviata da un utente dalla configurazione guidata.
  2. GMSCore avvia il provisioning del proprietario del dispositivo utilizzando ACTION_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE. 3.Il DPC viene scaricato automaticamente sul dispositivo e avviato utilizzando il gestore GET_PROVISIONING_MODE per scegliere la modalità di provisioning desiderata.
  3. La piattaforma esegue il provisioning del dispositivo nella modalità di provisioning desiderata.
  4. Una volta eseguito il provisioning del dispositivo, il DPC riceve le seguenti trasmissioni e viene avviato il gestore ACTION_ADMIN_POLICY_COMPLIANCE del DPC:
  5. Il DPC utilizza il valore Global.DEVICE_PROVISIONED per verificare che il dispositivo sia nuovo o di cui è stato eseguito il ripristino dei dati di fabbrica (provisioning non eseguito):
    • 0 provisioning non eseguito.
    • 1 provisioning eseguito.
  6. Il DPC completa il processo di provisioning eseguendo il push dei criteri per il dispositivo gestito, verificando che il dispositivo non sia in stato di compromissione e verificando che i criteri siano applicati (ad esempio, la richiesta di una password).

Considerazioni sull'implementazione del metodo dell'Account Google

  • Il DPC dovrebbe rilevare il flusso di autenticazione dell'Account Google cercando elementi aggiuntivi specifici nell'intent di lancio utilizzato (vedi LaunchIntentUtil):

    • Account di tipo android.accounts.Account indica che l'account è stato aggiunto dalla configurazione guidata o da , che richiede che l'DPC avviato per gestire il dispositivo o il profilo.
    • is_setup_wizard di tipo booleano se il valore è true, il DPC è stato avviato nella configurazione guidata prima del completamento della configurazione guidata, altrimenti da o da un altro flusso.

    Per verificare se il DPC è stato lanciato nell'ambito del metodo dell'Account Google:

    boolean isSynchronousAuthLaunch(Intent launchIntent) {
      return launchIntent.hasExtra("is_setup_wizard");
    }
    
  • Il DPC non deve chiamare finish() prima del termine della configurazione. Dovrebbe anche restituire un codice risultato positivo (ad esempio RESULT_OK) quando il DPC viene avviato con startActivityForResult() e attende un risultato.

    Il DPC deve attendere un codice risultato del processo di provisioning prima di chiamare finish() se il flusso di configurazione DPC raggiunge il punto di invio di un intent ACTION_PROVISION_*. Utilizza i callback startActivityForResult() e onActivityResult() quando avvii gli intent ACTION_PROVISION_*. (Vedi LaunchActivity e SetupSyncAuthManagement per alcuni esempi).

    A causa della natura potenzialmente asincrona del processo di configurazione, il DPC non può fare affidamento su un codice risultato RESULT_OK per indicare che il provisioning è riuscito. L'unico modo garantito è affidarsi ai callback di DeviceAdminReceiver per eseguire il provisioning correttamente. RESULT_CANCELED indica che l'utente ha abbandonato in una parte sincrona del flusso di configurazione e il DPC dovrebbe reagire a questa situazione.

    In questo esempio, il DPC avvia il provisioning e attende il codice risultato di un'attività:

    Intent intent = new Intent(ACTION_PROVISION_MANAGED_PROFILE);
    startActivityForResult(intent, REQUEST_MANAGED_PROFILE);
    ...
    
    @Override
    public void onActivityResult(int req, int res, Intent i) {
        if (req == REQUEST_MANAGED_PROFILE) {
            if (res == Activity.RESULT_OK) {
                setResult(Activity.RESULT_OK);
                finish();
            } else {
                Toast.makeText(this, “Provisioning failed”,
                        Toast.LENGTH_SHORT).show();
            }
        }
    }
    
  • Il DPC non deve tentare di configurare la modalità di funzionamento del proprietario del dispositivo se è già stato eseguito il provisioning del dispositivo (vedi ProvisioningStateUtil.isDeviceProvisioned()). In questo esempio, il DPC controlla se è stato eseguito il provisioning del dispositivo:

    public static boolean isDeviceProvisioned(Context context) {
    ContentResolver cr = context.getContentResolver();
        return
    Settings.Global.getInt(cr, DEVICE_PROVISIONED, 0) != 0;
    }
    
  • Campo facoltativo. Il DPC può utilizzare il componente aggiuntivo EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE all'avvio del provisioning per ritrasmettere le informazioni sullo stato al proprio DeviceAdminReceiver (che, nel caso del proprietario del profilo, viene eseguito all'interno del profilo di lavoro). TestDPC utilizza questo extra per inserire un insieme diverso di attività nel flusso dell'Account Google dopo il completamento del provisioning. Per maggiori dettagli, consulta DeviceAdminReceiver.

    public class DeviceAdminReceiver extends android.app.admin.DeviceAdminReceiver
    {
      @Override
      public void onProfileProvisioningComplete(Context context, Intent intent) {
        // Retrieve the admin extras bundle, which we can use to determine the original context for
        // Test DPC's launch.
        PersistableBundle extras = intent.getParcelableExtra(
                EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE);
        ...
    
  • Per configurare un profilo di lavoro, il DPC deve eseguire la migrazione dell'account aggiunto al nuovo profilo di lavoro. A questo scopo, il DPC deve trasmettere l'account fornito nell'intent di lancio per ACTION_PROVISION_MANAGED_PROFILE.

  • Il DPC deve fornire all'utente un chiaro invito all'azione (ad esempio un pulsante Fine) per uscire dall'app al termine della configurazione, in modo che l'utente non pensi di aver raggiunto una strada senza uscita.

  • Il DPC deve utilizzare il tema della configurazione guidata o la libreria di layout in modo che l'esperienza utente sia fluida e ben integrata.

Metodo NFC

Un DPC può utilizzare il metodo di provisioning NFC per configurare la modalità proprietario del dispositivo. Nel metodo di provisioning NFC, o tag NFC, crei un'app di programmazione NFC contenente i criteri iniziali e i dettagli di provisioning, impostazioni e configurazione Wi-Fi richiesti dal cliente per configurare la modalità operativa del proprietario del dispositivo. Quando tu o il tuo cliente installi l'app di programmazione NFC su un dispositivo Android, questo diventa il dispositivo di programmazione.

Per eseguire il provisioning di un dispositivo, l'amministratore IT prende un nuovo dispositivo dalla confezione e lo mette contro il dispositivo del programmatore o il Tag NFC. Il tappo trasferisce le configurazioni al dispositivo affinché si connetta a internet e scarichi i criteri e le impostazioni appropriati. Il dispositivo viene quindi gestito dal tuo DPC.

Dopo il provisioning di un dispositivo, per un breve periodo di tempo Google Play mostra contenuti di consumo non gestiti anziché le app e le raccolte approvate che dovrebbero essere visualizzate. Questo ritardo può durare da pochi minuti a un'ora.

Creare l'app di programmatore e il dispositivo di programmazione NFC

Per i dispositivi con Android 10 o versioni precedenti, è possibile usare Android Beam per completare il provisioning NFC:

  1. Scarica l'app di esempio del programmatore NFC. Puoi utilizzare l'esempio così com'è senza aggiunte oppure puoi modificarlo per utilizzare i tuoi valori predefiniti.
  2. Installa l'app di programmazione sul dispositivo scelto.
  3. Avvia l'app di programmazione NFC e seleziona Load predefinites (Carica predefinite) per com.example.android.apis. Questo testo può variare a seconda dei parametri predefiniti impostati.

Eseguire il provisioning del dispositivo di un cliente

  1. Cambia il dispositivo del programmatore o il Tag NFC con un dispositivo nuovo o di cui hai ripristinato i dati di fabbrica.
  2. Verifica che il dispositivo rimanga nella schermata Benvenuto iniziale visualizzata all'avvio. Il testo è specificato in Ready to send:{...} nell'app di programmazione.
  3. Attendi che il DPC:
    1. Cripta il dispositivo.
    2. Se si tratta di un dispositivo Code-Division Multiple Access (CDMA): attiva il telefono mentre viene visualizzata un'interfaccia utente per la telefonia (non è richiesta alcuna interazione).
    3. Configura la connessione Wi-Fi.
    4. Scarica il file APK per com.example.android.apis.
    5. Installa com.example.android.apis.
    6. Imposta l'Amministratore dispositivo di esempio in com.example.android.apis come proprietario del dispositivo.
    7. Mostra un "toast" riuscito quando il proprietario del dispositivo viene attivato.
  4. Dopo essere tornato alla home page (la configurazione guidata viene saltata automaticamente), controlla che com.example.android.apis sia impostato come proprietario del dispositivo:
    1. In Impostazioni > Sicurezza > Amministratori dispositivo, assicurati che non sia possibile rimuovere Amministrazione dispositivo di esempio.
    2. In Impostazioni > Utenti > Utenti e profili > Tu (proprietario), assicurati che il proprietario sia l'unico account disponibile (un dispositivo può avere un solo proprietario attivo alla volta).

Risorse aggiuntive

NFC avanzata descrive argomenti quali l'utilizzo di varie tecnologie di tag, la scrittura su tag NFC e l'invio in primo piano.

Metodo di installazione manuale del DPC (controller criteri dispositivi)

Per configurare la modalità proprietario del profilo utilizzando il metodo di provisioning manuale dell'installazione DPC, l'utente scarica il DPC da Google Play e lo installa. Successivamente, il DPC guida l'utente attraverso il resto della procedura di configurazione del proprietario del profilo per l'Account Google gestito.

Il DPC può aggiungere l'Account Google gestito prima o dopo la creazione del profilo di lavoro. Ad esempio, il DPC può creare un profilo di lavoro basato sulle credenziali EMM dell'utente, invece di richiedere prima l'Account Google gestito.

Configura la modalità proprietario del profilo

Aggiungi prima l'Account Google gestito

  1. L'utente scarica il tuo DPC da Google Play e lo installa.
  2. Il DPC aggiunge l'Account Google gestito prima di creare il profilo di lavoro utilizzando AccountManager.addAccount().
  3. Il DPC viene eseguito nel profilo personale e viene avviato il processo di creazione di un profilo di lavoro utilizzando:
  4. Il DPC nel profilo di lavoro completa il processo di provisioning. Una volta creato il profilo di lavoro, il DPC viene eseguito anche all'interno del profilo di lavoro. Il DPC nel profilo di lavoro completa il processo di provisioning eseguendo il push dei criteri per l'Account Google gestito, garantendo che il dispositivo non sia in uno stato di compromissione e verificando che i criteri vengano applicati, ad esempio richiedendo una password.
  5. Quando viene eseguito il provisioning del profilo di lavoro, il DPC riceve la trasmissione ACTION_PROFILE_PROVISIONING_COMPLETE.
  6. Il DPC nel profilo personale si disattiva o l'utente lo rimuove.

Crea prima il profilo di lavoro

  1. L'utente scarica il tuo DPC da Google Play e lo installa.
  2. Il DPC viene eseguito nel profilo personale e viene avviato il processo di creazione di un profilo di lavoro utilizzando:
  3. Il DPC aggiunge l'Account Google gestito utilizzando AccountManager.addAccount().
  4. Il DPC riceve la trasmissione ACTION_PROFILE_PROVISIONING_COMPLETE e legge EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE.
  5. Il DPC nel profilo di lavoro completa il processo di provisioning. Una volta creato il profilo di lavoro, anche il DPC viene eseguito all'interno del profilo. Il DPC nel profilo di lavoro completa il processo di provisioning inviando i criteri per l'Account Google gestito, garantendo che il dispositivo non sia in stato di compromissione e verificando che i criteri siano applicati (ad esempio, la richiesta di una password).
  6. Il DPC attiva il profilo di lavoro utilizzando DevicePolicyManager.setProfileEnabled().
  7. Il DPC nel profilo personale si disattiva o l'utente lo rimuove.

  1. Il metodo Account Google in Android 5.1 supporta solo la modalità operativa del proprietario del profilo, che l'utente può configurare soltanto da Impostazioni > Aggiungi account