Teilen über


Entwicklerhandbuch für Microsoft Tunnel für MAM iOS SDK

Hinweis

Diese Funktion ist verfügbar, wenn Sie Microsoft Intune Plan 2 oder Microsoft Intune Suite als Add-On-Lizenz hinzufügen. Weitere Informationen finden Sie unter Verwenden von Intune Suite-Add-On-Funktionen.

Das Entwicklerhandbuch für das Microsoft Tunnel für MAM iOS SDK 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 installation der Frameworks, Konfigurieren der info.plist Datei, Buildeinstellungen, Schlüsselfreigabe und Implementieren der Delegatmethoden des SDK.

Diese Komponenten sind für die Entwicklung einer iOS/iPadOS-App von entscheidender Bedeutung. Entwickler müssen wissen, wie sie in den SDK-Komponenten navigieren und konfigurieren. Wenn Sie noch nicht mit der Entwicklung von Xcode- und iOS-/iPadOS-Apps beginnen, ist dieser Leitfaden hilfreich. Es bietet eine Übersicht darüber, wo Sie die verschiedenen SDK-Komponenten finden und wie Sie diese Elemente in Ihren App-Projekten verwenden.

Diese Funktion gilt für:

  • iOS/iPadOS

Inhalt des SDK-Repositorys

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

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

Voraussetzungen

Für die Verwendung des Microsoft Tunnel for MAM iOS SDK sind die folgenden Voraussetzungen erforderlich:

  • Ein macOS-Computer, auf dem Xcode 14.0 oder höher installiert ist

  • Ihre Branchen-iOS-/iPadOS-App muss für iOS/iPadOS 14.0 oder höher vorgesehen 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 for MAM iOS SDK fortfahren:

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

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

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

    2. Microsoft Authentication Library (MSAL) (öffnet eine GitHub-Website): Installieren Sie mindestens version 1.2.3.

  • Installieren und einrichten Sie das Microsoft Tunnel for MAM iOS SDK (öffnet eine GitHub-Website). Dieses SDK ist der Schwerpunkt 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 ihrem Releasezyklus für die Softwareentwicklung hinzu. Sie möchten sicherstellen, dass Ihre Apps die Microsoft Tunnel Gateway-Updates und Funktionserweiterungen unterstützen.

Funktionsweise des Microsoft Tunnel für MAM iOS SDK

Mit dem Tunnel for MAM iOS SDK können iOS-/iPadOS-Apps eine "In-App"-VPN-Verbindung herstellen. Die VPN-Verbindung ist nur innerhalb der App vorhanden.

Zusammenfassend sind diese In-App-VPN-Verbindungen:

  • Diskrete VPN-Verbindungen, keine VPN-Verbindungen auf Geräteebene
  • Nur auf die Netzwerkebene der Anwendung ausgerichtet

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

Architektur: Tunnel für MAM iOS SDK

Die folgende Abbildung beschreibt den Flow aus einer verwalteten App, die erfolgreich in das Tunnel for MAM iOS SDK integriert wurde:

Zeichnung der Architektur von Microsoft Tunnel Gateway für MAM unter iOS/iPadOS in Microsoft Intune.

  1. Beim ersten Start der App wird eine Verbindung mit dem Microsoft Tunnel for 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 wie Outlook, Edge oder microsoft 365 mobile App angemeldet ist, 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 erfolgt eine TCP-Verbindung, bei der es sich um einen TLS-Handshake zwischen dem Token und dem Tunnelserver handelt.

  4. Wenn UDP für das Microsoft Tunnel-Gateway aktiviert ist, wird eine Datenkanalverbindung mit DTLS hergestellt. Wenn UDP deaktiviert ist, richtet TCP den Datenkanal zum Tunnelgateway ein.

    Weitere Informationen finden Sie in den Hinweisen zu TCP und UDP 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 an, eine Verbindung mit der Unternehmensressource herzustellen.
    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:

  • Hinzufügen der Frameworks und Bibliotheken
  • Ü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 Delegatmethoden 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 das Tunnel for MAM iOS SDK zu aktivieren:

  1. Laden Sie das Tunnel for MAM iOS SDK herunter, und extrahieren Sie es in einen Ordner auf einem macOS-Computer. Diese Aufgabe ist auch unter 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 zu einem App-Projekt namens "Flash Chat" hinzugefügt:

    Bildschirm zum Hinzufügen von Dateien zum App-Projekt in Xcode auf einem macOS-Gerät.

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

    Screenshot: Einbetten von Frameworks in Xcode auf einem macOS-Gerät

    Das folgende Beispiel zeigt alle neun hinzugefügten Frameworks:

    Screenshot: Alle Microsoft Tunnel-Frameworks, die in Xcode auf einem macOS-Gerät eingebettet sind

  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 diese mithilfe des Minuszeichens (-):

    Screenshot: Entfernen von Frameworks unter Verknüpfen von Binärdateien mit Bibliotheken in Xcode auf einem macOS-Gerät

Schritt 2: Aktualisieren der info.plist Datei

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

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

    So überprüfen Sie die Bundle-ID:

    1. Wechseln Sie zuPROJEKTZIELE>>Allgemein.

    2. Wählen Sie IdentityBundle Identifier (Identitätspaketbezeichner>) aus:

      Screenshot: Auswählen von

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

    Vergewissern Sie sich unter URL-Typen, dass 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 mithilfe des Intune App SDK für iOS (eine erforderliche Voraussetzung) eine info.plistArray-Eigenschaft , und nennen Sie sie Abgefragte URL-Schemas.

      Fügen Sie die Zeichenfolgenelemente hinzu, die im Intune App SDK für iOS-Entwicklerhandbuch – Schritt 5 aufgeführt sind. In diesem Schritt werden die URL-Schemas des Intune MAM SDK erstellt.

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

      Screenshot: Auswählen von Projekt, Zielen, Informationen und abgefragten URL-Schemawerten in Xcode auf einem macOS-Gerät

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

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

      Screenshot: Auswählen von Projekt, Zielen, Informationen und URL-Typen in Xcode auf einem macOS-Gerät

  • IntuneMAMSettings: Vergewissern Sie sich, dass die folgenden MSAL-Einstellungen mit den entsprechenden Microsoft Entra-App-Registrierungswerten konfiguriert sind:

    1. Wechseln Sie zuPROJEKTZIELE>>Info.

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

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

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

    Wenn diese Einstellungen nicht konfiguriert sind, müssen Sie sie konfigurieren. Um die Eigenschaft IntuneMAMSettings info.plist Dictionary und die zugehörigen Zeichenfolgen der Microsoft-Authentifizierungsbibliothek zu erstellen, folgen Sie dem Entwicklerhandbuch für Das Intune App SDK für iOS (eine erforderliche Voraussetzung) unter Konfigurieren von MSAL-Einstellungen für das Intune App SDK-Leitfaden .

    Im folgenden Beispiel werden diese Werte konfiguriert:

    Screenshot: Auswählen von Projekt, Zielen, Informationen, IntuneMAMSetting in Xcode auf einem macOS-Gerät

Schritt 3: Deaktivieren von Bitcode

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

Screenshot: Auswählen von Projekt, Zielen, Buildeinstellungen, Buildoptionen und Deaktivieren von Bitcode in Xcode auf einem macOS-Gerät

Schritt 4: Hinzufügen der Schlüsselbundfreigabe

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

  1. Wechseln Sie zu PROJECT TARGETSSigning & Capabilities (Funktionen für die Signierung vonPROJEKTZIELen>>).
  2. Wählen Sie Schlüsselbundfreigabe aus.
  3. Fügen Sie in der Liste Schlüsselbundgruppen (+) com.microsoft.workplacejoinhinzu.

Screenshot: Auswählen von Projekt, Zielen, Signierung & Funktionen, Schlüsselbundfreigabe und Hinzufügen einer Keychaingruppe 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 BRANCHEN-App und ihrer Implementierung/ihrem Verwendungszweck kann die Verwendung von MicrosoftTunnelApi variieren. Es gibt einige Kernfunktionen, die Sie bei der Integration des SDK in Ihre App beachten sollten:

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

Um zu verstehen, wie Sie den Microsoft Tunnel-Delegaten schreiben und initialisieren, MicrosoftTunnelAPIverwenden Sie die Microsoft Tunnel für MAM iOS SDK-Beispiel-Apps (öffnet eine GitHub-Website).

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

  • Behandeln von MSAL-URL-Rückrufen
  • Starten des Registrierungs- und Initialisierungsprozesses, der für Tunnel erforderlich ist

Ö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-Website).

Diese Beispiel-Apps können Ihnen beim Einstieg helfen und verschiedene Szenarien abdecken.

MicrosoftTunnelAPI-Methoden

Enthält MicrosoftTunnelAPI die folgenden Methoden:

  • Initialize – Überprüft und legt die VPN-Konfigurationen fest, richtet die Protokollierung ein und richtet die MicrosoftTunnelAPI Instanz ein.

  • Connect – Ruft die -Instanz ab MicrosoftTunnelAPI und aktiviert das Abfangen von Netzwerkdatenverkehr. Wenn die API nicht initialisiert ist, wird ein Fehler angezeigt.

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

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

  • Logging – Es gibt einige verschiedene Protokollierungsklassen, die durch gekennzeichnet sind k. Erstellt beispielsweise kLoggingClassConnect die Protokollierungsausgabe in der Xcode-Konsole. Diese Protokollierungskonfigurationsschlüssel können der Delegatkonfiguration 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 Debugschlüssel in bereitgestellten Apps. Die Schlüssel können benutzeridentifizierbare Informationen und Sicherheitsdaten protokollieren und anzeigen.

Protokollierung in branchenspezifischen iOS-/iPadOS-Apps

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

Der Entwickler sollte folgendes ausführen:

  • Stellen Sie sicher, dass sie keine kundenidentifizierbaren oder personenbezogene Endbenutzerdaten in ihre Protokollierung einschließen. Sie müssen die Datenschutzbestimmungen einhalten.

  • Wenden Sie sich an das Datenschutzteam des Unternehmens bzw. der Organisation, und arbeiten Sie mit ihr zusammen. Das Datenschutzteam kann Anleitungen zu den geeigneten Daten, die protokolliert werden können, und zu den geeigneten Methoden zum Umgang mit vertraulichen Daten bereitstellen.

Warnung

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

Beispiel für MAM-Tunnel Protokolldelegatenmethode

Screenshot: Beispiel für eine Microsoft Tunnel-Protokolldelegatmethode in Xcode auf einem macOS-Gerät

Screenshot: Microsoft Tunnel-Beispielprotokollausgabe in Xcode auf einem macOS-Gerät

Microsoft Tunnel für mobile Anwendungsverwaltung – Datenschutzinformationen

Ihr Datenschutz ist uns wichtig. Lesen Sie die folgende Onlinedokumentation zum Datenschutz:

Bei der Integration des Microsoft Tunnel for MAM iOS SDK in mobile Apps werden die folgenden Daten gesammelt, wenn ein Entwickler:

  • Aktiviert das Intune MAM-Telemetriemodul in der App

Die gesammelten Daten können folgende 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 benutzeridentifizierbaren Informationen gesammelt.

Wichtig

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

Bekannte Probleme

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

Nächste Schritte

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