Guida per gli sviluppatori

Le funzionalità aziendali di Android offrono alle organizzazioni una piattaforma di mobilità Android sicura, flessibile e unificata, che combina dispositivi, applicazioni e gestione. Le app Android sono compatibili con le funzionalità aziendali di Android per impostazione predefinita. Tuttavia, esistono funzionalità aggiuntive che puoi utilizzare per ottimizzare il funzionamento della tua app sui dispositivi Android gestiti:

  • Compatibilità con i profili di lavoro: modifica la tua app Android in modo che funzioni al meglio su un dispositivo gestito.
  • Configurazioni gestite: modifica l'app per consentire agli amministratori IT di specificare impostazioni personalizzate per le tue app.
  • Dispositivi dedicati: ottimizza la tua app in modo che possa essere implementata su un dispositivo Android come kiosk.
  • Single Sign-On (SSO): semplifica il processo di accesso per gli utenti che accedono a diverse app sul proprio dispositivo Android gestito.

Prerequisiti

  1. Hai creato un'app per Android.
  2. Ora puoi modificare la tua app in modo che funzioni al meglio per le organizzazioni.
  3. Versione minima: Android 5.0 Lollipop Versione consigliata: Android 6.0 Marshmallow e versioni successive.

Nota: le funzionalità aziendali di Android sono integrate nella maggior parte dei dispositivi Android 5.0; tuttavia, Android 6.0 e versioni successive offre funzionalità aggiuntive, soprattutto per quanto riguarda i dispositivi dedicati.

Profili di lavoro

Puoi gestire i dati e le applicazioni aziendali di un utente tramite un profilo di lavoro. Un profilo di lavoro è un profilo aziendale gestito associato all'account utente principale su un dispositivo Android. Un profilo di lavoro isola in modo sicuro app e dati di lavoro da app e dati personali. Questo profilo di lavoro si trova in un contenitore separato dal profilo personale, controllato dall'utente. Questi profili separati consentono alle organizzazioni di gestire i dati aziendali di loro interesse, lasciando all'utente il controllo di tutto il resto sul dispositivo dell'utente. Per un'analisi approfondita delle best practice, consulta la guida Profili di lavoro. Di seguito puoi trovare una panoramica di queste best practice.

Funzionalità principali di un profilo di lavoro

  • Profilo separato e sicuro
  • Versione gestita di Google Play per la distribuzione di applicazioni
  • Applicazioni di lavoro con badge separate
  • Funzionalità di gestione solo del profilo controllate da un amministratore

Vantaggi del profilo di lavoro su Android 5.0 e versioni successive

  • Crittografia completa dei dispositivi
  • Un unico pacchetto di app Android (APK) per entrambi i profili se sul dispositivo sono presenti un profilo personale e un profilo di lavoro
  • Il controller dei criteri dei dispositivi (DPC) è limitato al profilo di lavoro
  • Amministrazione dei dispositivi tramite la classe DevicePolicyManager

Considerazioni sui profili di lavoro

Impedisci il mancato funzionamento degli intent tra i profili

È difficile sapere quali intent possono essere incrociati tra i profili e quali sono bloccati. L'unico modo per saperlo con certezza è tramite i test. Prima che l'app avvii un'attività, devi verificare che la richiesta sia stata risolta chiamando Intent.resolveActivity().

  • Se restituisce null, la richiesta non viene risolta.
  • Se restituisce qualcosa, dimostra che l'intent si risolve ed è possibile inviarlo in sicurezza.

Nota: per istruzioni dettagliate sui test, consulta Prevenire gli intent non riusciti.

Condividere file tra profili

Alcuni sviluppatori utilizzano gli URI per contrassegnare i percorsi dei file in Android. Tuttavia, poiché esistono file system separati quando è presente un profilo di lavoro, consigliamo di:

Utilizzo:
URI dei contenuti
  • Gli URI di contenuto contengono l'autorità, il percorso e l'ID di un file specifico. Puoi generare questo utilizzando la sottoclasse FileProvider. Scopri di più
  • Condividi e concedi le autorizzazioni per accedere all'URI dei contenuti utilizzando un intent. Le autorizzazioni possono essere trasmesse solo attraverso il confine del profilo utilizzando gli intent. Se concedi a un'altra app i diritti di accesso al tuo file utilizzando Context.grantUriPermission(), vengono concessi solo per quell'app nello stesso profilo.
Non utilizzare:
URI del file
  • Contiene il percorso assoluto del file nello spazio di archiviazione del dispositivo.
  • Un URI del percorso file valido su un profilo non è valido nell'altro.
  • Se alleghi l'URI di un file a un intent, un gestore non è in grado di accedere al file in un altro profilo.

Passaggi successivi: quando l'app supporta i profili gestiti, testala in un profilo di lavoro. Vedi Testare l'app.

Implementare le configurazioni gestite

Le configurazioni gestite sono un insieme di istruzioni che gli amministratori IT possono utilizzare per gestire i dispositivi mobili dei loro utenti in un modo specifico. Queste istruzioni sono universali e valide per qualsiasi EMM, consentendo agli amministratori di configurare da remoto le applicazioni sui telefoni dei propri utenti.

Se sviluppi app per le aziende o la pubblica amministrazione, potresti dover soddisfare l'insieme di requisiti specifici del tuo settore. Utilizzando configurazioni gestite, l'amministratore IT può specificare da remoto le impostazioni e applicare i criteri per le app Android dei propri utenti, ad esempio:

  • Specifica se un'app può sincronizzare i dati tramite rete dati/3G o solo Wi-Fi
  • Consentire o bloccare gli URL su un browser web
  • Configurare le impostazioni email di un'app
  • Attivare o disattivare la stampa
  • Gestisci segnalibri

Best practice per l'implementazione delle configurazioni gestite

La guida Configurare le configurazioni gestite è la fonte principale per le informazioni su come creare ed eseguire il deployment di configurazioni gestite. Dopo aver esaminato la documentazione, consulta i suggerimenti riportati di seguito per ulteriori indicazioni.

Al primo avvio dell'app

Non appena avvii un'applicazione, puoi vedere se le configurazioni gestite sono già impostate per questa app in onStart() o onResume(). Inoltre, puoi sapere se la tua applicazione è gestita o non gestita. Ad esempio, se getApplicationRestrictions() restituisce:

  • Un insieme di restrizioni specifiche per le applicazioni: puoi configurare le configurazioni gestite in modalità invisibile (senza richiedere un input dell'utente).
  • Un bundle vuoto: la tua applicazione si comporta come se non fosse gestita (ad esempio, come si comporta in un profilo personale).
  • Un bundle con una singola coppia chiave-valore con KEY_RESTRICTIONS_PENDING impostato su true: l'applicazione viene gestita, ma il DPC non è configurato correttamente. Dovresti bloccare questo utente dalla tua app e indirizzarlo al suo amministratore IT.

Monitora le modifiche alle configurazioni gestite

Gli amministratori IT possono modificare in qualsiasi momento le configurazioni gestite e i criteri da applicare agli utenti. Per questo motivo, ti consigliamo di assicurarti che la tua app possa accettare nuove limitazioni per la configurazione gestita, come indicato di seguito:

  • Limitazioni per il recupero all'avvio: la tua app deve chiamare getApplicationRestrictions() in onStart() e onResume() ed eseguire il confronto con le limitazioni precedenti per verificare se sono necessarie modifiche.
  • Ascolta durante l'esecuzione: registra in modo dinamico ACTION_APPLICATION_RESTRICTIONS_CHANGED nelle attività o nei servizi in esecuzione, dopo aver controllato la presenza di nuove restrizioni. Questo intent viene inviato solo ai listener registrati in modo dinamico e non ai listener dichiarati nel file manifest dell'app.
  • Annulla la registrazione mentre non è in esecuzione: a onPause(), devi annullare la registrazione per la trasmissione di ACTION_APPLICATION_RESTRICTIONS_CHANGED.

Dispositivi dedicati

I dispositivi dedicati sono dispositivi kiosk utilizzati per un singolo scopo, come espositori per la segnaletica digitale, sportelli per la stampa di biglietti o registratori di cassa.

Quando un dispositivo Android è configurato come dispositivo dedicato, l'utente vede un'applicazione bloccata sullo schermo senza i pulsanti Home o App recenti per uscire dall'app. I dispositivi dedicati possono anche essere configurati per mostrare un insieme di applicazioni, ad esempio un kiosk biblioteca con un'app per il catalogo della biblioteca e un browser web.

Per le istruzioni, consulta Dispositivo dedicato.

Configurare il Single Sign-On con le schede personalizzate di Chrome

Gli utenti aziendali spesso hanno più app sul proprio dispositivo e preferiscono eseguire l'accesso una sola volta per accedere a tutte le applicazioni di lavoro. In genere, gli utenti accedono tramite WebView; tuttavia, ci sono un paio di motivi per cui questa soluzione non è ideale:

  1. Spesso gli utenti devono accedere più volte con le stesse credenziali. Spesso la soluzione WebView non è una vera esperienza Single Sign-On (SSO).
  2. Potrebbero verificarsi rischi per la sicurezza, ad esempio applicazioni dannose che controllano i cookie o l'inserimento di JavaScript® per accedere alle credenziali di un utente. Anche gli sviluppatori affidabili sono a rischio se usano SDK di terze parti potenzialmente dannosi.

Una soluzione a entrambi i problemi è autenticare gli utenti utilizzando le schede personalizzate del browser anziché WebView. Ciò garantisce che l'autenticazione:

  • Si verifica in un contesto sicuro (il browser di sistema) in cui l'app host non può esaminare i contenuti.
  • Ha uno stato del cookie condiviso, in modo che l'utente debba eseguire l'accesso una sola volta.

Requisiti

Le schede personalizzate sono supportate fino al livello API 15 (Android 4.0.3). Per utilizzare le schede personalizzate devi avere un browser supportato, ad esempio Chrome. Chrome 45 e versioni successive implementano questa funzionalità come Schede personalizzate di Chrome.

Come faccio a implementare SSO con le schede personalizzate?

Google ha reso open source una libreria client OAuth che utilizza le schede personalizzate, contribuendo così al gruppo di lavoro OpenID Connect della OpenID Foundation. Per configurare le schede personalizzate per SSO con la libreria AppAuth, consulta la documentazione e il codice di esempio su GitHub.

Testare l'app

Dopo aver sviluppato l'app, ti consigliamo di testarla, sia in un profilo di lavoro sia su un dispositivo completamente gestito. Fai riferimento alle istruzioni di seguito.

Usa il DPC di test per testare la tua app per Android

Forniamo l'app Test DPC per aiutare gli sviluppatori Android a testare le loro app in un ambiente aziendale. Con il DPC di prova, puoi impostare i criteri EMM o i valori della configurazione gestita su un dispositivo, come se il dispositivo fosse gestito da un'organizzazione utilizzando un EMM. Per installare Test DPC su un dispositivo, scegli uno dei seguenti metodi:

Per ulteriori informazioni su come configurare il DPC di test, consulta le istruzioni riportate di seguito e la guida dell'utente di DPC di test.

Provisioning di un profilo di lavoro

Per testare la tua app in un profilo di lavoro, devi prima eseguirne il provisioning sul dispositivo utilizzando l'app DPC Test, come indicato di seguito:

  1. Installa DPC di test sul dispositivo.
  2. Nell'Avvio app di Android, tocca l'icona dell'app Set up Test DPC (Configura DPC di prova).
  3. Segui le istruzioni sullo schermo.
  4. Installa l'app sul dispositivo ed esegui un test per vedere come viene eseguita nel profilo di lavoro.

Android crea un profilo di lavoro e installa una copia del DPC di prova al suo interno. Puoi utilizzare questa istanza con badge di lavoro di Test DPC (Test DPC) per impostare i criteri e le configurazioni gestite nel profilo di lavoro. Per scoprire di più sulla configurazione di un profilo di lavoro per lo sviluppo, consulta la guida per gli sviluppatori Profili di lavoro.

Esegui il provisioning di un dispositivo completamente gestito

Le organizzazioni utilizzano dispositivi completamente gestiti perché possono applicare sul dispositivo una gamma completa di criteri di gestione. Per eseguire il provisioning di un dispositivo completamente gestito:

  1. Installa DPC di test sul dispositivo.
  2. Verifica che non ci siano altri utenti o un profilo di lavoro sul dispositivo.
  3. Conferma che non ci siano account sul dispositivo.
  4. Esegui il seguente comando Android Debug Bridge (adb) nel terminale:
    adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
  5. Dopo aver completato il provisioning del proprietario del dispositivo, puoi testare la tua app su quel dispositivo. Dovresti testare nello specifico il funzionamento delle configurazioni gestite e degli intent su quel dispositivo.

Puoi anche utilizzare altri metodi di provisioning: consulta la Guida dell'utente sul DPC per il test. Per informazioni su come gli amministratori IT generalmente registrano ed eseguono il provisioning dei dispositivi Android, leggi l'articolo Provisioning dei dispositivi.

Test end-to-end

Dopo aver completato il test della tua app negli ambienti precedenti, ti consigliamo di testarla in un ambiente di produzione end-to-end. Questo processo include i passaggi che un cliente deve intraprendere per eseguire il deployment della tua app nella sua organizzazione, tra cui:

  • Distribuzione di app tramite Google Play
  • Configurazione gestita lato server
  • Controllo dei criteri del profilo lato server

Devi accedere a una console EMM per completare il test end-to-end. Il modo più semplice per ottenerne una è richiedere una console di test al tuo provider EMM. Una volta ottenuto l'accesso, completa queste attività:

  1. Crea una versione di test della tua applicazione con un nuovo ApplicationId.
  2. Rivendica un dominio Google gestito e associalo al tuo provider EMM. Se hai già un dominio di test associato a un EMM, potresti dover svincolare il dominio per testarlo con il tuo provider EMM preferito. Consulta il tuo provider EMM per i passaggi di svincolo specifici.
  3. Pubblicare la tua applicazione sul canale privato per il suo dominio Google gestito.
  4. Utilizza la console EMM e l'applicazione EMM per:
    1. Configura i dispositivi di lavoro.
    2. Distribuisci l'applicazione.
    3. Imposta la configurazione gestita.
    4. Imposta i criteri relativi ai dispositivi.

Questa procedura varia in base al tuo provider EMM. Per maggiori dettagli, consulta la documentazione del tuo provider EMM. Congratulazioni. Hai completato questi passaggi e verificato che la tua app funzioni correttamente per gli utenti aziendali.