Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Microsoft Intune App SDK per iOS consente di incorporare i criteri di protezione dell'app di Intune (noti anche come criteri APP o MAM) nell'app iOS 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. Per iniziare, rivedere Pianificare l'integrazione.
Fase 4: Funzionalità di partecipazione all'app
Obiettivi della fase
- Informazioni sulle varie funzionalità di partecipazione alle app offerte da Intune App SDK.
- Integrare le funzionalità di partecipazione all'app pertinenti per l'app e gli utenti.
- Testare l'integrazione di queste funzionalità.
Che cosa sono le "Funzionalità di partecipazione alle app"?
Questo processo di integrazione SDK tenta di ridurre al minimo la quantità di codice specifico dell'app che gli sviluppatori devono scrivere. Completando con successo 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 del trasferimento dei dati.
Esistono tuttavia alcune impostazioni che richiedono l'applicazione corretta di codice specifico dell'app. Queste sono le cosiddette funzionalità di partecipazione all'app. In genere, l'SDK non ha abbastanza contesto sul codice dell'applicazione o sullo 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.
Nelle fasi successive di questa guida verranno descritte diverse importanti funzionalità di partecipazione all'app:
- Multi-identità come descritto nella Fase 5: Multi-identità.
- CA di protezione delle app come descritto nella fase 6: Supporto per l'accesso condizionale di protezione delle 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 all'app:
- Implementare gli account consentiti
- Implementare la crittografia file obbligatoria
- Implementare i controlli Salva con nome e Apri da
- Condividere dati tramite UIActivityViewController
- Abilitare la configurazione di destinazione (configurazione dell'app APP/MAM) per le applicazioni iOS
- Telemetria
- Intenti Siri
- App Clip
- Stampa
- Notifiche
- Script post-compilazione
Personalizzare il comportamento dell'app con le API
Intune App SDK dispone di diverse API che è possibile chiamare per ottenere informazioni sui criteri di protezione dell'app di Intune distribuiti nell'app. È possibile usare questi dati per personalizzare il comportamento dell'app. Nella tabella seguente vengono fornite informazioni su alcune classi di Intune essenziali utilizzate.
| Classe | Descrizione |
|---|---|
| IntuneMAMPolicyManager.h | La classe IntuneMAMPolicyManager espone i criteri di protezione dell'app di Intune distribuiti all'applicazione. In particolare, espone API utili per abilitare più identità. |
| IntuneMAMPolicy.h | La classe IntuneMAMPolicy espone alcune impostazioni dei criteri MAM che si applicano all'app. La maggior parte di queste impostazioni dei criteri viene esposta in modo che l'app possa personalizzare 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 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 API che l'app può usare per proteggere i buffer dei dati data 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 a quali account l'utente può accedere. Le app possono eseguire una query in Intune App SDK per ottenere l'elenco specificato di account consentiti e quindi assicurarsi che solo gli account autorizzati abbiano eseguito l'accesso al dispositivo.
Per eseguire una query per gli account consentiti, l'app deve controllare la allowedAccounts proprietà nel IntuneMAMEnrollmentManagerfile . La allowedAccounts proprietà è una matrice contenente gli account consentiti o zero. Se la proprietà è nulla, non è stato specificato alcun account consentito. 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 di valore.
Quando si usano API per gli account consentiti, sono necessari i requisiti seguenti:
- Il confronto di identità deve non fare distinzione tra maiuscole e minuscole per UPN e OID.
- Il confronto delle identità deve supportare UPN e OID.
- L'applicazione deve disporre di registrazione per diagnosticare qualsiasi mancata corrispondenza tra l'account specificato dall'amministratore e l'account immesso dall'utente.
Implementare la crittografia file obbligatoria
L'API isFileEncryptionRequired definita in IntuneMAMPolicy.h informa le applicazioni quando l'amministratore IT richiede che le applicazioni utilizzino la crittografia Intune su qualsiasi file salvato su disco. Se isFileEncryptionRequired è vero, è responsabilità dell'app assicurarsi che tutti i file salvati su disco dall'app siano 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 i controlli Salva con nome e Apri da
Intune consente agli amministratori IT di selezionare le posizioni di archiviazione in cui un'app gestita può salvare o aprire i dati. Le app possono eseguire query su Intune MAM SDK per individuare le posizioni di archiviazione consentite per il salvataggio tramite l'APIisSaveToAllowedForLocation:withAccountId:, definita in IntuneMAMPolicy.h. Le app possono anche eseguire query sull'SDK per individuare le posizioni di archiviazione aperte consentite utilizzando l'API, anch'essa isOpenFromAllowedForLocation:withAccountId: definita in IntuneMAMPolicy.h.
Inoltre, le applicazioni possono verificare che i dati in arrivo 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 per verificare i canReceiveSharedFile: file in arrivo da una chiamata openURL, anch'essa definita in IntuneMAMPolicy.h
Nota
Sono state apportate modifiche al comportamento interno a partire da MAM SDK v15.1.0.
- Un
nilaccount non verrà più considerato come l'account corrente per le posizioni LocalDrive/LocalStorage. Se si passa unnilaccount, questo viene 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
nilaccount non verrà più considerato come l'account corrente per le app con identità singola. Il passaggio di unnilaccount in un'app con una singola identità ora verrà trattato esattamente come se fosse passato in un'app con più identità. Se si sviluppa un'app con identità singola, usare 'IntuneMAMPolicys perprimaryUserfare riferimento all'account corrente se gestito enilper fare riferimento all'account corrente se non gestito.
Gestione degli scenari di salvataggio in
Prima di spostare i dati in un nuovo spazio di archiviazione nel cloud o in una nuova posizione locale, un'app deve controllare con l'API isSaveToAllowedForLocation:withAccountId: per sapere se l'amministratore IT ha consentito il trasferimento dei dati. Questo metodo viene chiamato su un IntuneMAMPolicy oggetto. I dati modificati e salvati 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 IntuneMAMPolicyManageril metodo .policyForAccountId: Se il proprietario è un account non gestito senza identità, nil può essere passato in policyForAccountId:. Anche se i dati salvati non sono dati dell'organizzazione, isSaveToAllowedForLocation:withAccountId: dovrebbero comunque essere chiamati. L'account proprietario della posizione 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 può essere usato al suo posto.
Percorsi di salvataggio supportati
Intune MAM SDK fornisce il supporto per le seguenti posizioni di salvataggio definite inIntuneMAMPolicy.h:
-
IntuneMAMSaveLocationOneDriveForBusiness- Questa posizione rappresenta le posizioni di OneDrive for Business. L'identità associata all'account di OneDrive deve essere passata come secondo argomento. -
IntuneMAMSaveLocationSharePoint- Questa posizione rappresenta sia SharePoint online che le posizioni locali di SharePoint per l'autenticazione moderna ibrida di Microsoft Entra. L'identità associata all'account di SharePoint deve essere passata come secondo argomento. -
IntuneMAMSaveLocationLocalDrive- Questa posizione rappresenta l'archiviazione sandbox dell'app a cui è possibile accedere solo dall'app. Questo percorso non deve essere usato per il salvataggio tramite una selezione file o per il salvataggio in file tramite un'estensione di condivisione. Se un'identità può essere associata all'archiviazione sandbox dell'app, deve essere passata come secondo argomento. Se non c'è identità,nildovrebbe essere passata. 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 libreria foto di iOS. Poiché alla raccolta foto di iOS non è associato alcun account, quando si usa questa posizione, deve essere passato solonilcome secondo argomento. -
IntuneMAMSaveLocationAccountDocument- Questa posizione rappresenta qualsiasi sede dell'organizzazione non elencata in precedenza che può essere collegata 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 line-of-business di un'organizzazione collegato all'account dell'organizzazione. -
IntuneMAMSaveLocationOther- Questa posizione rappresenta qualsiasi luogo non organizzativo, non elencato in precedenza o sconosciuto. Se un account è associato alla posizione, deve essere passato come secondo argomento. Altrimenti,nildovrebbe essere usato al suo posto.
Considerazioni speciali per le posizioni di salvataggio
Il IntuneMAMSaveLocationLocalDrive percorso deve essere usato solo per l'archiviazione sandbox dell'app a cui può accedere solo l'app. Per verificare se un file può essere salvato nel dispositivo iOS, IntuneMAMSaveLocationOther è necessario usare l'archiviazione tramite una selezione file o un altro metodo in cui i dati saranno accessibili nell'app Files.
Se la posizione di destinazione non è elencata, o IntuneMAMSaveLocationAccountDocumentIntuneMAMSaveLocationOther dovrebbe essere usata. Se la posizione contiene dati dell'organizzazione a cui si accede usando l'account gestito (ad esempio, Servizio cloud LOB per l'archiviazione dei dati dell'organizzazione). IntuneMAMSaveLocationAccountDocument Se la posizione non contiene dati dell'organizzazione, è necessario usare la IntuneMAMSaveLocationOther posizione.
Gestione degli scenari di apertura da
Prima di importare i dati da un nuovo spazio di archiviazione nel cloud o da una nuova posizione locale, un'app deve controllare con l'API isOpenFromAllowedForLocation:withAccountId: per sapere se l'amministratore IT ha consentito il trasferimento dei dati. Questo metodo viene chiamato su un IntuneMAMPolicy oggetto. I dati aperti sul posto non devono essere controllati 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 IntuneMAMPolicyManageril metodo .policyForAccountId: Se l'account ricevente è un account non gestito senza identità, nil può essere passato in policyForAccountId:. Anche se i dati ricevuti non sono dati dell'organizzazione, isOpenFromAllowedForLocation:withAccountId: dovrebbero comunque essere chiamati. L'account proprietario dei dati potrebbe ancora disporre di 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 può essere usato al suo posto.
Posizioni aperte supportate
Intune MAM SDK fornisce supporto per le posizioni aperte seguenti definite in IntuneMAMPolicy.h:
-
IntuneMAMOpenLocationOneDriveForBusiness- Questa posizione rappresenta le posizioni di OneDrive for Business. L'identità associata all'account di OneDrive deve essere passata come secondo argomento. -
IntuneMAMOpenLocationSharePoint- Questa posizione rappresenta sia SharePoint online che le posizioni locali di SharePoint per l'autenticazione moderna ibrida di Microsoft Entra. 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é alla fotocamera iOS non è associato alcun account, quando si usa questa posizione, deve essere passato solonilcome secondo argomento. Per aprire i dati dalla libreria foto di iOS, usareIntuneMAMOpenLocationPhotos. -
IntuneMAMOpenLocationPhotos- Questa posizione rappresenta solo le immagini esistenti all'interno della libreria foto di iOS. Poiché alla raccolta foto di iOS non è associato alcun account, quando si usa questa posizione, deve essere passato solonilcome secondo argomento. Per aprire immagini scattate direttamente dalla fotocamera iOS, utilizzareIntuneMAMOpenLocationCamera. -
IntuneMAMOpenLocationLocalStorage- Questa posizione rappresenta l'archiviazione sandbox dell'app 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 arrivo da un URL aperto. Se un'identità può essere associata all'archiviazione sandbox dell'app, deve essere passata come secondo argomento. Se non c'è identità,nildovrebbe essere passata. 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 sede dell'organizzazione non elencata in precedenza che può essere collegata a un account gestito. L'account dell'organizzazione associato alla posizione deve essere passato come secondo argomento. Ad esempio, quando si scarica una foto dal servizio cloud line-of-business di un'organizzazione collegato all'account dell'organizzazione. -
IntuneMAMOpenLocationOther- Questa posizione rappresenta qualsiasi posizione non organizzativa, non elencata in precedenza o qualsiasi posizione sconosciuta. Se un account è associato alla posizione, deve essere passato come secondo argomento. Altrimenti,nildovrebbe essere usato al suo posto.
Considerazioni speciali per le posizioni aperte
Il IntuneMAMOpenLocationLocalStorage percorso deve essere usato solo per l'archiviazione sandbox dell'app a cui l'app può accedere. Per verificare se un file può essere aperto dall'archiviazione del dispositivo iOS tramite una selezione file o un altro metodo in cui i dati sono accessibili anche nell'app IntuneMAMOpenLocationOther Files, è necessario usare.
Se la posizione di destinazione non è elencata, o IntuneMAMOpenLocationAccountDocumentIntuneMAMOpenLocationOther dovrebbe essere usata. Se la posizione contiene dati dell'organizzazione a cui si accede utilizzando l'account gestito. Ad esempio, è necessario usare il servizio cloud LOB per l'archiviazione dei dati dell'organizzazione. IntuneMAMOpenLocationAccountDocument Se la posizione non contiene dati dell'organizzazione, è necessario usare la IntuneMAMSaveLocationOther posizione.
Gestione dei NSItemProvider e dei Files in ingresso
Per gestire gli NSItemProviders ricevuti da un'estensione di condivisione, è possibile usare il IntuneMAMPolicymetodo 's canReceiveSharedItemProvider: al posto di isOpenFromAllowedForLocation:withAccountId:. Il canReceiveSharedItemProvider: metodo accetta un NSItemProvider e restituisce se l'apertura IntuneMAMPolicy dell'oggetto è consentita dall'amministratore IT. L'elemento deve essere caricato prima di chiamare questo metodo. Ad esempio, chiamando loadItemForTypeIdentifier:options:completionHandler. Questo metodo può essere chiamato anche dal gestore di completamento passato alla chiamata di caricamento NSItemProvider.
Per la gestione dei file in arrivo, è possibile usare il IntuneMAMPolicymetodo 's canReceiveSharedFile: al posto di isOpenFromAllowedForLocation:withAccountId:. Il canReceiveSharedFile: metodo accetta un percorso NSString e restituisce se l'apertura IntuneMAMPolicy è consentita dall'amministratore IT nell'account dell'oggetto.
Avviso di condivisione bloccata
È possibile usare una funzione helper dell'interfaccia utente quando l'API isSaveToAllowedForLocation:withAccountId: OR isOpenFromAllowedForLocation:withAccountId: viene chiamata e 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 solo le posizioni di condivisione gestite da Intune siano disponibili per la selezione. Questo comportamento verrà controllato dai criteri di trasferimento dei dati dell'applicazione.
Azioni "Copia in"
Quando si condividono documenti tramite e UIActivityViewControllerUIDocumentInteractionController, iOS visualizza le azioni "Copia in" per ogni applicazione che supporta l'apertura del documento condiviso. Le applicazioni dichiarano i tipi di documento che supportano tramite l'impostazione CFBundleDocumentTypes nel relativo 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 alla propria applicazione e collegarla a Intune App SDK. L'estensione Action è solo uno stub. L'SDK implementerà il comportamento di condivisione di file. Esegui i passaggi seguenti:
L'applicazione deve avere almeno uno schemeURL definito in Info.plist
CFBundleURLTypesinsieme alla relativa-intunemamcontroparte. 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
AppGroupIdentifiersmatrice nei dizionari IntuneMAMSettings dell'app e dell'estensione.Sia l'applicazione che l'estensione azione devono disporre della funzionalità Condivisione portachiavi e condividere il
com.microsoft.intune.mamgruppo portachiavi.Assegnare all'estensione di azione il nome "Apri in" seguito dal nome dell'applicazione. Localizzare il file Info.plist in base alle esigenze.
Fornire un'icona 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 di .app dell'applicazione. A tale scopo, eseguire:
IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directoryIn IntuneMAMSettings nel file Info.plist dell'estensione, aggiungi un'impostazione booleana denominata
OpenInActionExtensioncon il valore YES.Configurare il
NSExtensionActivationRuleper supportare un singolo file e tutti i tipi dal prefisso dell'applicazioneCFBundleDocumentTypesconcom.microsoft.intune.mam. 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 Condividi e Azione esistenti
Se l'app contiene già estensioni condivisione o azione, sarà necessario modificarle NSExtensionActivationRule per consentire i tipi di Intune. Per ogni tipo supportato dall'estensione, aggiungere un ulteriore tipo preceduto da com.microsoft.intune.mam. 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
È possibile usare lo strumento IntuneMAMConfigurator per aggiungere i tipi di Intune alla regola di attivazione. Se la regola di attivazione esistente utilizza 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 a una stringa predicato durante l'aggiunta dei tipi di Intune.
Come dovrebbe essere l'interfaccia utente
Interfaccia utente precedente:
Nuova interfaccia utente:
Abilitare la configurazione delle 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 dati di configurazione tramite Intune SDK. Il formato e le varianti di questi dati devono essere definiti e comunicati ai clienti di Intune dal proprietario/sviluppatore dell'app.
Intune gli amministratori possono indirizzare e distribuire i dati di configurazione tramite l'interfaccia di amministrazione di Microsoft Intune e Intune API Graph. A partire dalla versione 7.0.1 di Intune App SDK per iOS, alle app che partecipano alla configurazione di destinazione MAM possono essere forniti i 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 all'app anziché tramite il canale MDM. Intune App SDK fornisce una classe per accedere ai dati recuperati da queste console. I seguenti elementi sono prerequisiti:
L'app deve essere registrata con il servizio MAM di Intune prima di accedere all'interfaccia utente di configurazione di destinazione MAM. Per altre informazioni, vedere Ricevere criteri di protezione delle app.
Includi
IntuneMAMAppConfigManager.hnel file di origine della tua app.Chiama
[[IntuneMAMAppConfigManager instance] appConfigForAccountId:]per ottenere l'oggetto App Config.Chiama il selettore appropriato sull'oggetto
IntuneMAMAppConfig. Ad esempio, se la chiave dell'applicazione è una stringa, si consiglia di usarestringValueForKeyoallStringsForKey. Per una descrizione dettagliata sui valori restituiti e sulle condizioni di errore, vedereIntuneMAMAppConfig.h.
Per altre informazioni sulle funzionalità dell'API Graph, vedere Informazioni di riferimento sulle API di API Graph.
Per altre informazioni su come creare criteri di configurazione delle app di destinazione MAM in iOS, vedere la sezione sulla configurazione delle app di destinazione MAM in Come usare i criteri di configurazione delle app di Microsoft Intune per iOS/iPadOS.
Telemetria
Per impostazione predefinita, lo SDK per le app di Intune per iOS raccoglie i dati di telemetria per i tipi di eventi seguenti:
Avvio dell'app: per consentire a Microsoft Intune di ottenere 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 consentire a Microsoft Intune di ottenere informazioni sul tasso di successo e altre metriche sulle prestazioni delle chiamate di registrazione avviate dal lato client.
Azioni di Intune: per diagnosticare i problemi e garantire il funzionamento di Intune, Microsoft raccoglie informazioni sulle azioni di Intune SDK.
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 di dati di telemetria di App SDK. Impostare la proprietà MAMTelemetryDisabled su YES nel dizionario IntuneMAMSettings.
Intenti Siri
Se l'app si integra con Siri Intents o effettua donazioni Siri Intent, assicurarsi di leggere i commenti per areSiriIntentsAllowed le IntuneMAMPolicy.h istruzioni su come supportare questo scenario.
Nota
In iOS 16 e versioni successive, è disponibile un nuovo framework di sistema Finalità delle app per la creazione di Finalità delle app Swift. Le app che implementano una finalità dell'app devono prima controllare la areSiriIntentsAllowed proprietà nell'oggetto IntuneMAMPolicy per l'utente.
App Clip
Se l'app include una destinazione clip dell'app, assicurarsi di verificare che nel clip dell'app non siano presenti dati gestiti. La clip dell'app deve essere considerata una posizione non gestita. L'integrazione dell'SDK nelle clip per app non è attualmente supportata.
Stampa
Se l'app implementa la stampa e fornisce un'azione di stampa personalizzata in un menu personalizzato, assicurarsi di utilizzarla UIPrintInteractionController.isPrintingAvailable() per determinare se è necessario aggiungere l'azione di stampa al menu personalizzato.
Blocco dell'acquisizione dello schermo
Per le app aggiornate alla versione 19.7.6 o successiva per Xcode 15 e alla versione 20.2.1 o successiva per Xcode 16 dell'SDK, il blocco di acquisizione dello schermo verrà applicato se è stato configurato Send Org data to other apps un valore diverso da "Tutte le app". Se si vuole consentire l'acquisizione dello schermo per i dispositivi iOS, è possibile configurare l'impostazione dei criteri di configurazione dell'app "com.microsoft.intune.mam.screencapturecontrol = Disabilitato".
Notifiche
Se l'app riceve notifiche, leggere i commenti per notificationPolicy istruzioni IntuneMAMPolicy.h su come supportare questo scenario. È consigliabile che le app si registrino per IntuneMAMPolicyDidChangeNotification quanto descritto in IntuneMAMPolicyManager.he comunichino loro UNNotificationServiceExtension questo valore tramite il portachiavi.
Estensioni Web di Safari
Se l'app dispone di un'estensione web di Safari e supporta l'invio di dati tra l'estensione e l'applicazione padre, in alcuni scenari potrebbe essere necessario che l'applicazione supporti il blocco dei dati. Per bloccare i dati, nell'applicazione padre chiamare l'API isAppSharingAllowed in IntuneMAMPolicy.he quindi bloccare l'estensione Web.
Script post-compilazione
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 su 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 Intune MAM Framework Patcher per il processo di compilazione dell'applicazione. -
path: devepathessere la radice della directory .app dell'applicazione. -
resign: L'opzioneresignindica allo strumento di abbandonare i file binari che avevano una firma valida prima di applicare la patch al file binario. Questa opzione deve essere utilizzata se il progetto include dipendenze framework o plug-in con l'opzione Incorpora e firma , anche se eseguito prima della firma finale dell'applicazione o se lo strumento viene eseguito dopo la firma finale dell'applicazione. -
verbose: l'opzioneverbosefarà sì che lo strumento restituisca informazioni su ogni binario a cui è stata applicata la patch.
Altri usi:
Rimuovere il cerotto:
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 ulteriori informazioni su come iniziare e scaricare l'SDK, vedere Introduzione a Microsoft Intune App SDK.
Criteri di chiusura
Convalida salvataggio in/apertura da restrizioni in corso
Salta se non l'hai fatto: Implementare i controlli Salva con nome e Apri da.
Acquisisci familiarità con ogni scenario in cui la tua app può salvare i dati in archivi cloud o posizioni locali e aprire 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 dei dati da OneDrive for Business da un'unica posizione all'interno dell'app. Tuttavia, è necessario convalidare ogni combinazione: ogni percorso di salvataggio supportato rispetto a ogni posizione consentita dall'app consente il salvataggio dei dati e ogni posizione aperta supportata rispetto a ogni posizione consentita dall'app nell'apertura dei dati.
Per questi test, installa l'app, integrala con l'SDK e accedi con un account gestito prima di iniziare il test.
Inoltre:
- Impostare il criterio dell'account gestito su:
- "Invia dati dell'organizzazione ad altre app" in "App gestite da criteri".
- Da "Ricevi dati da altre app" ad "App gestite da criteri".
| Scenario | Presupposti | Procedura |
|---|---|---|
| Salva fino a, completamente consentito | Il criterio "Salva copie dei dati dell'organizzazione" è impostato su "Consenti" | - Passare alla posizione in cui l'app può salvare i dati in OneDrive for Business. - Provare a salvare un documento in OneDrive for Business, nello stesso account gestito connesso all'app. - Conferma che il salvataggio è consentito. |
| Salva a, esentato | - Criterio "Salva copie dei dati dell'organizzazione" impostato su "Blocca" - Il criterio "Consenti all'utente di salvare copie in servizi selezionati" è impostato solo su "OneDrive for Business" |
- Passare alla posizione in cui l'app può salvare i dati in OneDrive for Business. - Provare a salvare un documento in OneDrive for Business, nello stesso account gestito connesso all'app. - Conferma che il salvataggio è consentito. - Se l'app lo consente, provare a salvare il file in un'altra posizione di archiviazione nel cloud 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 in OneDrive for Business. - Provare a salvare un documento in OneDrive for Business, nello stesso account gestito connesso all'app. - Conferma che il salvataggio è bloccato. - Se l'app lo consente, provare a salvare il file in un'altra posizione di archiviazione nel cloud e verificare che sia bloccato. |
| Aperto da, completamente consentito | Criterio "Apri dati nei documenti dell'organizzazione" impostato su "Consenti" | - Passare al punto in cui l'app può aprire i dati da OneDrive for Business. - Provare ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso allo spazio di archiviazione dell'app. - Conferma che l'apertura è 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 al punto in cui l'app può aprire i dati da OneDrive for Business. - Provare ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso allo spazio di archiviazione dell'app. - Conferma che l'apertura è consentita. - Se l'app lo consente, prova ad aprire un altro file da una posizione di archiviazione cloud diversa e verifica che sia bloccato. |
| Aperto da, bloccato | Criterio "Apri dati nei documenti dell'organizzazione" impostato su "Blocca" | - Passare al punto in cui l'app può aprire i dati da OneDrive for Business. - Provare ad aprire un documento da OneDrive for Business, dallo stesso account gestito connesso allo spazio di archiviazione dell'app. - Conferma che l'apertura sia bloccata. - Se l'app lo consente, prova ad aprire un altro file da una posizione di archiviazione cloud diversa e verifica che sia bloccato. |
Convalida delle azioni "Copia in"
Ignorare se non sono state implementate le azioni "Copia in".
Per semplicità, questi test presuppongono che l'app includa solo il supporto per la copia dei dati in applicazioni di Microsoft Office, come Microsoft Word, Excel e così via. Tuttavia, è necessario convalidare ogni combinazione, ovvero ogni percorso di copia supportato rispetto a ogni posizione in cui l'app consente la copia dei dati.
Per questi test, installa l'app, integrala con l'SDK e accedi con un account gestito prima di iniziare il test.
Inoltre:
- Completati tutti i passaggi di integrazione dalle azioni "Copia in" con un'estensione azione per Microsoft Word e compila ed esegui l'app correttamente.
- Impostare il criterio dell'account gestito su:
- "Invia dati dell'organizzazione ad altre app" in "App gestite da criteri".
| Scenario | Presupposti | Procedura |
|---|---|---|
| Selezionare le app da esentare, Nessuna | Criterio "Invia dati dell'organizzazione ad altre app" impostato su "App gestite da criteri" | - Vai al punto in cui la tua app può copiare i dati su Microsoft Word e avvia l'opzione di condivisione per tali dati. - Conferma che invece di vedere "Copia in Word" come opzione, puoi vedere "Apri in Word". - Premi su "Apri in Word" e conferma che il documento è stato copiato e visualizzato correttamente, dato che anche Word è connesso con lo stesso account gestito. |
Convalida delle azioni di stampa
Ignorare se la stampa non è stata implementata.
Per questo test, installa la tua app, integrala con l'SDK e accedi con un account gestito prima di iniziare il test.
Inoltre:
- Completati tutti i passaggi di integrazione dalla stampa e compila ed esegui correttamente l'app.
- L'app implementa già avvisi/attività per gestire il caso quando la stampa non è consentita dall'amministratore IT dell'APP. In questo test, supponendo che l'app richiederà un avviso agli utenti finali quando la stampa è bloccata.
| Scenario | Procedura |
|---|---|
| Stampa di dati dell'organizzazione, blocco | - Passare alla posizione in cui l'app può visualizzare i dati e avviare l'opzione di condivisione per tali dati. - Premere su "Stampa". - Conferma che viene visualizzato un avviso di blocco e che la stampa non è consentita. |
| Stampa dei dati dell'organizzazione, Consenti | - Passare alla posizione 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 delle configurazioni delle app di ricezione
Ignorare questo argomento se non è stata abilitata la configurazione delle app di destinazione per le applicazioni iOS.
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:
- Configurare un criterio di configurazione dell'app destinato all'app e distribuito nell'account di test.
- Se l'app supporta la configurazione delle app per i dispositivi gestiti, vedere i criteri di configurazione delle applicazioni per i dispositivi iOS Enterprise gestiti.
- Se l'app supporta la configurazione delle app per le app gestite, vedere i criteri di configurazione delle applicazioni per le app gestite.
- Se l'app supporta entrambi i tipi di configurazione dell'app, creare entrambi i tipi di criteri per il test.
- Accedi all'app con il tuo account di prova.
- Naviga nell'app per esercitare ogni percorso di codice che chiama
IntuneMAMAppConfigManager.appConfigForIdentity- La registrazione dei risultati delle chiamate a
appConfigForIdentityè 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.
- 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 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.
Operazioni successive
Se hai seguito questa guida nell'ordine e hai completato tutti i criteri di uscita precedenti, congratulazioni, la tua app è ora completamente integrata con Intune App SDK e puoi applicare i criteri di protezione delle app! Scopri altre importanti funzionalità di partecipazione all'app, ad esempio Fase 5: Multi-identità, Fase 6: Protezione dell'app, Supporto per l'accesso condizionale e Fase 7: Funzionalità di visualizzazione Web, per integrarle nella tua app.
La protezione di app è ora uno scenario fondamentale per la tua app. Continua a fare riferimento a questa guida e all'Appendice mentre continui a sviluppare la tua app.