Guida per sviluppatori di Microsoft Tunnel per MAM iOS SDK

La guida per sviluppatori di Microsoft Tunnel per MAM iOS SDK è una risorsa per gli sviluppatori. Consente agli sviluppatori di integrare e configurare l'SDK in un'app iOS/iPadOS. Per una panoramica del Microsoft Tunnel per MAM, vedere Microsoft Tunnel per MAM per iOS/iPadOS - Guida per gli amministratori di Intune.

Questa guida copre diverse parti del processo di integrazione nel progetto dell'app Xcode, tra cui l'installazione dei framework, la configurazione del file, le info.plist impostazioni di compilazione, la condivisione delle chiavi e l'implementazione dei metodi delegati dell'SDK.

Questi componenti sono fondamentali nello sviluppo di un'app iOS/iPadOS. Gli sviluppatori devono sapere come esplorare e configurare i componenti dell'SDK. Se non hai esperienza con Xcode e lo sviluppo di app iOS/iPadOS, questa guida può aiutarti. Fornisce una panoramica su dove trovare i diversi componenti SDK e su come usare questi elementi nei progetti di app.

Questa funzionalità si applica a:

  • iOS/iPadOS

Contenuto del repository SDK

Il repository SDK include i framework seguenti. Questi framework verranno aggiunti al progetto app in un passaggio successivo:

  • crypto.xcframework
  • MCPCommon.xcframework
  • MCPCore.xcframework
  • MCPPluginUnencryptedFile.xcframework
  • MicrosoftTunnelApi.xcframework
  • MSTAPNextPluginSecurityOpenssl.xcframework
  • MSTAPNextPluginSwiftSupport.xcframework
  • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
  • ssl.xcframework

Prerequisiti

Per usare l'SDK Microsoft Tunnel per MAM iOS, sono richiesti i prerequisiti seguenti:

  • Un computer macOS con Xcode 14.0 o versione più recente installato

  • L'app iOS/iPadOS della tua linea di business (LOB) deve essere destinata a iOS/iPadOS 14.0 o versione successiva.

  • Sono disponibili due GitHub SDK che devi scaricare e integrare con la tua app iOS in Xcode. Assicurarsi che i progetti seguenti vengano compilati correttamente prima di continuare con Microsoft Tunnel per MAM iOS SDK:

    1. Intune App SDK per iOS (apre un sito GitHub): Installare almeno la versione 16.1.1.

    In questo sito, consultare anche le Condizioni di licenza Microsoft Intune App SDK per iOS file.

    Per la tua archiviazione, conserva una copia delle condizioni di licenza. Scaricando e utilizzando Microsoft Tunnel per MAM iOS SDK, accetti le condizioni di licenza. Se il licenziatario non accetta le condizioni di licenza, non dovrà utilizzare il software.

    1. Libreria di Autenticazione Microsoft (MSAL) (apre un sito GitHub): installa almeno la versione 1.2.3.
  • Installare e configurare Microsoft Tunnel per MAM iOS SDK (apre un sito GitHub). Questo SDK è l'obiettivo di questo articolo.

    Importante

    Intune rilascia regolarmente aggiornamenti a Microsoft Tunnel per MAM iOS SDK. Controllare regolarmente la disponibilità di aggiornamenti in Microsoft Tunnel per MAM iOS SDK. Aggiungi questi aggiornamenti al ciclo di rilascio dello sviluppo del software. Vuoi assicurarti che le tue app supportino gli aggiornamenti e i miglioramenti delle funzionalità di Microsoft Tunnel Gateway.

Come funziona il Microsoft Tunnel per MAM iOS SDK

Il tunnel per MAM iOS SDK consente alle app iOS/iPadOS di stabilire una connessione VPN "in-app". La connessione VPN esiste solo all'interno dell'app.

Per riepilogare, queste connessioni VPN in-app sono:

  • Connessioni VPN discrete, non a livello di dispositivo
  • Ambito limitato al livello di rete dell'applicazione

Quando un'app effettua una chiamata di rete, l'SDK intercetta la chiamata di rete e stabilisce la connessione VPN. Questa connessione VPN in-app non viene visualizzata nell'app Impostazioni nel dispositivo iOS/iPadOS.

Architettura: Tunnel per MAM iOS SDK

L'immagine seguente descrive il flusso da un'app gestita integrata correttamente con Tunnel per MAM iOS SDK:

Disegno del gateway del tunnel Microsoft per MAM nell'architettura iOS/iPadOS in Microsoft Intune.

  1. All'avvio iniziale dell'app, viene stabilita una connessione usando Microsoft Tunnel per MAM SDK per iOS.

  2. Il tunnel ottiene un token di autenticazione del dispositivo da Microsoft Entra ID.

    Se il dispositivo ha eseguito l'accesso a un'altra app abilitata per MAM, come Microsoft Outlook, Microsoft Edge o l'app per dispositivi mobili Microsoft 365, il dispositivo potrebbe già disporre di un token di autenticazione Microsoft Entra. Se esiste già un token di autenticazione valido, viene usato il token esistente.

  3. Si verifica una connessione TCP, ovvero un handshake TLS tra il token e il server tunnel.

  4. Se UDP è abilitato su Microsoft Tunnel Gateway, viene stabilita una connessione al canale dati con DTLS. Se UDP è disabilitato, TCP stabilisce il canale dati per il gateway del tunnel.

    Per altre informazioni, vedere le note TCP e UDP in Panoramica di Microsoft Tunnel - Architettura.

  5. Quando l'app per dispositivi mobili stabilisce una connessione a una risorsa aziendale locale:

    1. Richieste API Microsoft Tunnel per MAM di connettersi alla risorsa aziendale.
    2. Viene creata una richiesta Web crittografata che viene inviata alla risorsa aziendale.

Attività Xcode

In questa sezione vengono elencate e descritte le attività di Xcode che è necessario completare, tra cui:

  • Aggiungere i framework e le librerie
  • Rivedere e aggiornare le funzionalità seguenti:
    • info.plistfile
    • Impostazioni compilazione
    • Condivisione portachiavi
  • Usare gli esempi per aggiornare il progetto AppDelegate Xcode e aggiungere un file delegato di Microsoft Tunnel

Passaggio 1: Aggiungere i framework e le librerie

I framework seguenti includono le API necessarie e i metodi delegati per comunicare con Intune Microsoft Tunnel Gateway. Implementano le funzionalità VPN di Microsoft Tunnel all'interno dell'app.

Per abilitare il tunnel per MAM iOS SDK, eseguire la procedura seguente:

  1. Scaricare ed estrarre Tunnel per MAM iOS SDK in una cartella in un computer macOS. Anche questa attività è elencata nei Prerequisiti.

    Copia i seguenti nove framework nella cartella dei framework del progetto dell'app Xcode:

    • crypto.xcframework
    • MCPCommon.xcframework
    • MCPCore.xcframework
    • MCPPluginUnencryptedFile.xcframework
    • MicrosoftTunnelApi.xcframework
    • MSTAPNextPluginSecurityOpenssl.xcframework
    • MSTAPNextPluginSwiftSupport.xcframework
    • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
    • ssl.xcframework
  2. Nel progetto Xcode selezionare il progetto > dell'app Aggiungi file. Nell'esempio seguente, i file vengono aggiunti a un progetto app denominato "Flash Chat":

    Schermata che mostra come aggiungere file al progetto app in Xcode in un dispositivo macOS.

  3. InDESTINAZIONI DELPROGETTO> selezionare Fasi> di compilazioneIncorpora framework. Aggiungi (+) tutti e nove i framework:

    Screenshot che mostra l'incorporamento di framework in Xcode in un dispositivo macOS.

    L'esempio seguente mostra tutti e nove i framework aggiunti:

    Screenshot che mostra tutti i framework Microsoft Tunnel incorporati in Xcode in un dispositivo macOS.

  4. In DESTINAZIONI DEL PROGETTO>, selezionaFasi> di compilazioneCollega binario a librerie. Nell'elenco, dovrebbe essere aggiunto solo il MicrosoftTunnelApi.xcframework framework. Se sono presenti altri framework, rimuoverli con il segno meno (-):

    Screenshot che mostra come rimuovere i framework in Link Binary with Libraries in Xcode in un dispositivo macOS.

Passaggio 2 - Aggiornare il info.plist file

info.plist Nel progetto per l'app Xcode conferma le impostazioni seguenti:

  • ID bundle: assicurarsi che lo stesso ID bundle elencato nella registrazione dell'app Microsoft Entra per l'app mobile iOS sia lo stesso ID bundle nel progetto app:

    Per controllare l'ID bundle:

    1. Vai aOBIETTIVI>DEL PROGETTO>Generale.

    2. Selezionarel'identificatore del bundle di identità>:

      Screenshot che mostra la selezione di progetto, destinazioni, generale e identità per aggiungere l'ID bundle in Xcode in un dispositivo macOS.

  • Tipi di URL: IN>DESTINAZIONI PROGETTO selezionare Informazioni.

    In Tipi di URL verificare che la $(PRODUCT_BUNDLE_IDENTIFIER) variabile sia presente. Quando è stato integrato Intune App SDK per iOS con il progetto dell'app (un prerequisito obbligatorio), questa variabile avrebbe dovuto essere creata.

    Se la variabile non è presente, è necessario aggiungerla:

    1. Utilizzando Intune App SDK per iOS (un prerequisito obbligatorio), creare una info.plist proprietà Array e denominarla Queryed URL Schemes.

      Aggiungere gli elementi stringa elencati nel passaggio 5 di Creare l'SDK nell'app per dispositivi mobili. Questo passaggio crea gli schemi URL di Intune MAM SDK.

      L'esempio seguente mostra info.plist usando schemi URL sottoposti a query:

      Screenshot che mostra la selezione dei valori di project, targets, info e schemi URL sottoposti a query in Xcode in un dispositivo macOS.

    2. Aggiungi la $(PRODUCT_BUNDLE_IDENTIFIER) variabile.

      L'esempio seguente mostra la $(PRODUCT_BUNDLE_IDENTIFIER) variabile nei tipi di URL:

      Screenshot che mostra la selezione di progetti, destinazioni, informazioni, tipi di URL in Xcode in un dispositivo macOS.

  • IntuneMAMSettings: Verificare che le impostazioni MSAL seguenti siano configurate con i valori di registrazione dell'app Microsoft Entra appropriati:

    1. Vai alleinformazioni suitarget> del progetto>.

    2. Selezionare IntuneMAMSettings. Conferma le impostazioni:

      • ADALAuthority: immettere l'ID tenant di Microsoft Entra, ad esempio https://login.microsoftonline.com/USE_YOUR_ Directory (tenant) ID.
      • ADALClientId: immettere l'ID client dell'applicazione.
      • ADALRedirectUri: Invio msauth.$(PRODUCT_BUNDLE_IDENTIFIER):/auth.

    Quando è stato integrato Intune App SDK per iOS con il progetto dell'app (un prerequisito obbligatorio), queste impostazioni avrebbero dovuto essere configurate.

    Se queste impostazioni non sono configurate, è necessario configurarle. Per creare la proprietà IntuneMAMSettings info.plist Dictionary e le stringhe della libreria di autenticazione Microsoft associate, seguire la guida per gli sviluppatori di Intune App SDK per iOS (un prerequisito obbligatorio) in Configurare le impostazioni MSAL per Intune App SDK.

    L'esempio seguente mostra questi valori configurati:

    Screenshot che mostra la selezione di progetto, destinazioni, informazioni, IntuneMAMSetting in Xcode in un dispositivo macOS.

Passaggio 3 - Disattivare Bitcode

  1. Vai aDESTINAZIONI>DEL PROGETTO>Impostazioni di compilazione.
  2. Selezionare le opzioni> di compilazioneAbilita bitcode.
  3. Selezionare No.

Screenshot che mostra la selezione del progetto, delle destinazioni, delle impostazioni di compilazione, delle opzioni di compilazione e la disabilitazione del codice bit in Xcode in un dispositivo macOS.

Passaggio 4: aggiungi la condivisione del portachiavi

La condivisione del portachiavi potrebbe essere presente nel progetto dell'app. Se non è presente, aggiungerlo:

  1. Passare aDESTINAZIONI>DEL PROGETTO>& Funzionalità di .
  2. Seleziona Condivisione portachiavi.
  3. Nell'elenco Gruppi Portachiavi , aggiungi (+) com.microsoft.workplacejoin.

Screenshot che mostra la selezione del progetto, delle destinazioni, delle funzionalità di firma &, della condivisione del portachiavi e dell'aggiunta di un gruppo portachiavi in Xcode in un dispositivo macOS.

Passaggio 5 - Integrare l'SDK con l'app

✔️ Usare l'app di TunnelMAMTestApp2.xcproject esempio.

A seconda dell'app line-of-business e della relativa implementazione/scopo previsto, l'uso MicrosoftTunnelApi può variare. Ci sono alcune funzionalità fondamentali da conoscere durante l'integrazione dell'SDK con l'app:

  • Tutte le interazioni con Microsoft Tunnel per Microsoft Tunnel per MAM iOS SDK vengono gestite tramite un MicrosoftTunnelAPI oggetto singleton.
  • L'oggetto MicrosoftTunnelAPI interagisce con l'app usando un delegato che implementa un'interfaccia MicrosoftTunnelDelegate . 

Per informazioni su come scrivere il delegato Microsoft Tunnel e come inizializzare , MicrosoftTunnelAPIusa le app di esempio Microsoft Tunnel per MAM iOS SDK (apre un sito GitHub).

Nelle app di esempio, l'AppDelegate del progetto Xcode mostra:

  • Come gestire i callback degli URL MSAL
  • Come avviare il processo di registrazione e inizializzazione richiesto per Tunnel

Per iniziare, apri l'app TunnelMAMTestApp2.xcproject di esempio ed esamina l'AppDelegate & MicrosoftTunnelDelegate nel progetto dell'app.

App di esempio

✔️ Scarica in Microsoft Tunnel per MAM iOS SDK app di esempio (apre un sito GitHub).

Queste app di esempio possono aiutarti a iniziare e coprire diversi scenari.

Metodi MicrosoftTunnelAPI

Include MicrosoftTunnelAPI i metodi seguenti:

  • Initialize – Controlla e imposta le configurazioni VPN, imposta la registrazione e configura l'istanza MicrosoftTunnelAPI .

  • Connect – Ottiene l'istanza e abilita l'intercettazione del MicrosoftTunnelAPI traffico di rete. Se l'API non è inizializzata, viene visualizzato un errore.

  • Disconnect - Ottiene l'istanza e disabilita l'intercettazione del MicrosoftTunnelAPI traffico di rete. Se l'API non è inizializzata, viene visualizzato un errore.

  • onTokenRequired – Facoltativo. Se l'app è già integrata con uno dei due IntuneMAM o MSAL, è necessario implementare questo onTokenRequired metodo. Questo metodo usa e IntuneMAMSettings MSAL per ottenere un token di autenticazione valido per connettersi a Microsoft Tunnel Gateway.

  • Logging – Esistono alcune classi di registrazione diverse, indicate con k. Ad esempio, kLoggingClassConnect crea un output di registrazione nella console Xcode. Queste chiavi di configurazione della registrazione possono essere aggiunte alla configurazione del delegato. Sono disponibili alcuni esempi di queste classi di registrazione nelle app di esempio.

    • kLoggingClassInternal
    • kLoggingClassConnect
    • kLoggingClassPacket
    • kLoggingClassSocket
    • kLoggingClassHttp
    • kLoggingClassIntune
    • kLoggingClassMobileAccess
    • kLoggingSeverityDebug
    • kLoggingSeverityInfo
    • kLoggingSeverityWarn
    • kLoggingSeverityMinor
    • kLoggingSeverityMajor
    • kLoggingSeverityCrit

Avviso

Non usare le chiavi di debug nelle app distribuite. Le chiavi possono registrare e mostrare le informazioni identificabili dell'utente e i dati di sicurezza.

Accesso alle app line-of-business iOS/iPadOS

L'integrazione dell'SDK non abilita automaticamente la registrazione. Lo sviluppatore deve aggiungere il codice appropriato per implementare il framework dei delegati di registrazione ed effettuare le chiamate di registrazione appropriate. L'implementazione specifica varia a seconda dell'SDK e dei requisiti dello sviluppatore.

Lo sviluppatore deve:

  • Assicurarsi che non includano dati personali identificabili del cliente o dell'utente finale nella registrazione. Devono rispettare le normative sulla privacy.

  • Consultare e collaborare con il team per la privacy dell'azienda/organizzazione dell'organizzazione. Il team per la privacy può fornire indicazioni sui dati appropriati che possono essere registrati e sui modi appropriati per gestire i dati sensibili.

Avviso

Consulta la documentazione sulla privacy di Microsoft Tunnel per MAM iOS SDK (apre un file PDF in GitHub) per indicazioni specifiche sulla registrazione e sulla privacy dei dati.

MAM-Tunnel esempio di metodo delegato del log

Screenshot che mostra un esempio di metodo delegato del log di Microsoft Tunnel in Xcode in un dispositivo macOS.

Screenshot che mostra un esempio di output del log di Microsoft Tunnel in Xcode in un dispositivo macOS.

Microsoft Tunnel per la gestione delle applicazioni per dispositivi mobili Informazioni sulla privacy

La privacy degli utenti è importante per noi. Esaminare la seguente documentazione online correlata alla privacy:

Quando l'SDK di Microsoft Tunnel per MAM iOS viene integrato nelle app per dispositivi mobili, i dati seguenti vengono raccolti quando uno sviluppatore:

  • Abilita il modulo di telemetria MAM di Intune nell'app

I dati raccolti possono includere le aree seguenti:

  • Versione di Microsoft Tunnel per MAM SDK
  • Informazioni utente generate da Microsoft
    • ID dispositivo
  • Informazioni su hardware e software
    • Marca dispositivo
    • Modello dispositivo
    • Versione del sistema operativo del dispositivo
  • Informazioni sull'account e sull'amministrazione
    • ID tenant di Intune
    • ID tenant di Microsoft Entra
  • Misurazione dell'utilizzo:
    • Inizializzazione VPN
    • Eventi di connessione e disconnessione VPN
  • Informazioni sull'errore
    • Errori correlati a un errore di connessione VPN

Non vengono raccolte informazioni identificabili dall'utente.

Importante

Gli sviluppatori che integrano l'SDK sono importanti da non includere dati identificabili dall'utente quando usano il codice per indirizzare e acquisire messaggi nell'applicazione.

Problemi noti

Per problemi più noti, vedere Microsoft Tunnel per MAM per iOS/iPadOS - Guida per gli amministratori di Intune.

Passaggi successivi

Microsoft Tunnel per MAM per iOS/iPadOS - Guida per l'amministratore di Intune