Microsoft Tunnel für MAM iOS SDK-Entwicklerhandbuch

Das Entwicklerhandbuch für das iOS-SDK von Microsoft Tunnel für MAM ist eine Ressource für Entwickler. Es hilft Entwicklern, das SDK in eine iOS/iPadOS-App zu integrieren und zu konfigurieren. Eine Übersicht über Microsoft Tunnel für MAM finden Sie unter Microsoft Tunnel für MAM für iOS/iPadOS – Intune-Administratorhandbuch.

Dieser Leitfaden behandelt verschiedene Teile des Integrationsprozesses in Ihrem Xcode-App-Projekt, einschließlich der Installation der Frameworks, der Konfiguration der Datei, der info.plist Build-Einstellungen, der Schlüsselfreigabe und der Implementierung der Delegatmethoden des SDK.

Diese Komponenten sind bei der Entwicklung einer iOS/iPadOS-App von entscheidender Bedeutung. Entwickler müssen verstehen, wie man in den SDK-Komponenten navigiert und sie konfiguriert. Wenn Sie mit der Entwicklung von Xcode- und iOS/iPadOS-Apps noch nicht vertraut sind, kann Ihnen dieser Leitfaden helfen. Sie bietet eine Übersicht darüber, wo die verschiedenen SDK-Komponenten zu finden sind und wie Sie diese Elemente in Ihren App-Projekten verwenden.

Diese Funktion gilt für:

  • iOS/iPadOS

Was befindet sich im SDK-Repository?

Das SDK-Repository enthält die folgenden Frameworks. In einem späteren Schritt fügen Sie diese Frameworks Ihrem App-Projekt hinzu:

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

Voraussetzungen

Zur Verwendung des Microsoft Tunnel für MAM iOS SDK sind die folgenden Voraussetzungen erforderlich:

  • Ein macOS-Computer mit installiertem Xcode 14.0 oder höher

  • Die iOS/iPadOS-App Ihres Geschäftsbereichs muss auf iOS/iPadOS 14.0 oder höher ausgerichtet sein.

  • Es gibt zwei GitHub SDKs, die Sie herunterladen und in Ihre iOS-App in Xcode integrieren müssen. Stellen Sie sicher, dass die folgenden Projekte erfolgreich erstellt werden, bevor Sie mit dem Microsoft Tunnel für MAM iOS SDK fortfahren:

    1. Intune App SDK für iOS (öffnet eine GitHub-Website): Installieren Sie mindestens die Version 16.1.1.

    Lesen Sie auf dieser Website auch die Datei mit dem Microsoft-Lizenzbedingungen im Intune App SDK für iOS.

    Bewahren Sie für Ihre Unterlagen eine Kopie der Lizenzbedingungen auf. Durch das Herunterladen und Verwenden des Microsoft Tunnel für MAM iOS-SDK stimmen Sie den Lizenzbedingungen zu. Wenn Sie den Lizenzbedingungen nicht zustimmen, verwenden Sie die Software nicht.

    1. Microsoft Authentication Library (MSAL) (MSAL) (öffnet eine GitHub-Website): Installieren Sie mindestens die Version 1.2.3.
  • Installieren und Einrichten des iOS-SDK für Microsoft Tunnel für MAM (öffnet eine GitHub-Site). Dieses SDK steht im Mittelpunkt dieses Artikels.

    Wichtig

    Intune veröffentlicht regelmäßig Updates für das Microsoft Tunnel für MAM iOS SDK. Überprüfen Sie regelmäßig das Microsoft Tunnel für MAM iOS SDK auf Updates. Fügen Sie diese Updates dem Veröffentlichungszyklus Ihrer Softwareentwicklung hinzu. Sie möchten sicherstellen, dass Ihre Apps die Updates und Funktionserweiterungen für Microsoft Tunnel-Gateway unterstützen.

Funktionsweise des iOS-SDK von Microsoft Tunnel für MAM

Der Tunnel für das MAM iOS SDK ermöglicht es iOS/iPadOS-Apps, eine "In-App"-VPN-Verbindung herzustellen. Die VPN-Verbindung besteht nur innerhalb der App.

Zusammenfassend sind diese In-App-VPN-Verbindungen:

  • Diskrete VPN-Verbindungen, die nicht auf Geräteebene liegen
  • Nur auf die Anwendungsnetzwerkebene beschränkt

Wenn eine App einen Netzwerkaufruf tätigt, fängt das SDK den Netzwerkaufruf ab und stellt die VPN-Verbindung her. Diese In-App-VPN-Verbindung wird in der Einstellungs-App auf dem iOS/iPadOS-Gerät nicht angezeigt.

Architektur: Tunnel für MAM iOS SDK

Die folgende Abbildung beschreibt den Flow einer verwalteten App, die erfolgreich in Tunnel für MAM iOS SDK integriert wurde:

Zeichnung des Microsoft Tunnel-Gateways für MAM unter der iOS/iPadOS-Architektur in Microsoft Intune.

  1. Beim ersten Start der App wird eine Verbindung über das Microsoft Tunnel für MAM SDK für iOS hergestellt.

  2. Der Tunnel ruft ein Geräteauthentifizierungstoken von Microsoft Entra ID ab.

    Wenn das Gerät bei einer anderen MAM-fähigen App angemeldet ist, z. B. Microsoft Outlook, Microsoft Edge oder Microsoft 365 Mobile-App, verfügt das Gerät möglicherweise bereits über ein Microsoft Entra-Authentifizierungstoken. Wenn bereits ein gültiges Authentifizierungstoken vorhanden ist, wird das vorhandene Token verwendet.

  3. Es findet eine TCP-Verbindung statt, bei der es sich um einen TLS-Handshake zwischen dem Token und dem Tunnelserver handelt.

  4. Wenn UDP auf dem Microsoft Tunnel-Gateway aktiviert ist, wird eine Datenkanalverbindung über DTLS hergestellt. Wenn UDP deaktiviert ist, richtet TCP den Datenkanal zum Tunnelgateway ein.

    Weitere Informationen finden Sie in den TCP- und UDP-Hinweisen in der Microsoft Tunnel-Übersicht – Architektur.

  5. Wenn die mobile App eine Verbindung mit einer lokalen Unternehmensressource herstellt:

    1. Eine Microsoft Tunnel für MAM-API fordert eine Verbindung mit der Unternehmensressource an.
    2. Eine verschlüsselte Webanforderung wird erstellt und an die Unternehmensressource gesendet.

Xcode-Aufgaben

In diesem Abschnitt werden die Xcode-Aufgaben aufgeführt und beschrieben, die Sie ausführen müssen, einschließlich:

  • Frameworks und Bibliotheken hinzufügen
  • Überprüfen und aktualisieren Sie die folgenden Features:
    • info.plistDatei
    • Buildeinstellungen
    • Schlüsselbundfreigabe
  • Verwenden Sie die Beispiele, um das Xcode AppDelegate-Projekt zu aktualisieren und eine Microsoft Tunnel-Delegatdatei hinzuzufügen.

Schritt 1 – Hinzufügen der Frameworks und Bibliotheken

Die folgenden Frameworks enthalten die erforderlichen APIs und Delegationsmethoden für die Kommunikation mit dem Intune Microsoft Tunnel-Gateway. Sie implementieren die Microsoft Tunnel-VPN-Features innerhalb der App.

Führen Sie die folgenden Schritte aus, um den Tunnel für MAM iOS SDK zu aktivieren:

  1. Laden Sie den Tunnel für das MAM iOS-SDK herunter, und extrahieren Sie ihn in einen Ordner auf einem macOS-Computer. Diese Aufgabe ist auch in den Voraussetzungen aufgeführt.

    Kopieren Sie die folgenden neun Frameworks in den Ordner "Xcode-App-Projektframeworks":

    • crypto.xcframework
    • MCPCommon.xcframework
    • MCPCore.xcframework
    • MCPPluginUnencryptedFile.xcframework
    • MicrosoftTunnelApi.xcframework
    • MSTAPNextPluginSecurityOpenssl.xcframework
    • MSTAPNextPluginSwiftSupport.xcframework
    • MSTAPNextPluginVpnMicrosoftTunnel.xcframework
    • ssl.xcframework
  2. Wählen Sie im Xcode-Projekt Ihr App-Projekt >Dateien hinzufügen aus. Im folgenden Beispiel werden Dateien einem App-Projekt mit dem Namen "Flash-Chat" hinzugefügt:

    Bildschirm, der zeigt, wie Sie dem App-Projekt in Xcode auf einem macOS-Gerät Dateien hinzufügen.

  3. Wählen Sie unter PROJEKTZIELE> die Option Buildphasen>Frameworks einbetten. Fügen Sie (+) alle neun Frameworks hinzu:

    Screenshot, der das Einbetten von Frameworks in Xcode auf einem macOS-Gerät zeigt.

    Das folgende Beispiel zeigt alle neun hinzugefügten Frameworks:

    Screenshot, der alle in Xcode eingebetteten Microsoft Tunnel-Frameworks auf einem macOS-Gerät zeigt.

  4. Wählen Sie unter PROJEKTZIELE> die Option Buildphasen>Binärdatei mit Bibliotheken verknüpfen aus. In der Liste sollte nur das MicrosoftTunnelApi.xcframework Framework hinzugefügt werden. Wenn andere Frameworks aufgeführt sind, entfernen Sie sie mit dem Minuszeichen (-):

    Screenshot, der zeigt, wie Frameworks in Binärdatei mit Bibliotheken verknüpfen in Xcode auf einem macOS-Gerät entfernt werden.

Schritt 2 – Aktualisieren der info.plist Datei

Bestätigen Sie im info.plist Projekt für die Xcode-App die folgenden Einstellungen:

  • Bündel-ID: Stellen Sie sicher, dass dieselbe Bündel-ID, die in der Microsoft Entra-App-Registrierung für die mobile iOS-App aufgeführt ist, dieselbe Bündel-ID in Ihrem App-Projekt ist:

    So überprüfen Sie die Paket-ID:

    1. Wechseln Sie zuPROJEKTZIELE>>Allgemein.

    2. Identitätsbündel-ID> auswählen:

      Screenshot der Auswahl von Projekt, Zielen, Allgemein und Identität zum Hinzufügen der Paket-ID in Xcode auf einem macOS-Gerät.

  • URL-Typen: Wählen Sie unter PROJEKTZIELE>die Option Info aus.

    Überprüfen Sie unter URL-Typen, ob die $(PRODUCT_BUNDLE_IDENTIFIER) Variable vorhanden ist. Wenn Sie das Intune App SDK für iOS in Ihr App-Projekt integriert haben (eine erforderliche Voraussetzung), sollte diese Variable erstellt worden sein.

    Wenn die Variable nicht vorhanden ist, müssen Sie sie hinzufügen:

    1. Erstellen Sie mit dem Intune App SDK für iOS (eine erforderliche Voraussetzung) eine info.plistArrayeigenschaft und nennen Sie sie Abfrage-URL-Schemata.

      Fügen Sie die im Schritt 5 von Erstellen des SDK in Ihre mobile App aufgeführten Zeichenfolgenelemente hinzu. In diesem Schritt werden die Intune MAM SDK-URL-Schemas erstellt.

      Das folgende Beispiel zeigt die info.plist mit abgefragten URL-Schemas:

      Screenshot der Auswahl von Projekt-, Ziel-, Info- und abgefragten URL-Schema-Werten in Xcode auf einem macOS-Gerät.

    2. Fügen Sie die $(PRODUCT_BUNDLE_IDENTIFIER) Variable hinzu.

      Das folgende Beispiel zeigt die $(PRODUCT_BUNDLE_IDENTIFIER) Variable in URL-Typen:

      Screenshot der Auswahl von Projekt-, Ziel-, Info- und URL-Typen in Xcode auf einem macOS-Gerät.

  • IntuneMAMSettings: Stellen Sie sicher, dass die folgenden MSAL-Einstellungen mit den entsprechenden Registrierungswerten für die Microsoft Entra-App konfiguriert wurden:

    1. Wechseln Sie zuPROJEKTZIELINFORMATIONEN>>.

    2. Wählen Sie IntuneMAMSettings aus. Bestätigen Sie Ihre Einstellungen:

      • ADALAuthority: Geben Sie die Microsoft Entra-Mandanten-ID ein, z. Bhttps://login.microsoftonline.com/USE_YOUR_ Directory (tenant) ID. . .
      • ADALClientId: Geben Sie die Anwendungsclient-ID ein.
      • ADALRedirectUri: EINGABETASTE msauth.$(PRODUCT_BUNDLE_IDENTIFIER):/auth.

    Wenn Sie das Intune App SDK für iOS in Ihr App-Projekt integriert haben (eine erforderliche Voraussetzung), hätten diese Einstellungen konfiguriert worden sein müssen.

    Wenn diese Einstellungen nicht konfiguriert sind, müssen Sie sie konfigurieren. Folgen Sie zum Erstellen der IntuneMAMSettings-Wörterbucheigenschaft info.plist und der zugehörigen Zeichenfolgen der Microsoft Authentication Library (MSAL) dem Intune App SDK für iOS (vorausgesetzte Voraussetzung) unter Konfigurieren der MSAL-Einstellungen für das Intune App SDK.

    Im folgenden Beispiel sind diese konfigurierten Werte dargestellt:

    Screenshot der Auswahl von Projekt, Zielen, Informationen, IntuneMAMSetting in Xcode auf einem macOS-Gerät.

Schritt 3 – Bitcode deaktivieren

  1. Wechseln Sie zuPROJEKTZIELE>>Buildeinstellungen.
  2. Buildoptionen> auswählenBitcode aktivieren.
  3. Wählen Sie "Nein" aus.

Screenshot der Auswahl von Projekt, Zielen, Build-Einstellungen, Build-Optionen und der Deaktivierung von Bitcode in Xcode auf einem macOS-Gerät.

Schritt 4: Schlüsselbundfreigabe hinzufügen

Die Schlüsselbundfreigabe kann im App-Projekt vorhanden sein. Wenn er nicht da ist, fügen Sie hinzu:

  1. Wechseln Sie zuPROJEKTZIELE>>Signierung & Funktionen.
  2. Wählen Sie Schlüsselbundfreigabe aus.
  3. Fügen Sie in der Liste Schlüsselbundgruppen den Eintrag (+) com.microsoft.workplacejoinhinzu.

Screenshot: Auswählen von Projekt, Zielen, Signieren & Funktionen, Schlüsselbundfreigabe und Hinzufügen einer Schlüsselbundgruppe in Xcode auf einem macOS-Gerät.

Schritt 5 – Integrieren des SDK in Ihre App

✔️ Verwenden Sie die TunnelMAMTestApp2.xcproject Beispiel-App.

Abhängig von der LOB-App und ihrer Implementierung/ihrem Verwendungszweck kann die Verwendung variieren MicrosoftTunnelApi . Es gibt einige Kernfunktionen, die Sie kennen müssen, wenn Sie das SDK in Ihre App integrieren:

  • Alle Interaktionen mit dem Microsoft Tunnel für MAM iOS SDK werden über ein MicrosoftTunnelAPI Singleton-Objekt verarbeitet.
  • Das MicrosoftTunnelAPI Objekt interagiert mit der App über einen Delegaten, der eine MicrosoftTunnelDelegate Schnittstelle implementiert. 

Um zu verstehen, wie man den Microsoft Tunnel-Delegaten schreibt und wie der Initialisiert wirdMicrosoftTunnelAPI, verwenden Sie die Beispiel-Apps für das iOS-SDK von Microsoft Tunnel für MAM (öffnet eine GitHub-Site).

In den Beispiel-Apps zeigt das Xcode-Projekt AppDelegate:

  • Behandeln von MSAL-URL-Rückrufen
  • Starten des für Tunnel erforderlichen Registrierungs- und Initialisierungsprozesses

Öffnen Sie zunächst die TunnelMAMTestApp2.xcproject Beispiel-App, und sehen Sie sich die AppDelegate-& MicrosoftTunnelDelegate im App-Projekt an.

Beispielapps

✔️ Laden Sie unter Microsoft Tunnel für MAM iOS SDK-Beispiel-Apps herunter (öffnet eine GitHub-Site).

Diese Beispiel-Apps können Ihnen den Einstieg erleichtern und verschiedene Szenarien abdecken.

MicrosoftTunnelAPI-Methoden

Dazu MicrosoftTunnelAPI gehören folgende Methoden:

  • Initialize– Prüft und richtet die VPN-Konfigurationen ein, richtet die Protokollierung ein und richtet die MicrosoftTunnelAPI Instance ein.

  • Connect– Ruft die Instance ab und ermöglicht das Abfangen von MicrosoftTunnelAPI Netzwerkdatenverkehr. Wenn die API nicht initialisiert ist, wird ein Fehler angezeigt.

  • Disconnect- Ruft die instance ab und deaktiviert das Abfangen von MicrosoftTunnelAPI Netzwerkdatenverkehr. Wenn die API nicht initialisiert ist, wird ein Fehler angezeigt.

  • onTokenRequired – Optional. Wenn Ihre App bereits in MSAL integriert ist IntuneMAM , müssen Sie diese onTokenRequired Methode implementieren. Diese Methode verwendet die IntuneMAMSettings und MSAL, um ein gültiges Authentifizierungstoken für die Verbindung mit dem Microsoft Tunnel-Gateway abzurufen.

  • Logging – Es gibt einige verschiedene Protokollierungsklassen, die durch bezeichnet werden k. Erstellt beispielsweise kLoggingClassConnect eine Protokollausgabe in der Xcode-Konsole. Diese Protokollierungskonfigurationsschlüssel können der Delegatenkonfiguration hinzugefügt werden. Es gibt einige Beispiele für diese Protokollierungsklassen in den Beispiel-Apps.

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

Warnung

Verwenden Sie keine Debug-Schlüssel in bereitgestellten Apps. Die Schlüssel können benutzerspezifische Informationen und Sicherheitsdaten protokollieren und anzeigen.

Anmelden bei iOS/iPadOS-Branchen-Apps

Durch die Integration des SDK wird die Protokollierung nicht automatisch aktiviert. Der Entwickler muss den entsprechenden Code hinzufügen, um das Protokollierungsdelegaten-Framework zu implementieren und die entsprechenden Protokollierungsaufrufe vorzunehmen. Die spezifische Implementierung variiert je nach SDK und den Anforderungen des Entwicklers.

Der Entwickler sollte:

  • Stellen Sie sicher, dass sie keine kundenidentifizierbaren oder personenbezogenen Daten des Endbenutzers in ihrer Protokollierung enthalten. Sie müssen die Datenschutzbestimmungen einhalten.

  • Wenden Sie sich an das Datenschutzteam der organization/organization und arbeiten Sie mit ihm zusammen. Das Datenschutzteam kann Anleitungen zu den entsprechenden Daten, die protokolliert werden können, und zu den geeigneten Methoden des Umgangs mit vertraulichen Daten geben.

Warnung

Spezifische Anleitungen zur Protokollierung und zum Datenschutz finden Sie in der Datenschutzdokumentation von Microsoft Tunnel für MAM iOS SDK (öffnet eine PDF-Datei in GitHub).

MAM-Tunnel Beispiel für eine Protokolldelegierungsmethode

Screenshot, der eine Beispielmethode für die Microsoft Tunnel-Protokolldelegierung in Xcode auf einem macOS-Gerät zeigt.

Screenshot, der eine Beispiel-Microsoft Tunnel-Protokollausgabe in Xcode auf einem macOS-Gerät zeigt.

Microsoft Tunnel für die mobile Anwendungsverwaltung Datenschutzinformationen

Ihre Privatsphäre ist uns wichtig. Lesen Sie die folgende datenschutzbezogene Onlinedokumentation:

Wenn das Microsoft Tunnel für MAM iOS SDK in mobile Apps integriert wird, werden die folgenden Daten erfasst, wenn ein Entwickler:

  • Aktiviert das Intune MAM-Telemetriemodul in der App

Die gesammelten Daten können die folgenden Bereiche umfassen:

  • Microsoft Tunnel für MAM SDK-Version
  • Von Microsoft generierte Benutzerinformationen
    • Geräte-ID
  • Hardware- und Softwareinformationen
    • Hersteller des Geräts
    • Gerätemodell
    • Betriebssystemversion des Geräts
  • Administrator- und Kontoinformationen
    • Intune-Mandanten-ID
    • Microsoft Entra-Mandanten-ID
  • Nutzungsmessung:
    • VPN-Initialisierung
    • VPN-Verbindungs- und Trennungsereignisse
  • Informationen zu Fehlern
    • Fehler im Zusammenhang mit VPN-Verbindungsfehlern

Es werden keine benutzerbezogenen Informationen gesammelt.

Wichtig

Als Entwickler ist es wichtig, bei der Integration des SDK keine benutzerbezogenen Daten einzuschließen, wenn Sie Code zum Adressieren und Erfassen von Nachrichten in Ihrer Anwendung verwenden.

Bekannte Probleme

Weitere bekannte Probleme finden Sie im Handbuch für Microsoft Tunnel für MAM für iOS/iPadOS – Intune-Administratorhandbuch.

Nächste Schritte

Microsoft Tunnel für MAM für iOS/iPadOS – Intune-Administratorhandbuch