Intune App SDK per Android - Configurazione app

Lo SDK per app di Microsoft Intune per Android consente di incorporare i criteri di protezione dell'app di Intune (noti anche come criteri MAM) nell'app Android Java/Kotlin nativa. Un'applicazione gestita da Intune è un'applicazione integrata con l'SDK per app di Intune. Gli amministratori di Intune possono distribuire facilmente i criteri di protezione delle app all'applicazione gestita da Intune quando Intune gestisce attivamente l'app.

Nota

Questa guida è suddivisa in diverse fasi distinte. Inizia esaminando la fase 1: pianifica l'integrazione.

Fase 6: Configurazione app

Obiettivi della fase

  • Informazioni sulle opzioni di configurazione delle applicazioni in Android.
  • Decidere quali configurazioni aggiungere all'applicazione, se del caso.
  • Integrare le API di configurazione dell'applicazione Intune App SDK.
  • Implementare la logica di risoluzione dei conflitti per le configurazioni delle applicazioni personalizzate.

Configurazione app in Android

Le configurazioni delle applicazioni, anche note come configurazioni gestite o restrizioni delle applicazioni, sono impostazioni specifiche dell'applicazione e definite dallo sviluppatore che è possibile aggiungere all'app per offrire agli amministratori un maggiore controllo sull'esperienza dell'app quando viene usata in un ambiente gestito. Ad esempio, se l'app è un browser, è possibile scegliere di aggiungere configurazioni che consentano agli amministratori di preimpostare i segnalibri, bloccare determinate pagine Web o disabilitare le modalità di navigazione in incognito. La configurazione dell'applicazione è uno strumento del tutto facoltativo, ma potente, per migliorare l'esperienza di gestione delle app.

Per maggiori dettagli, vedere Criteri di configurazione delle app per Microsoft Intune.

Configurazioni delle app Built-In di Android

Android ha una configurazione dell'app integrata nella piattaforma, denominata configurazioni gestite. Queste configurazioni non dipendono da Intune App SDK e possono essere abilitate nelle app che non integrano l'App SDK di Intune. Queste configurazioni si applicano solo quando l'applicazione viene utilizzata in un dispositivo gestito con una delle modalità Android Enterprise di Google. Per informazioni dettagliate su come configurare queste modalità Android Enterprise in Microsoft Intune, vedere Registrare dispositivi Android. Gli amministratori possono configurare questi criteri di configurazione delle applicazioni per i dispositivi Android Enterprise gestiti in Microsoft Intune.

L'app può recuperare questi valori configurati dall'amministratore tramite Android RestrictionsManager o Intune App SDK. Per altre informazioni, consulta Recupero della configurazione dell'app dall'SDK .

Ambiti delegati per le app gestite di Google Play

Gli sviluppatori di app possono usare gli ambiti delegati per integrare autorizzazioni avanzate per le app gestite di Google Play. Gli ambiti delegati forniscono le funzionalità seguenti per le app gestite di Google Play:

  • Consenti ad altre app di installare e gestire i certificati
  • Consenti all'app di accedere ai log di sicurezza Android
  • Consenti all'app di accedere ai log delle attività della rete Android

Una volta integrate queste funzionalità in un'app Google Play gestita usando l'API di Google, è possibile configurare queste impostazioni in Intune usando i profili di configurazione del dispositivo. Per ulteriori informazioni, vedere Impostazioni dei dispositivi Android Enterprise -> Applicazioni di proprietà dell'azienda>.

Per informazioni dettagliate sull'implementazione dell'app, vedere Documentazione per sviluppatori Android - Ambiti di delega.

Configurazioni dell'app Intune App SDK

Intune App SDK supporta un altro meccanismo per la distribuzione di configurazioni di app, separato dalle configurazioni gestite da Android Enterprise. Queste configurazioni sono esclusive di Microsoft Intune e si applicano solo alle app che hanno integrato l'SDK per app Intune. Tuttavia, queste configurazioni non sono limitate ai dispositivi con gestione Android Enterprise. Gli amministratori possono configurare questi criteri di configurazione dell'applicazione per le app gestite in Microsoft Intune.

Nota

La configurazione dell'app può essere configurata anche usando l'API Graph. Per informazioni, vedere la documentazione dell'API Graph per la configurazione di destinazione MAM.

L'app deve recuperare questi valori configurati dall'amministratore tramite Intune App SDK. Per altre informazioni, consulta Recupero della configurazione dell'app dall'SDK .

Quali configurazioni è consigliabile aggiungere all'app?

Questa guida non può rispondere a questa domanda. Solo tu e il tuo team sapete quali funzionalità rendono la vostra app più preziosa quando è in gestione.

Le domande seguenti possono essere utili per guidare le discussioni e rivelare le configurazioni che potresti voler aggiungere alla tua app:

  • Quali funzionalità offre oggi la tua app?
    • È utile disabilitare una di queste funzionalità durante la gestione?
    • È utile modificare una di queste funzionalità durante la gestione?
  • Come viene utilizzata la tua app in gestione oggi?
    • Esistono opzioni che gli amministratori possono preconfigurare per conto degli utenti?
    • Esistono azioni intraprese dagli amministratori o dagli utenti finali, esclusive per gli scenari gestiti?
    • Gli utenti gestiti hanno richiesto funzionalità che potrebbero non essere appropriate per l'intera popolazione di utenti?

Per ogni configurazione che decidi di aggiungere alla tua app, dovrai definire tre elementi:

  • Chiave : questa stringa identifica in modo univoco questa impostazione rispetto ad altre impostazioni. Deve essere leggibile dall'utente, poiché verrà configurato dagli amministratori.
  • Tipo - quale tipo di dati è questa impostazione? È una stringa, un valore booleano, un numero intero, un array e così via?
  • Strategia di risoluzione dei conflitti : come risponde l'app se gli amministratori configurano più valori per la stessa chiave? Nell'esempio del browser citato in precedenza, un elenco di segnalibri può combinare tutti i valori, mentre un'impostazione per disabilitare la navigazione in incognito può scegliere di disabilitare se uno qualsiasi dei valori in conflitto è "true".

L'app deve supportare la configurazione per i dispositivi gestiti o le app gestite?

Le configurazioni che si applicano ai dispositivi gestiti e le configurazioni che si applicano alle app gestite non si escludono a vicenda. È necessario tenere conto delle esigenze degli utenti quando si decide quale tipo (o entrambi) di configurazione supportare.

Area di configurazione Configurazione per i dispositivi gestiti Configurazione per le app gestite
Applicabilità del dispositivo Si applica solo ai dispositivi con gestione di dispositivi Android Enterprise. Si applica a tutti i dispositivi, purché l'app integri Intune App SDK e il Portale aziendale sia installato.
Piattaforma Solo Android, limitatamente ai dispositivi con servizi Google iOS App SDK supporta le stesse configurazioni. Gli sviluppatori possono condividere queste chiavi per un'esperienza multipiattaforma coerente.
Applicabilità Qualsiasi EMM In esclusiva per Microsoft Intune
Individuabilità dello schema Lo schema è disponibile pubblicamente dopo il caricamento dell'app in Play Individuabilità dello schema sotto il controllo dello sviluppatore

Entrambi i tipi di configurazione delle app si basano su coppie chiave-valore. Microsoft Intune non controlla il contenuto di queste configurazioni e passa semplicemente i valori configurati dall'amministratore all'app.

L'API di configurazione dell'app Intune App SDK include valori configurati dall'amministratore di entrambi i canali. Se l'app supporta entrambi i tipi di configurazione dell'app, usare l'API come descritto di seguito.

Recupero della configurazione dell'app dall'SDK

Le applicazioni possono ricevere configurazioni da entrambi i canali utilizzando le classi MAMAppConfigManager e MAMAppConfig .

MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String oid = <OID of user account>;
MAMAppConfig appConfig = configManager.getAppConfigForOID(oid);
String fooValue = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);

Se non c'è un account registrato con MAM, ma l'app vuole comunque recuperare i valori di configurazione di Android Enterprise (che non saranno destinati a un account specifico), puoi passare una stringa vuota o una null stringa vuota per l'OID.

Nota

Se l'app utilizza l'SDK dell'app Intune per recuperare le configurazioni gestite da Android Enterprise e l'Portale aziendale non è installato, queste configurazioni verranno fornite tramite un'identità MAMUserNotification vuota.

L'app può anche richiedere i dati non elaborati come elenco di set di coppie chiave-valore, anziché eseguire query in base a chiavi specifiche.

List<Map<String, String>> getFullData()

L'app può anche registrarsi per la REFRESH_APP_CONFIG notifica che informa l'app che sono disponibili nuovi dati di configurazione dell'app. Se l'app memorizza nella cache i dati di configurazione dell'app, deve registrarsi per questa notifica e invalidare tutti i dati memorizzati nella cache nel gestore. Per maggiori dettagli, consulta Registrazione per le notifiche dall'SDK .

Risoluzione dei conflitti

Se più criteri di configurazione dell'app sono destinati alla stessa app e allo stesso account, potrebbero essere disponibili più valori in conflitto per la stessa chiave.

Nota

Un valore impostato nella configurazione dell'app MAM sostituirà un valore con la stessa chiave impostata nella configurazione di Android Enterprise.

Se un amministratore configura valori in conflitto per la stessa chiave, Intune non ha modo di risolvere automaticamente questo conflitto e renderà disponibili tutti i valori per l'app. Questo tipo di conflitto può verificarsi se l'amministratore sceglie come target set di configurazione dell'app diversi con la stessa chiave per più gruppi contenenti lo stesso account.

L'app può richiedere tutti i valori per una determinata chiave da un oggetto MAMAppConfig , in modo da poter risolvere i conflitti con la logica di business:

List<Boolean> getAllBooleansForKey(String key)
List<Long> getAllIntegersForKey(final String key)
List<Double> getAllDoublesForKey(final String key)
List<String> getAllStringsForKey(final String key)

In alternativa, è possibile richiedere la scelta di un valore con una delle strategie predefinite di risoluzione dei conflitti:

Boolean getBooleanForKey(String key, BooleanQueryType queryType)
Long getIntegerForKey(String key, NumberQueryType queryType)
Double getDoubleForKey(String key, NumberQueryType queryType)
String getStringForKey(String key, StringQueryType queryType)

Le strategie predefinite di risoluzione dei conflitti disponibili includono:

  • BooleanQueryType.Any, BooleanQueryType.And, BooleanQueryType.Or
  • NumberQueryType.Any, NumberQueryType.Min, NumberQueryType.Max
  • StringQueryType.Any, StringQueryType.Min, StringQueryType.Max, dove min e max provengono da un elenco in ordine alfabetico.

Criteri di chiusura

Intune è responsabile della distribuzione dei valori dei criteri di configurazione dell'app all'app; successivamente, l'app è responsabile dell'uso di tali valori per modificare il comportamento o l'interfaccia utente all'interno dell'app. Test end-to-end approfonditi dovrebbero riguardare entrambi i componenti.

Per verificare che Intune fornisca correttamente i criteri di configurazione dell'app:

  1. Configurare un criterio di configurazione dell'app destinato all'app e distribuito nell'account di test.
  2. Accedi all'app con il tuo account di prova.
  3. Naviga nell'app per esercitare ogni percorso di codice che chiama MAMAppConfigManager's getAppConfigForOID o getFullData.
    • La registrazione dei risultati delle chiamate a getAppConfigForOID è un modo semplice per verificare quali impostazioni vengono recapitate. Tuttavia, poiché gli amministratori possono immettere qualsiasi dato per le impostazioni di configurazione dell'app, fare attenzione a non registrare i dati degli utenti privati.
  4. Vedere Convalidare i criteri di configurazione dell'app applicati.

Poiché le configurazioni delle app sono specifiche dell'app, solo l'utente sa come convalidare come l'app debba modificare il comportamento o l'interfaccia utente per ogni impostazione di configurazione dell'app.

Durante il test, considera quanto segue:

  • Garantire che tutti gli scenari siano coperti creando criteri di configurazione dell'app di test diversi con ogni valore supportato dall'app.
  • Convalida della logica di risoluzione dei conflitti dell'app creando più criteri di configurazione dell'app di test con valori diversi per ogni impostazione.
  • Se l'app è stata registrata per la REFRESH_APP_CONFIG notifica, l'aggiornamento dei criteri di configurazione dell'app mentre l'app è in uso attivo, l'attesa dell'aggiornamento dei criteri e la conferma di questo percorso del codice vengono eseguiti correttamente.
  • Se l'app supporta entrambi i tipi di configurazione dell'app, testare entrambi gli scenari per assicurarsi che l'implementazione fornisca l'identità corretta per getAppConfigForOID.

Operazioni successive

Dopo aver completato tutti i criteri di uscita precedenti, l'app è ora integrata correttamente come con i criteri di configurazione dell'app.

La sezione successiva, Fase 7: Funzionalità di partecipazione alle app, può essere necessaria o meno, a seconda del supporto dei criteri di protezione delle app desiderato dall'app. Se non sei sicuro che una di queste funzionalità si applichi alla tua app, rivedi Decisioni chiave per l'integrazione dell'SDK.