Intune App SDK per Android - Configurazione dell'app
Microsoft Intune App SDK per Android consente di incorporare i criteri di protezione delle app di Intune (noti anche come criteri APP o MAM) nell'app Java/Kotlin Android nativa. Un'applicazione gestita da Intune è integrata con Intune App SDK. Gli amministratori di Intune possono distribuire facilmente i criteri di protezione delle app nell'app gestita da Intune quando Intune gestisce attivamente l'app.
Nota
Questa guida è suddivisa in diverse fasi distinte. Per iniziare, esaminare la fase 1: Pianificare l'integrazione.
Fase 6: Configurazione app
Obiettivi di fase
- Informazioni sulle opzioni di configurazione dell'applicazione in Android.
- Decidere quali configurazioni, se presenti, devono essere aggiunte dall'applicazione.
- Integrare le API di configurazione dell'applicazione Intune App SDK.
- Implementare la logica di risoluzione dei conflitti per le configurazioni personalizzate dell'applicazione.
Configurazione app in Android
Le configurazioni delle applicazioni, dette anche configurazioni gestite o restrizioni dell'applicazione, 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 vengono usate in un'impostazione gestita. Ad esempio, se l'app è un browser, è possibile scegliere di aggiungere configurazioni che consentono agli amministratori di pre-impostare segnalibri, bloccare determinate pagine Web o disabilitare le modalità in incognito. La configurazione dell'applicazione è uno strumento completamente facoltativo, ma potente, per migliorare l'esperienza di gestione dell'app.
Per altre informazioni, vedere Criteri di configurazione delle app per Microsoft Intune .
Configurazioni delle app Built-In di Android
Android include la configurazione dell'app integrata nella piattaforma, denominate configurazioni gestite. Queste configurazioni non hanno alcuna dipendenza da Intune App SDK e possono essere abilitate nelle app che non integrano Intune App SDK. Queste configurazioni si applicano solo quando l'applicazione viene usata 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 dell'applicazione per i dispositivi Android Enterprise gestiti in Microsoft Intune.
L'app può recuperare questi valori configurati dall'amministratore RestrictionsManager
tramite Android o in Intune App SDK.
Per altre informazioni, vedere Recupero della configurazione dell'app dall'SDK .
Ambiti delegati per app Google Play gestite
Gli sviluppatori di app possono usare ambiti delegati per integrare autorizzazioni avanzate per le app Google Play gestite. Gli ambiti delegati offrono le funzionalità seguenti per le app Google Play gestite:
- Consentire ad altre app di installare e gestire i certificati
- Consenti all'app di accedere ai log di sicurezza android
- Consentire all'app di accedere ai log attività di rete Android
Dopo aver integrato 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 altre informazioni, vedere Impostazioni dei dispositivi Android Enterprise - Applicazioni.
Per informazioni dettagliate sull'implementazione dell'app, vedere La documentazione per sviluppatori Android - Ambiti di delega.
Configurazioni delle app di Intune App SDK
Intune App SDK supporta un altro meccanismo per la distribuzione delle configurazioni delle app, separate dalle configurazioni gestite da Android Enterprise. Queste configurazioni sono esclusive di Microsoft Intune e si applicano solo alle app che hanno integrato Intune App SDK. Tuttavia, queste configurazioni non sono limitate ai dispositivi con gestione Android Enterprise. Gli amministratori possono configurare questi criteri di configurazione delle applicazioni 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 MAM Targeted Config.For information, see the Graph API documentation for MAM Targeted Config.
L'app deve recuperare questi valori configurati dall'amministratore tramite Intune App SDK. Per altre informazioni, vedere Recupero della configurazione dell'app dall'SDK .
Quali configurazioni è necessario aggiungere all'app?
Questa guida non può rispondere a questa domanda. Solo tu e il tuo team sapete quali funzionalità rendono la tua app più preziosa quando sei sotto gestione.
Le domande seguenti possono aiutare a guidare le discussioni e a rivelare le configurazioni che potresti voler aggiungere alla tua app:
- Quali funzionalità offre oggi l'app?
- È consigliabile disabilitare una di queste funzionalità durante la gestione?
- C'è valore nella modifica di una qualsiasi di queste funzionalità durante la gestione?
- Come viene usata la tua app oggi in gestione?
- Sono disponibili opzioni che gli amministratori possono pre-configurare per conto degli utenti?
- Sono presenti azioni eseguite da amministratori o utenti finali, in modo esclusivo per gli scenari gestiti?
- Gli utenti gestiti hanno richiesto funzionalità che potrebbero non essere appropriate per l'intero popolamento degli utenti?
Per ogni configurazione che si decide di aggiungere all'app, è necessario definire tre elementi:
- Chiave : questa stringa identifica in modo univoco questa impostazione da altre impostazioni. Deve essere leggibile, in quanto verrà configurato dagli amministratori.
- Tipo : quale tipo di dati è questa impostazione? Si tratta di una stringa, un valore booleano, un numero intero, una matrice e così via?
- Strategia di risoluzione dei conflitti : come risponde l'app se gli amministratori configurano più valori per la stessa chiave? Nell'esempio di browser precedente, un elenco di segnalibri può combinare tutti i valori, mentre un'impostazione per disabilitare l'incognito può scegliere di disabilitare se uno dei valori in conflitto è "true".
La configurazione dell'app deve supportare i dispositivi gestiti o le app gestite?
Le configurazioni che si applicano ai dispositivi gestiti e alle configurazioni applicabili alle app gestite non si escludono a vicenda. È consigliabile considerare le esigenze degli utenti quando si decide quale tipo (o entrambi) di configurazione supportare.
Area di configurazione | Configurazione per dispositivi gestiti | Configurazione per le app gestite |
---|---|---|
Applicabilità del dispositivo | Si applica solo ai dispositivi in Gestione dispositivi Android Enterprise. | Si applica a tutti i dispositivi, purché l'app integri Intune App SDK e sia installato il portale aziendale. |
Piattaforma | Solo Android, limitato ai dispositivi con i servizi Google | iOS App SDK supporta le stesse configurazioni. Gli sviluppatori possono condividere queste chiavi per un'esperienza multipiattaforma coerente. |
Applicabilità | Qualsiasi EMM | Esclusivo di 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 dell'app si basano su coppie chiave-valore. Microsoft Intune non esamina 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 da 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 usando 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 è presente alcun account registrato MAM, ma l'app vuole comunque recuperare i valori di configurazione di Android Enterprise (che non saranno destinati a un account specifico), è possibile passare una null
stringa o vuota per l'OID.
Nota
Se l'app usa Intune App SDK per recuperare le configurazioni gestite di Android Enterprise e il portale aziendale non è installato, queste configurazioni verranno recapitate tramite un oggetto con 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 i dati memorizzati nella cache nel gestore.
Per altre informazioni, vedere Registrare 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 alcun modo di risolvere automaticamente questo conflitto e renderà tutti i valori disponibili per l'app. Questo tipo di conflitto può verificarsi se l'amministratore è destinato a set di configurazione dell'app diversi con la stessa chiave a più gruppi contenenti lo stesso account.
L'app può richiedere tutti i valori per una determinata chiave a un oggetto MAMAppConfig , in modo da poter risolvere i conflitti con la propria 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 di risoluzione dei conflitti predefinite:
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 di risoluzione dei conflitti predefinite 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 ordinato alfabeticamente.
Criteri di uscita
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. I test end-to-end completi devono coprire entrambi i componenti.
Per verificare che Intune stia fornendo correttamente i criteri di configurazione delle app:
- Configurare un criterio di configurazione dell'app destinato all'app e distribuito nell'account di test.
- Se l'app supporta la configurazione dell'app per i dispositivi gestiti, vedere Criteri di configurazione dell'applicazione per i dispositivi Android Enterprise gestiti.
- Se l'app supporta la configurazione dell'app per le app gestite, vedere Criteri di configurazione dell'applicazione per le app gestite.
- Se l'app supporta entrambi i tipi di configurazione dell'app, creare entrambi i tipi di criteri per il test.
- Accedere all'app con l'account di test.
- Per i dispositivi gestiti, vedere Criteri di configurazione delle app Aziendali Android e Registrare i dispositivi Android.
- Per le app gestite:
- Installare sia l'app che il portale aziendale di Intune.
- Accedere all'app con l'account di test.
- Esplorare l'app per esercitare ogni percorso di codice che chiama
MAMAppConfigManager
getAppConfigForOID
ogetFullData
.- La registrazione dei risultati delle chiamate a
getAppConfigForOID
è un modo semplice per convalidare quali impostazioni vengono recapitate. Tuttavia, poiché gli amministratori possono immettere dati per le impostazioni di configurazione dell'app, prestare attenzione a non registrare dati utente privati.
- La registrazione dei risultati delle chiamate a
- Vedere Convalidare i criteri di configurazione dell'app applicati.
Poiché le configurazioni delle app sono specifiche dell'app, solo tu sai come convalidare il modo in cui l'app deve modificare il comportamento o l'interfaccia utente per ogni impostazione di configurazione dell'app.
Durante il test, tenere presente quanto segue:
- Verificare che tutti gli scenari siano coperti dalla creazione di criteri di configurazione di 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 si è registrata per la
REFRESH_APP_CONFIG
notifica, aggiornare i criteri di configurazione dell'app mentre l'app è in uso attivo, attendere l'aggiornamento dei criteri e confermare che questo percorso di codice viene esercitato 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 a
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 o meno necessaria, a seconda del supporto dei criteri di protezione delle app desiderati per l'app. Se non si è certi che una di queste funzionalità si applichi all'app, rivedere le decisioni chiave per l'integrazione dell'SDK.