Intune App SDK per iOS - Funzionalità di partecipazione alle app
Microsoft Intune App SDK per iOS consente di incorporare Intune criteri di protezione delle app (noti anche come criteri APP o MAM) nell'app iOS nativa. Un'applicazione gestita da Intune è integrata con Intune App SDK. Intune gli amministratori 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, vedere Pianificare l'integrazione.
Fase 4: Funzionalità di partecipazione alle app
Fase Goals
- Informazioni sulle varie funzionalità di partecipazione alle app offerte da Intune App SDK.
- Integrare le funzionalità di partecipazione alle app rilevanti per l'app e gli utenti.
- Testare l'integrazione di tali funzionalità.
Che cosa sono le "funzionalità di partecipazione alle app"?
Questo processo di integrazione dell'SDK tenta di ridurre al minimo la quantità di codice specifico dell'app che gli sviluppatori devono scrivere. Completando correttamente le fasi precedenti dell'integrazione dell'SDK, l'app può ora applicare la maggior parte delle impostazioni dei criteri di protezione delle app, ad esempio la crittografia dei file, le restrizioni di copia/incolla, il blocco degli screenshot e le restrizioni per il trasferimento dei dati.
Esistono tuttavia alcune impostazioni che richiedono codice specifico dell'app per essere applicato correttamente; queste sono chiamate funzionalità di partecipazione alle app. In genere, l'SDK non ha un contesto sufficiente per il codice dell'applicazione o lo scenario dell'utente finale per applicare automaticamente queste impostazioni e quindi si basa sugli sviluppatori per chiamare le API SDK in modo appropriato.
Le funzionalità di partecipazione alle app non sono necessariamente facoltative. A seconda delle funzionalità esistenti dell'app, queste funzionalità potrebbero essere necessarie.
Le fasi successive di questa guida descrivono diverse importanti funzionalità di partecipazione alle app:
- Identità multipla come illustrato nella fase 5: Multi-Identity.
- Ca di Protezione app come illustrato nella fase 6: Supporto dell'accesso condizionale di Protezione app
- Funzionalità specifiche della visualizzazione Web descritte nella fase 7: Funzionalità di visualizzazione Web
Il resto di questa guida descrive il set rimanente di funzionalità di partecipazione alle app:
- Implementare gli account consentiti
- Implementare la crittografia file necessaria
- Implementare controlli di salvataggio con nome e apertura da
- Condividere dati tramite UIActivityViewController
- Abilitare la configurazione di destinazione (configurazione dell'app APP/MAM) per le applicazioni iOS
- Telemetria
- Intenti di Siri
- Clip dell'app
- Stampa
- Notifiche
- Post-compilazione script
Personalizzare il comportamento dell'app con le API
Il Intune App SDK include diverse API che è possibile chiamare per ottenere informazioni sui criteri app Intune distribuiti nell'app. Puoi usare questi dati per personalizzare il comportamento dell'app. Nella tabella seguente vengono fornite informazioni su alcune classi di Intune essenziali usate.
Classe | Descrizione |
---|---|
IntuneMAMPolicyManager.h | La classe IntuneMAMPolicyManager espone i criteri APP Intune distribuiti all'applicazione. In particolare, espone le API utili per l'abilitazione di più identità. |
IntuneMAMPolicy.h | La classe IntuneMAMPolicy espone alcune impostazioni dei criteri MAM applicabili all'app. La maggior parte di queste impostazioni dei criteri viene esposta in modo che l'app possa personalizzarne l'interfaccia utente. La maggior parte delle impostazioni dei criteri viene applicata dall'SDK e non dall'app. Tuttavia, esistono alcune eccezioni. Gli sviluppatori di app devono esaminare i commenti in questa intestazione per determinare quali API sono applicabili agli scenari dell'applicazione. |
IntuneMAMFileProtectionManager.h | La classe IntuneMAMFileProtectionManager espone le API che l'app può usare per proteggere in modo esplicito file e directory in base a un'identità fornita. L'identità può essere gestita da Intune o non gestita e l'SDK applicherà i criteri MAM appropriati. L'uso di questa classe è facoltativo. |
IntuneMAMDataProtectionManager.h | La classe IntuneMAMDataProtectionManager espone le API che l'app può usare per proteggere i buffer di dati in base a un'identità fornita. L'identità può essere gestita da Intune o non gestita e l'SDK applicherà la crittografia in modo appropriato. |
Implementare gli account consentiti
Intune consente agli amministratori IT di specificare gli account a cui l'utente può accedere. Le app possono eseguire query sul Intune App SDK per l'elenco specificato di account consentiti e quindi assicurarsi che solo gli account consentiti siano connessi al dispositivo.
Per eseguire una query per gli account consentiti, l'app deve controllare la allowedAccounts
proprietà in IntuneMAMEnrollmentManager
. La allowedAccounts
proprietà è una matrice contenente gli account consentiti o nil. Se la proprietà è nil, non sono stati specificati account consentiti. Le applicazioni abilitate per MSAL/OneAuth devono usare la allowedAccountIds
proprietà nell'istanza per eseguire query sull'ID IntuneMAMEnrollmentManager
oggetto Entra.
Le app possono anche reagire alle modifiche della allowedAccounts
proprietà osservando la IntuneMAMAllowedAccountsDidChangeNotification
notifica. La notifica viene pubblicata ogni volta che la allowedAccounts
proprietà cambia valore.
Quando si usano le API per gli account consentiti, sono necessari i requisiti seguenti:
- Il confronto tra identità deve non fare distinzione tra maiuscole e minuscole per UPN e OID.
- Il confronto delle identità deve supportare sia UPN che OID.
- L'applicazione deve avere la registrazione per diagnosticare eventuali mancata corrispondenza tra l'account specificato dall'amministratore e l'account immesso dall'utente.
Implementare la crittografia file necessaria
L'API isFileEncryptionRequired
definita in IntuneMAMPolicy.h
informa le applicazioni quando l'amministratore IT richiede che le applicazioni usno la crittografia Intune in tutti i file salvati su disco. Se isFileEncryptionRequired
è true, è responsabilità dell'app assicurarsi che tutti i file salvati su disco dall'app vengano crittografati usando le API in IntuneMAMFile.h
, IntuneMAMFileProtectionManager.h
e IntuneMAMFDataProtectionManager.h
.
Le app possono reagire alle modifiche apportate a questo criterio osservando la IntuneMAMDataProtectionDidChangeNotification
notifica definita in IntuneMAMFDataProtectionManager.h
.
Implementare controlli di salvataggio con nome e apertura da
Intune consente agli amministratori IT di selezionare i percorsi di archiviazione da cui un'app gestita può salvare o aprire i dati. Le app possono eseguire query sul Intune MAM SDK per individuare i percorsi di archiviazione consentiti per il salvataggio tramite l'APIisSaveToAllowedForLocation:withAccountId:
, definita in IntuneMAMPolicy.h
. Le app possono anche eseguire query sull'SDK per individuare i percorsi di archiviazione aperti consentiti usando l'API isOpenFromAllowedForLocation:withAccountId:
, definita anche in IntuneMAMPolicy.h
.
Inoltre, le app possono verificare che i dati in ingresso da un'estensione di condivisione siano consentiti eseguendo una query sull'API canReceiveSharedItemProvider:
, definita in IntuneMAMPolicy.h
. Le app possono anche eseguire query sull'API canReceiveSharedFile:
per verificare i file in ingresso da una chiamata openURL, definita anche in IntuneMAMPolicy.h
Nota
Sono state apportate modifiche al comportamento interno a partire da MAM SDK v15.1.0.
- Un
nil
account non verrà più considerato come l'account corrente per i percorsi LocalDrive/LocalStorage. Il passaggio di unnil
account verrà considerato come un account non gestito. Poiché le app possono controllare il modo in cui gestiscono l'archiviazione sandbox, un'identità può e deve essere associata a tali posizioni. - Un
nil
account non verrà più considerato come l'account corrente per le app con identità singola. Il passaggio di unnil
account in un'app a identità singola verrà ora trattato esattamente come se fosse stato passato in un'app multi-identità. Se si sviluppa un'app a identità singola, usare ilIntuneMAMPolicy
primaryUser
per fare riferimento all'account corrente se gestito enil
per fare riferimento all'account corrente se non gestito.
Gestione degli scenari di salvataggio
Prima di spostare i dati in una nuova posizione locale o di archiviazione cloud, un'app deve verificare con l'API isSaveToAllowedForLocation:withAccountId:
se l'amministratore IT ha consentito il trasferimento dei dati. Questo metodo viene chiamato su un IntuneMAMPolicy
oggetto . I dati da modificare e salvare sul posto non devono essere controllati con questa API.
Nota
L'oggetto IntuneMAMPolicy
deve rappresentare i criteri del proprietario dei dati salvati. Per ottenere l'oggetto di un'identità IntuneMAMPolicy
specifica, chiamare IntuneMAMPolicyManager
il metodo di policyForAccountId:
. Se il proprietario è un account non gestito senza identità, nil
può essere passato a policyForAccountId:
. Anche se i dati salvati non sono dati dell'organizzazione, isSaveToAllowedForLocation:withAccountId:
devono comunque essere chiamati. L'account proprietario del percorso di destinazione potrebbe avere ancora criteri che limitano i dati non gestiti in ingresso.
Il isSaveToAllowedForLocation:withAccountId:
metodo accetta due argomenti. Il primo argomento è un valore di enumerazione del tipo IntuneMAMSaveLocation
definito in IntuneMAMPolicy.h
. Il secondo argomento è l'UPN dell'identità proprietaria della posizione. Se il proprietario non è noto, nil
è possibile usare invece .
Percorsi di salvataggio supportati
Il Intune MAM SDK fornisce il supporto per i percorsi di salvataggio seguenti definiti in IntuneMAMPolicy.h
:
-
IntuneMAMSaveLocationOneDriveForBusiness
- Questa posizione rappresenta OneDrive for Business posizioni. L'identità associata all'account di OneDrive deve essere passata come secondo argomento. -
IntuneMAMSaveLocationSharePoint
- Questa posizione rappresenta sia SharePoint online che Microsoft Entra posizioni locali di SharePoint di autenticazione moderna ibrida. L'identità associata all'account di SharePoint deve essere passata come secondo argomento. -
IntuneMAMSaveLocationLocalDrive
- Questa posizione rappresenta l'archiviazione app-sandbox a cui è possibile accedere solo dall'app. Questo percorso non deve essere usato per il salvataggio tramite una selezione file o per il salvataggio nei file tramite un'estensione di condivisione. Se un'identità può essere associata all'archiviazione app-sandbox, deve essere passata come secondo argomento. Se non è presente alcuna identità,nil
è consigliabile passarlo. Ad esempio, un'app potrebbe usare contenitori di archiviazione app-sandbox separati per account diversi. In questo caso, l'account proprietario del contenitore a cui si accede deve essere usato come secondo argomento. -
IntuneMAMSaveLocationCameraRoll
- Questa posizione rappresenta la raccolta foto iOS. Poiché non è associato alcun account alla raccolta foto di iOS, deve essere passato solonil
come secondo argomento quando viene usato questo percorso. -
IntuneMAMSaveLocationAccountDocument
- Questa posizione rappresenta qualsiasi posizione dell'organizzazione non elencata in precedenza che può essere associata a un account gestito. L'account dell'organizzazione associato alla posizione deve essere passato come secondo argomento. Ad esempio, il caricamento di una foto nel servizio cloud LOB di un'organizzazione associato all'account dell'organizzazione. -
IntuneMAMSaveLocationOther
- Questo percorso rappresenta qualsiasi posizione non organizzata, non elencata in precedenza o una posizione sconosciuta. Se un account è associato alla posizione, deve essere passato come secondo argomento. In caso contrario,nil
deve essere usato.
Considerazioni speciali per i percorsi di salvataggio
La IntuneMAMSaveLocationLocalDrive
posizione deve essere usata solo per l'archiviazione app-sandbox accessibile solo dall'app. Per verificare se un file può essere salvato nell'archiviazione dei dispositivi iOS tramite una selezione file o un altro metodo in cui i dati saranno accessibili nell'app File, IntuneMAMSaveLocationOther
deve essere usato.
Se il percorso di destinazione non è elencato, IntuneMAMSaveLocationAccountDocument
o IntuneMAMSaveLocationOther
deve essere usato. Se la posizione contiene dati dell'organizzazione a cui si accede usando l'account gestito (ad esempio. È necessario usare il servizio cloud LOB per l'archiviazione dei dati IntuneMAMSaveLocationAccountDocument
dell'organizzazione. Se la posizione non contiene dati dell'organizzazione, è necessario usare la IntuneMAMSaveLocationOther
posizione.
Gestione di scenari open from
Prima di importare dati da una nuova posizione locale o di archiviazione cloud, un'app deve verificare con l'API isOpenFromAllowedForLocation:withAccountId:
se l'amministratore IT ha consentito il trasferimento dei dati. Questo metodo viene chiamato su un IntuneMAMPolicy
oggetto . Non è necessario controllare i dati aperti sul posto con questa API.
Nota
L'oggetto IntuneMAMPolicy
deve rappresentare i criteri dell'identità che riceve i dati. Per ottenere l'oggetto di un'identità IntuneMAMPolicy
specifica, chiamare IntuneMAMPolicyManager
il metodo di policyForAccountId:
. Se l'account ricevente è un account non gestito senza identità, nil
può essere passato a policyForAccountId:
. Anche se i dati ricevuti non sono dati dell'organizzazione, isOpenFromAllowedForLocation:withAccountId:
devono comunque essere chiamati. L'account proprietario dei dati potrebbe avere ancora criteri che limitano le destinazioni dei trasferimenti di dati in uscita.
Il isOpenFromAllowedForLocation:withAccountId:
metodo accetta due argomenti. Il primo argomento è un valore di enumerazione del tipo IntuneMAMOpenLocation
definito in IntuneMAMPolicy.h
. Il secondo argomento è l'UPN dell'identità proprietaria della posizione. Se il proprietario non è noto, nil
è possibile usare invece .
Percorsi aperti supportati
Il Intune MAM SDK fornisce il supporto per le posizioni aperte seguenti definite in IntuneMAMPolicy.h
:
-
IntuneMAMOpenLocationOneDriveForBusiness
- Questa posizione rappresenta OneDrive for Business posizioni. L'identità associata all'account di OneDrive deve essere passata come secondo argomento. -
IntuneMAMOpenLocationSharePoint
- Questa posizione rappresenta sia SharePoint online che Microsoft Entra posizioni locali di SharePoint di autenticazione moderna ibrida. L'identità associata all'account di SharePoint deve essere passata come secondo argomento. -
IntuneMAMOpenLocationCamera
- Questa posizione rappresenta solo le nuove immagini scattate dalla fotocamera. Poiché non è presente alcun account associato alla fotocamera iOS, deve essere passato solonil
come secondo argomento quando viene usata questa posizione. Per aprire i dati dalla raccolta foto di iOS, usareIntuneMAMOpenLocationPhotos
. -
IntuneMAMOpenLocationPhotos
- Questa posizione rappresenta solo le immagini esistenti all'interno della raccolta foto iOS. Poiché non è associato alcun account alla raccolta foto di iOS, deve essere passato solonil
come secondo argomento quando viene usato questo percorso. Per aprire le immagini scattate direttamente dalla fotocamera iOS, usareIntuneMAMOpenLocationCamera
. -
IntuneMAMOpenLocationLocalStorage
- Questa posizione rappresenta l'archiviazione app-sandbox a cui è possibile accedere solo dall'app. Questo percorso non deve essere usato per aprire file da una selezione file o per gestire i file in ingresso da un openURL. Se un'identità può essere associata all'archiviazione app-sandbox, deve essere passata come secondo argomento. Se non è presente alcuna identità,nil
è consigliabile passarlo. Ad esempio, un'app potrebbe usare contenitori di archiviazione app-sandbox separati per account diversi. In questo caso, l'account proprietario del contenitore a cui si accede deve essere usato come secondo argomento. -
IntuneMAMOpenLocationAccountDocument
- Questa posizione rappresenta qualsiasi posizione dell'organizzazione non elencata in precedenza che può essere associata a un account gestito. L'account dell'organizzazione associato alla posizione deve essere passato come secondo argomento. Ad esempio, il download di una foto dal servizio cloud LOB di un'organizzazione associato all'account dell'organizzazione. -
IntuneMAMOpenLocationOther
- Questa posizione rappresenta qualsiasi posizione non organizzata, non elencata in precedenza, o qualsiasi posizione sconosciuta. Se un account è associato alla posizione, deve essere passato come secondo argomento. In caso contrario,nil
deve essere usato.
Considerazioni speciali per le posizioni aperte
La IntuneMAMOpenLocationLocalStorage
posizione deve essere usata solo per l'archiviazione app-sandbox a cui l'app può accedere. Per verificare se un file può essere aperto dall'archiviazione dei dispositivi iOS tramite una selezione file o un altro metodo in cui i dati sono accessibili anche nell'app File, IntuneMAMOpenLocationOther
deve essere usato.
Se il percorso di destinazione non è elencato, IntuneMAMOpenLocationAccountDocument
o IntuneMAMOpenLocationOther
deve essere usato. Se la posizione contiene dati dell'organizzazione a cui si accede usando l'account gestito. Ad esempio, è necessario usare il servizio cloud LOB per l'archiviazione dei dati IntuneMAMOpenLocationAccountDocument
dell'organizzazione. Se la posizione non contiene dati dell'organizzazione, è necessario usare la IntuneMAMSaveLocationOther
posizione.
Gestione di NSItemProvider e file in ingresso
Per la gestione di NSItemProvider ricevuti da un'estensione di condivisione, è possibile usare il IntuneMAMPolicy
metodo di canReceiveSharedItemProvider:
anziché isOpenFromAllowedForLocation:withAccountId:
. Il canReceiveSharedItemProvider:
metodo accetta un oggetto NSItemProvider e restituisce un valore che indica se l'amministratore IT può aprirlo nell'account IntuneMAMPolicy
dell'oggetto. L'elemento deve essere caricato prima di chiamare questo metodo. Ad esempio, chiamando loadItemForTypeIdentifier:options:completionHandler
. Questo metodo può anche essere chiamato dal gestore di completamento passato alla chiamata di caricamento NSItemProvider.
Per la gestione dei file in ingresso, è possibile usare il IntuneMAMPolicy
metodo di canReceiveSharedFile:
anziché isOpenFromAllowedForLocation:withAccountId:
. Il canReceiveSharedFile:
metodo accetta un percorso NSString e restituisce se è consentito dall'amministratore IT di essere aperto nell'account IntuneMAMPolicy
dell'oggetto.
Avviso di condivisione bloccato
Una funzione helper dell'interfaccia utente può essere usata quando viene chiamata l'API isSaveToAllowedForLocation:withAccountId:
o isOpenFromAllowedForLocation:withAccountId:
e viene trovata per bloccare l'azione di salvataggio/apertura. Se l'app vuole notificare all'utente che l'azione è stata bloccata, può chiamare l'API showSharingBlockedMessage
definita in IntuneMAMUIHelper.h
per presentare una visualizzazione avviso con un messaggio generico.
Condividere dati tramite UIActivityViewController
A partire dalla versione 8.0.2, Intune App SDK può filtrare UIActivityViewController
le azioni in modo che siano disponibili solo Intune posizioni di condivisione gestita. Questo comportamento verrà controllato dai criteri di trasferimento dei dati dell'applicazione.
Azioni 'Copia in'
Quando si condividono documenti tramite UIActivityViewController
e UIDocumentInteractionController
, iOS visualizza le azioni "Copia in" per ogni applicazione che supporta l'apertura del documento condiviso. Le applicazioni dichiarano i tipi di documento supportato tramite l'impostazione CFBundleDocumentTypes
nel file Info.plist. Questo tipo di condivisione non sarà più disponibile se il criterio impedisce la condivisione ad applicazioni non gestite. In sostituzione, l'utente dovrà aggiungere un'estensione azione non dell'interfaccia utente all'applicazione e collegarla a Intune App SDK. L'estensione Action è semplicemente uno stub. L'SDK implementerà il comportamento di condivisione file. Seguire la procedura seguente:
L'applicazione deve avere almeno uno schemaURL definito in Info.plist
CFBundleURLTypes
insieme alla relativa-intunemam
controparte. Ad esempio:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>
Sia l'applicazione che l'estensione azione devono condividere almeno un gruppo di app e il gruppo di app deve essere elencato nella
AppGroupIdentifiers
matrice sotto i dizionari IntuneMAMSettings dell'app e dell'estensione.Sia l'applicazione che l'estensione azione devono avere la funzionalità Condivisione portachiava e condividere il
com.microsoft.intune.mam
gruppo keychain.Assegnare all'estensione dell'azione il nome "Apri in" seguito dal nome dell'applicazione. Localizzare Info.plist in base alle esigenze.
Specificare un'icona del modello per l'estensione, come descritto nella documentazione per sviluppatori di Apple. In alternativa, è possibile usare lo strumento IntuneMAMConfigurator per generare queste immagini dalla directory .app dell'applicazione. A tale scopo, eseguire:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
In IntuneMAMSettings nel file Info.plist dell'estensione aggiungere un'impostazione booleana denominata
OpenInActionExtension
con il valore YES.Configurare per
NSExtensionActivationRule
supportare un singolo file e tutti i tipi dal prefisso dell'applicazioneCFBundleDocumentTypes
concom.microsoft.intune.mam
il prefisso . Ad esempio, se l'applicazione supporta public.text e public.image, la regola di attivazione sarà:SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $extensionItem.attachments, $attachment, ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.text" || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image").@count == 1 ).@count == 1
Aggiornare le estensioni share e action esistenti
Se l'app contiene già estensioni Share o Action, NSExtensionActivationRule
sarà necessario modificarle per consentire i tipi di Intune. Per ogni tipo supportato dall'estensione, aggiungere un tipo aggiuntivo preceduto com.microsoft.intune.mam
da . Ad esempio, se la regola di attivazione esistente è:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data"
).@count > 0
).@count > 0
Deve essere modificato in questo modo:
SUBQUERY (
extensionItems,
$extensionItem,
SUBQUERY (
$extensionItem.attachments,
$attachment,
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.data" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.url" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.plain-text" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.image" ||
ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "com.microsoft.intune.mam.public.data"
).@count > 0
).@count > 0
Nota
Lo strumento IntuneMAMConfigurator può essere usato per aggiungere i tipi di Intune alla regola di attivazione. Se la regola di attivazione esistente usa le costanti stringa predefinite. Ad esempio, NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText e così via, la sintassi del predicato può diventare piuttosto complessa. Lo strumento IntuneMAMConfigurator può essere usato anche per convertire la regola di attivazione dalle costanti stringa in una stringa di predicato durante l'aggiunta dei tipi Intune.
Aspetto dell'interfaccia utente
Interfaccia utente precedente:
Nuova interfaccia utente:
Abilitare la configurazione di app di destinazione per le applicazioni iOS
La configurazione di destinazione MAM (nota anche come configurazione dell'app MAM) consente a un'app di ricevere i dati di configurazione tramite Intune SDK. Il formato e le varianti di questi dati devono essere definiti e comunicati ai clienti Intune dal proprietario/sviluppatore dell'app.
Intune gli amministratori possono indirizzare e distribuire i dati di configurazione tramite l'interfaccia di amministrazione Microsoft Intune e Intune API Graph. A partire dalla versione 7.0.1 di Intune App SDK per iOS, le app che partecipano alla configurazione di destinazione MAM possono fornire dati di configurazione di destinazione MAM tramite il servizio MAM. I dati di configurazione dell'applicazione vengono sottoposti a push tramite il servizio MAM direttamente nell'app anziché tramite il canale MDM. Intune App SDK fornisce una classe per accedere ai dati recuperati da queste console. Gli elementi seguenti sono prerequisiti:
L'app deve essere registrata con il servizio MAM Intune prima di accedere all'interfaccia utente di configurazione di destinazione MAM. Per altre informazioni, vedere Ricevere i criteri di protezione delle app.
Includere
IntuneMAMAppConfigManager.h
nel file di origine dell'app.Chiamare
[[IntuneMAMAppConfigManager instance] appConfigForAccountId:]
per ottenere l'oggetto di configurazione dell'app.Chiamare il selettore appropriato nell'oggetto
IntuneMAMAppConfig
. Ad esempio, se la chiave dell'applicazione è una stringa, è consigliabile usarestringValueForKey
oallStringsForKey
. VedereIntuneMAMAppConfig.h
per una descrizione dettagliata dei valori restituiti e delle condizioni di errore.
Per altre informazioni sulle funzionalità del API Graph, vedere API Graph Reference (Informazioni di riferimento su API Graph).
Per altre informazioni su come creare criteri di configurazione delle app di destinazione MAM in iOS, vedere la sezione relativa alla configurazione di app di destinazione MAM in Come usare Microsoft Intune criteri di configurazione delle app per iOS/iPadOS.
Telemetria
Per impostazione predefinita, Intune App SDK per iOS raccoglie i dati di telemetria sui tipi di eventi seguenti:
Avvio dell'app: per Microsoft Intune informazioni sull'utilizzo delle app abilitate per MAM in base al tipo di gestione (MAM con MDM, MAM senza registrazione MDM e così via).
Chiamate di registrazione: per Microsoft Intune informazioni sulla percentuale di esito positivo e altre metriche delle prestazioni delle chiamate di registrazione avviate dal lato client.
azioni Intune: per diagnosticare i problemi e garantire Intune funzionalità, vengono raccolte informazioni sulle azioni dell'SDK Intune.
Nota
Se si sceglie di non inviare Intune dati di telemetria di App SDK a Microsoft Intune dall'applicazione per dispositivi mobili, è necessario disabilitare Intune'acquisizione dei dati di telemetria di App SDK. Impostare la proprietà MAMTelemetryDisabled
su YES nel dizionario IntuneMAMSettings.
Intenti di Siri
Se l'app si integra con Siri Intents o effettua donazioni di finalità Siri, assicurati di leggere i commenti per in IntuneMAMPolicy.h
per areSiriIntentsAllowed
istruzioni sul supporto di questo scenario.
Nota
In iOS 16 e versioni successive è disponibile un nuovo framework di sistema App Intents per la creazione di finalità dell'app Swift. Le app che implementano una finalità dell'app devono innanzitutto controllare la areSiriIntentsAllowed
proprietà nell'oggetto IntuneMAMPolicy per l'utente.
Clip dell'app
Se l'app include una destinazione di clip dell'app, assicurati di verificare che non siano presenti dati gestiti nel clip dell'app. Il clip dell'app deve essere considerato una posizione non gestita. L'integrazione dell'SDK in Clip app non è attualmente supportata.
Stampa
Se l'app implementa la stampa e fornisce un'azione di stampa personalizzata in un menu personalizzato, assicurarsi di usare UIPrintInteractionController.isPrintingAvailable()
per determinare se è necessario aggiungere l'azione di stampa al menu personalizzato.
Blocco dell'acquisizione dello schermo
Per le app che sono state aggiornate alla versione 19.7.6 o successiva per Xcode 15 e v20.2.1 o versioni successive per Xcode 16 dell'SDK, il blocco di acquisizione dello schermo verrà applicato se è stato configurato Send Org data to other apps
a un valore diverso da "Tutte le app". È possibile configurare l'impostazione dei criteri di configurazione dell'app "com.microsoft.intune.mam.screencapturecontrol = Disabled" se si vuole consentire l'acquisizione dello schermo per i dispositivi iOS.
Notifiche
Se l'app riceve notifiche, assicurarsi di leggere i commenti per in IntuneMAMPolicy.h
per notificationPolicy
istruzioni sul supporto di questo scenario. È consigliabile che le app si registrino per IntuneMAMPolicyDidChangeNotification
descritte in IntuneMAMPolicyManager.h
e comunichino questo valore tramite UNNotificationServiceExtension
il keychain.
Estensioni Web safari
Se l'app ha un'estensione Web Safari e supporta l'invio di dati tra l'estensione e l'applicazione padre, in alcuni scenari l'applicazione potrebbe dover supportare il blocco dei dati. Per bloccare i dati, nell'applicazione padre chiamare l'API isAppSharingAllowed
in IntuneMAMPolicy.h
e quindi bloccare l'estensione Web.
Post-compilazione script
Lo strumento da riga di comando IntuneMAMFrameworkPatcher non deve più essere eseguito come ultimo passaggio del processo di compilazione dell'applicazione. Tuttavia, questo strumento è disponibile come parte di Intune App SDK per iOS in GitHub.
Importante
A partire dalla versione 17.7.1 di Intune MAM SDK, questo passaggio non è più necessario. Lo strumento da riga di comando IntuneMAMFrameworkPatcher non deve più essere eseguito.
Utilizzo della riga di comando
IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]
Parametri:
-
i
, ,r
v
: questo parametro consente di scegliere di installare, rimuovere o verificare il Intune patcher di MAM Framework per il processo di compilazione dell'applicazione. -
path
path
: deve essere la radice della directory .app dell'applicazione. -
resign
: l'opzioneresign
indica allo strumento di dimettere i file binari che avevano una firma valida prima di applicare patch al file binario. Questa opzione deve essere usata se il progetto include dipendenze del framework o plug-in con l'opzione Incorpora e firma , anche quando viene eseguito prima della firma finale dell'applicazione o se lo strumento viene eseguito dopo la firma finale dell'applicazione. -
verbose
: l'opzioneverbose
farà sì che lo strumento restituisca informazioni su ogni file binario a cui è stata applicata una patch.
Altri utilizzi:
Rimuovere la patch:
IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]
Verificare la patch:
IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]
Script di esempio:
IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose
Per altre informazioni su come iniziare e scaricare l'SDK, vedere Introduzione all'SDK per app Microsoft Intune.
Criteri di uscita
Convalida del salvataggio in/apertura da restrizioni
Ignorare se non sono stati implementati controlli salva con nome e apri da.
Acquisire familiarità con ogni scenario in cui l'app può salvare i dati in archivi cloud o posizioni locali e aprire i dati da archivi cloud o posizioni locali.
Per semplicità, questi test presuppongono che l'app includa solo il supporto per il salvataggio e l'apertura di dati da OneDrive for Business da un'unica posizione all'interno dell'app. Tuttavia, devi convalidare ogni combinazione: ogni posizione di salvataggio supportata in ogni posizione dell'app consente il salvataggio dei dati e ogni posizione aperta supportata in ogni posizione in cui l'app consente l'apertura dei dati.
Per questi test, installare l'app, integrarla con l'SDK e accedere con un account gestito prima di avviare il test.
Inoltre:
- Impostare i criteri dell'account gestito come:
- "Invia dati dell'organizzazione ad altre app" a "App gestite da criteri".
- "Ricevere dati da altre app" a "App gestite da criteri".
Scenario | Condizioni | Procedura |
---|---|---|
Salva in, completamente consentito | Criterio "Salva copie dei dati dell'organizzazione" impostato su "Consenti" | - Passare alla posizione in cui l'app può salvare i dati per OneDrive for Business. - Prova a salvare un documento per OneDrive for Business, nello stesso account gestito connesso all'app. - Verificare che il salvataggio sia consentito. |
Salva in, esentato | - Criterio "Salva copie dei dati dell'organizzazione" impostato su "Blocca" - Criterio "Consenti all'utente di salvare copie nei servizi selezionati" impostato solo su "OneDrive for Business" |
- Passare alla posizione in cui l'app può salvare i dati per OneDrive for Business. - Prova a salvare un documento per OneDrive for Business, nello stesso account gestito connesso all'app. - Verificare che il salvataggio sia consentito. - Se l'app lo consente, provare a salvare il file in un percorso di archiviazione cloud diverso e verificare che sia bloccato. |
Salva in, bloccato | Criterio "Salva copie dei dati dell'organizzazione" impostato su "Blocca" | - Passare alla posizione in cui l'app può salvare i dati per OneDrive for Business. - Prova a salvare un documento per OneDrive for Business, nello stesso account gestito connesso all'app. - Verificare che il salvataggio sia bloccato. - Se l'app lo consente, provare a salvare il file in un percorso di archiviazione cloud diverso e verificare che sia bloccato. |
Aperto da, completamente consentito | Criterio "Apri dati nei documenti dell'organizzazione" impostato su "Consenti" | - Passare alla posizione in cui l'app può aprire i dati da OneDrive for Business. - Prova ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso all'archiviazione dell'app. - Verificare che l'apertura sia consentita. |
Aperto da, esentato | - Criterio "Apri dati nei documenti dell'organizzazione" impostato su "Blocca" - Criterio "Consenti agli utenti di aprire dati da servizi selezionati" impostato solo su "OneDrive for Business" |
- Passare alla posizione in cui l'app può aprire i dati da OneDrive for Business. - Prova ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso all'archiviazione dell'app. - Verificare che l'apertura sia consentita. - Se l'app lo consente, provare ad aprire un altro file da un percorso di archiviazione cloud diverso e verificare che sia bloccato. |
Apri da, bloccato | Criterio "Apri dati nei documenti dell'organizzazione" impostato su "Blocca" | - Passare alla posizione in cui l'app può aprire i dati da OneDrive for Business. - Prova ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso all'archiviazione dell'app. - Verificare che l'apertura sia bloccata. - Se l'app lo consente, provare ad aprire un altro file da un percorso di archiviazione cloud diverso e verificare che sia bloccato. |
Convalida delle azioni "Copia in"
Ignorare se non sono state implementate azioni 'Copia in'.
Per semplicità, questi test presuppongono che l'app includa solo il supporto per la copia di dati in applicazioni di Microsoft Office, ad esempio Microsoft Word, Excel e così via. Tuttavia, è necessario convalidare ogni combinazione: ogni posizione di copia in supportata in ogni posizione in cui l'app consente la copia dei dati.
Per questi test, installare l'app, integrarla con l'SDK e accedere con un account gestito prima di avviare il test.
Inoltre:
- Sono stati completati tutti i passaggi di integrazione delle azioni "Copia in" con un'estensione azione per Microsoft Word e compilare ed eseguire correttamente l'app.
- Impostare i criteri dell'account gestito come:
- "Invia dati dell'organizzazione ad altre app" a "App gestite da criteri".
Scenario | Condizioni | Procedura |
---|---|---|
Selezionare le app da esentare, Nessuna | Criterio "Invia dati dell'organizzazione ad altre app" impostato su "App gestite da criteri" | - Passare al punto in cui l'app può copiare i dati in Microsoft Word e avviare l'opzione di condivisione per tali dati. - Conferma invece di visualizzare "Copia in Word" come opzione, è possibile visualizzare "Apri in Word". - Premere "Apri in Word" e verificare che il documento venga copiato e visualizzato correttamente, dato Word è stato eseguito l'accesso con lo stesso account gestito. |
Convalida delle azioni di stampa
Ignorare se non è stata implementata la stampa.
Per questo test, installare l'app, integrarla con l'SDK e accedere con un account gestito prima di avviare il test.
Inoltre:
- Sono stati completati tutti i passaggi di integrazione della stampa e della compilazione e l'esecuzione dell'app è stata completata correttamente.
- L'app implementa già avvisi/elementi di azione per gestire il caso quando la stampa non è consentita dall'amministratore IT dell'APP. In questo test, presupponendo che l'app richiederà un avviso agli utenti finali quando la stampa è bloccata.
Scenario | Procedura |
---|---|
Stampa dei dati dell'organizzazione, Blocco | - Passare al punto in cui l'app può visualizzare i dati e avviare l'opzione di condivisione per tali dati. - Premere su "Stampa". - Verificare che venga visualizzato un avviso di blocco e che la stampa non sia consentita. |
Stampa dei dati dell'organizzazione, Consenti | - Passare al punto in cui l'app può visualizzare i dati e avviare l'opzione di condivisione per tali dati. - Premere su "Stampa". - Conferma che viene visualizzata la visualizzazione "Stampa" ed è possibile selezionare una stampante e completare correttamente l'azione. |
Convalida della ricezione delle configurazioni delle app
Ignorare se non è stata abilitata la configurazione dell'app di destinazione per le applicazioni iOS.
Intune è responsabile della distribuzione dei valori dei criteri di configurazione dell'app all'app. In seguito, 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 iOS 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.
- Spostarsi nell'app per esercitare ogni percorso di codice che chiama
IntuneMAMAppConfigManager
appConfigForIdentity
.- La registrazione dei risultati delle chiamate a
appConfigForIdentity
è 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.
Operazioni successive
Se questa guida è stata seguita in ordine e sono stati completati tutti i criteri di uscita precedenti, congratulazioni, l'app è ora completamente integrata con Intune App SDK e può applicare i criteri di protezione delle app. Vedere altre importanti funzionalità di partecipazione alle app, ad esempio Stage 5: Multi-Identity, Stage 6: Supporto dell'accesso condizionale di Protezione app e Stage 7: Funzionalità di visualizzazione Web per integrarle nell'app.
Protezione di app è ora uno scenario di base per l'app. Continuare a fare riferimento a questa guida e all'appendice mentre si continua a sviluppare l'app.