Phase 3: Intune SDK-Integration in Ihre iOS-App

Hinweis

Dieser Leitfaden ist in mehrere unterschiedliche Phasen unterteilt. Lesen Sie zunächst Planen der Integration.

Stage Goals

  • Laden Sie das Intune App SDK herunter.
  • Erfahren Sie, welche Dateien im Intune App SDK enthalten sind.
  • Verweisen Sie in Ihrer Anwendung auf das Intune App SDK.
  • Vergewissern Sie sich, dass das Intune App SDK ordnungsgemäß in Ihrem Build enthalten ist.
  • Registrieren Sie nach der Authentifizierung bei MSAL neue Konten für die MAM-Verwaltung.
  • Heben Sie die Registrierung von Konten beim Abmelden auf, um Unternehmensdaten zu entfernen.
  • (Empfohlen) Integrieren Sie die MAM-Protokollierung in Ihre App.

Voraussetzungen

  • Sie benötigen einen macOS-Computer, auf dem Xcode 14.0 oder höher installiert ist.

  • Ihre App muss für iOS 14.0 oder höher vorgesehen sein.

  • Lesen Sie die Lizenzbedingungen für Intune App SDK für iOS. Drucken und aufbewahren Sie eine Kopie der Lizenzbedingungen für Ihre Aufzeichnungen. Durch das Herunterladen und Verwenden des Intune App SDK für iOS stimmen Sie diesen Lizenzbedingungen zu. Wenn Sie sie nicht akzeptieren, verwenden Sie die Software nicht.

  • Laden Sie die Dateien für das Intune App SDK für iOS auf GitHub herunter.

Inhalt des SDK-Repositorys

  • IntuneMAMSwift.xcframework: Das Intune App SDK-Framework. Es wird empfohlen, dieses Framework mit Ihren Apps/Erweiterungen zu verknüpfen, um Intune Clientanwendungsverwaltung zu ermöglichen. Einige Entwickler bevorzugen jedoch möglicherweise die Leistungsvorteile der statischen Bibliothek. Siehe hierzu:

  • libIntuneMAMSwift.xcframework: Die statische Bibliothek Intune App SDK. Entwickler können die statische Bibliothek anstelle des Frameworks verknüpfen. Da statische Bibliotheken zur Buildzeit direkt in die App-/Erweiterungsbinärdatei eingebettet werden, hat die Verwendung der statischen Bibliothek einige Vorteile bei der Startzeit. Die Integration in Ihre App ist jedoch ein komplizierterer Prozess. Wenn Ihre App Erweiterungen enthält, führt das Verknüpfen der statischen Bibliothek mit der App und den Erweiterungen zu einer größeren App-Bündelgröße, da die statische Bibliothek in jede App-/Erweiterungsbinärdatei eingebettet wird. Bei Verwendung des Frameworks können Apps und Erweiterungen dieselbe Intune SDK-Binärdatei verwenden, was zu einer kleineren App-Größe führt.

  • IntuneMAMSwiftStub.xcframework: Das swift Stub-Framework Intune App SDK. Dies ist eine erforderliche Abhängigkeit von IntuneMAMSwift.xcframework und libIntuneMAMSwift.xcframework, die Apps/Erweiterungen verknüpfen müssen.

  • IntuneMAMResources.bundle: Ein Ressourcenpaket, das Ressourcen enthält, auf denen das SDK basiert. Das Ressourcenpaket ist nur für Apps erforderlich, die die statische Bibliothek (libIntuneMAMSwift.xcframework) integrieren.

  • IntuneMAMConfigurator: Ein Tool, das verwendet wird, um die Datei "Info.plist" der App oder Erweiterung mit den mindestens erforderlichen Änderungen für Intune-Verwaltung zu konfigurieren. Abhängig von der Funktionalität Ihrer App oder Erweiterung müssen Sie möglicherweise zusätzliche manuelle Änderungen an der Datei "Info.plist" vornehmen.

Funktionsweise des Intune App SDK

Das Ziel des Intune App SDK für iOS besteht darin, iOS-Anwendungen Verwaltungsfunktionen mit minimalen Codeänderungen hinzuzufügen. Je weniger der Code geändert wird, desto kürzer ist die Markteinführungszeit, ohne die Konsistenz und Stabilität Ihrer mobilen Anwendung zu beeinträchtigen.

Prozessablauf

Das folgende Diagramm zeigt den Prozessablauf Intune App SDK für iOS:

Allgemeines Architekturdiagramm für Microsoft Intune.

Erstellen des SDK in Ihrer mobilen App

Wichtig

Intune veröffentlicht regelmäßig Updates für das Intune App SDK. Überprüfen Sie regelmäßig das Intune App SDK für iOS auf Updates, und integrieren Sie sie in Ihren Releasezyklus für die Softwareentwicklung, um sicherzustellen, dass Ihre Apps die neuesten Einstellungen der App-Schutzrichtlinie unterstützen.

Führen Sie die folgenden Schritte aus, um das Intune App SDK zu aktivieren:

  1. Option 1 – Framework (empfohlen):Verknüpfen Sie IntuneMAMSwift.xcframework und IntuneMAMSwiftStub.xcframework mit Ihrem Ziel: Ziehen Sie IntuneMAMSwift.xcframework und IntuneMAMSwiftStub.xcframework in die Liste Frameworks, Bibliotheken und eingebettete Inhalte des Projektziels .

    Intune App SDK iOS Framework: Beispiel für Xcode-Frameworks, Bibliotheken und eingebettete Inhalte

    Option 2 – Statische Bibliothek: Verknüpfen Sie libIntuneMAMSwift.xcframework und IntuneMAMSwiftStub.xcframework mit dem Ziel: Ziehen Sie libIntuneMAMSwift.xcframework und IntuneMAMSwiftStub.xcframework in die Liste Frameworks, Bibliotheken und eingebettete Inhalte des Projektziels .

    Screenshot: Beispiel für Xcode-Frameworks, Bibliotheken und eingebettete Inhalte des Intune App SDK für iOS: Xcode-Frameworks, Bibliotheken und eingebettete Inhalte

    Hinweis

    Wenn Sie derzeit die statische SDK-Bibliothek unter dem iOS 15-Simulator ausführen, kann dies zu einem Absturz führen, da AppleArchive nicht vorhanden ist. Dies kann durch explizit schwache Verknüpfungen libSwiftAppleArchive im Standard App-Ziel behoben werden, indem sie als "optional" markiert wird.

    Screenshot des Beispiels

    Fügen Sie dem Projekt das IntuneMAMResources.bundle Ressourcenpaket hinzu, indem Sie das Ressourcenpaket unter Bündelressourcen innerhalb von Buildphasen kopieren ziehen.

    Intune App SDK iOS: Kopieren von Paketressourcen

  2. Fügen Sie dem Projekt die folgenden iOS-Frameworks hinzu:

    • MessageUI.framework
    • Security.framework
    • CoreServices.framework
    • SystemConfiguration.framework
    • libsqlite3.tbd
    • libc++.tbd
    • ImageIO.framework
    • LocalAuthentication.framework
    • AudioToolbox.framework
    • QuartzCore.framework
    • WebKit.framework
    • MetricKit.framework
  3. Aktivieren Sie Keychain Freigabe (sofern noch nicht aktiviert), indem Sie in jedem Projektziel Funktionen auswählen und den Schlüsselbundfreigabeschalter aktivieren. Die Schlüsselbundfreigabe ist erforderlich, damit Sie mit dem nächsten Schritt fortfahren können.

    Hinweis

    Ihr Bereitstellungsprofil muss neue Keychain Freigabewerte unterstützen. Die Keychain Zugriffsgruppen sollte ein Wildcardzeichen unterstützen. Sie können dies überprüfen, indem Sie die MOBILEPROVISION-Datei in einem Text-Editor öffnen, nach Keychain-access-groups suchen und sicherstellen, dass Sie über ein Wildcardzeichen verfügen. Zum Beispiel:

    <key>keychain-access-groups</key>
    <array>
    <string>YOURBUNDLESEEDID.*</string>
    </array>
    
  4. Nachdem Sie Keychain Freigabe aktiviert haben, führen Sie die Schritte zum Erstellen einer separaten Zugriffsgruppe aus, in der das Intune App SDK seine Daten speichert. Sie können eine Keychain Zugriffsgruppe erstellen, indem Sie die Benutzeroberfläche oder die Berechtigungsdatei verwenden. Wenn Sie die Benutzeroberfläche verwenden, um die Keychain-Zugriffsgruppe zu erstellen, stellen Sie sicher, dass Sie die folgenden Schritte ausführen:

    1. Wenn für Ihre mobile App keine Keychain Zugriffsgruppen definiert sind, fügen Sie die Bündel-ID der App als erste Gruppe hinzu.

    2. Fügen Sie die freigegebene Keychain Gruppe com.microsoft.intune.mam Ihren vorhandenen Zugriffsgruppen hinzu. Das Intune App SDK verwendet diese Zugriffsgruppe zum Speichern von Daten.

    3. Fügen Sie com.microsoft.adalcache Ihren vorhandenen Zugriffsgruppen hinzu.

      Intune App SDK iOS: Keychain-Freigabe

    4. Wenn Sie die Berechtigungsdatei direkt bearbeiten, anstatt die oben gezeigte Xcode-Benutzeroberfläche zum Erstellen der Keychain-Zugriffsgruppen zu verwenden, stellen Sie den Keychain-Zugriffsgruppen $(AppIdentifierPrefix) voran (Xcode behandelt dies automatisch). Beispiel:

      • $(AppIdentifierPrefix)com.microsoft.intune.mam
      • $(AppIdentifierPrefix)com.microsoft.adalcache

      Hinweis

      Eine Berechtigungsdatei ist eine XML-Datei, die für Ihre mobile Anwendung eindeutig ist. Es wird verwendet, um spezielle Berechtigungen und Funktionen in Ihrer iOS-App anzugeben. Wenn Ihre App zuvor nicht über eine Berechtigungsdatei verfügte, sollte die Aktivierung Keychain Freigabe (Schritt 3) dazu geführt haben, dass Xcode eine datei für Ihre App generiert hat. Stellen Sie sicher, dass die Bündel-ID der App der erste Eintrag in der Liste ist.

  5. Schließen Sie jedes Protokoll, an das Ihre App übergibt UIApplication canOpenURL , in das LSApplicationQueriesSchemes Array der Datei "Info.plist" Ihrer App ein. Für jedes Protokoll, das in diesem Array aufgeführt ist, muss dem Array auch eine Kopie des Protokolls hinzugefügt werden, das mit -intunemam angefügt wird. Darüber hinaus http-intunemamsollten , https-intunemam, microsoft-edge-http-intunemam, microsoft-edge-https-intunemam, , smart-ns, lacoonsecurityzips, wanderasmseclookoutwork-asebetteractiveshieldmvisionmobileskycurescmx und intunemam-mtd dem Array hinzugefügt werden. Wenn Ihre App das mailto:-Protokoll verwendet, ms-outlook-intunemam sollte auch dem Array hinzugefügt werden. Achten Sie darauf, ihre Änderungen zu speichern, bevor Sie mit dem nächsten Schritt fortfahren.

    Wenn der App in der LSApplicationQueriesSchemes-Liste nicht mehr speicherplatz vorhanden ist, kann sie die Schemas "-intunemam" für Apps entfernen, von denen bekannt ist, dass sie auch das Intune MAM SDK implementieren. Wenn die App "scheme-intunemam" aus der LSApplicationQueriesSchemes-Liste entfernt, canOpenURL() gibt möglicherweise falsche Antworten für diese Schemas zurück. Um dies zu beheben, sollte die App stattdessen für dieses Schema aufrufen [IntuneMAMPolicy isURLAllowed:url isKnownManagedAppScheme:YES] . Dieser Aufruf gibt zurück NO , wenn die Richtlinie das Öffnen der URL blockiert. Wenn true zurückgegeben wird, kann die App mit einer leeren Identität aufrufen canOpenURL() , um festzustellen, ob die URL geöffnet werden kann. Zum Beispiel:

    BOOL __block canOpen = NO;
    if([policy isURLAllowed:urlForKnownManagedApp isKnownManagedAppScheme:YES])
    {
        [[IntuneMAMPolicyManager instance] setCurrentThreadIdentity:"" forScope:^{
        canOpen = [[UIApplication sharedApplication] canOpenURL:urlForKnownManagedApp];
        }];
    }
    
  6. Wenn Ihre App FaceID noch nicht verwendet, stellen Sie sicher, dass der Schlüssel NSFaceIDUsageDescription Info.plist mit einer Standardmeldung konfiguriert ist. Dies ist erforderlich, damit iOS den Benutzer darüber informieren kann, wie die App FaceID verwenden möchte. Eine Intune App-Schutzrichtlinieneinstellung ermöglicht die Verwendung von FaceID als Methode für den App-Zugriff, wenn sie vom IT-Administrator konfiguriert wurde.

  7. Verwenden Sie das IntuneMAMConfigurator-Tool, das im SDK-Repository enthalten ist, um die Konfiguration von Info.plist Ihrer App abzuschließen. Das Tool verfügt über drei Parameter:

    Eigenschaft Hinweise zur Verwendung
    -Ich <Path to the input plist>
    -E <Path to the entitlements file>
    -O (Optional) <Path to the output plist>

    Wenn der Parameter "-o" nicht angegeben wird, wird die Eingabedatei an Ort und Stelle geändert. Das Tool ist idempotent und sollte immer dann erneut ausgeführt werden, wenn Änderungen an der Info.plist oder den Berechtigungen der App vorgenommen wurden. Sie sollten beim Aktualisieren des Intune SDK auch die neueste Version des Tools herunterladen und ausführen, falls sich die Konfigurationsanforderungen für Info.plist in der neuesten Version geändert haben.

Xcode-Buildeinstellungen

Für die App sollten sowohl "Swift-Symbole entfernen"(STRIP_SWIFT_SYMBOLS) als auch "Bitcode aktivieren" (ENABLE_BITCODE) auf NO festgelegt sein.

Integrieren einer Dateianbietererweiterung

Dateianbietererweiterungen weisen bestimmte Speicheranforderungen auf, die die Integration des vollständigen SDK erschweren können. Um dies zu vereinfachen, gibt es eine statische Bibliothek libIntuneMAMSwiftFileProvider.xcframework , bei der es sich um eine abgespeckte Version des SDK speziell für Dateianbietererweiterungen handelt. Beachten Sie, dass dies für den Nicht-UI-Teil der FileProvider-Erweiterung gilt. Sie müssen das vollständige SDK in die Dateianbieter-UI-Erweiterung integrieren.

Um eine dieser Bibliotheken in Ihre Dateianbietererweiterung zu integrieren, führen Sie die Schritte zum Integrieren des SDK als statische Bibliothek aus, wie oben gezeigt. Stellen Sie sicher, dass Sie die Einstellung einschließen ContainingAppBundleId .

Wenn es sich um eine App mit mehreren Identitäten handelt, sollte die aktuelle Benutzeridentität im Dateianbieter-Enumerator in - enumeratorForContainerItemIdentifier:error: der API mithilfe setIdentity:onFileProviderEnumerator: der IntuneMAMFileProtectionManager-Methode von festgelegt werden.

- startProvidingItemAtURL:completionHandler: Überprüfen Sie in, ob Sie Dateien mit [[IntuneMAMPolicy instance]shouldFileProviderEncryptFiles]]verschlüsseln sollten. Verwenden Sie encryptFile:forIdentity die API in IntuneMAMFileProtectionManager für die tatsächliche Dateiverschlüsselung. Geben Sie außerdem eine Kopie der Datei frei, wenn eine Verschlüsselung erforderlich ist, da Sie keine verschlüsselte Kopie der Datei in Ihrem Cloudspeicher speichern möchten.

- importDocumentAtURL:toParentItemIdentifier:completionHandler: Überprüfen Sie in, ob die Datei mithilfe der isFileEncrytped: API in IntuneMAMFileProtectionManagerverschlüsselt ist. Wenn dies der Fall ist, entschlüsselt es mithilfe decryptFile:toCopyPath: der API von IntuneMAMFileProtectionManager.

Konfigurieren von Einstellungen für das Intune App SDK

Sie können das IntuneMAMSettings-Wörterbuch in der Datei Info.plist der Anwendung verwenden, um das Intune App SDK einzurichten und zu konfigurieren. Wenn das IntuneMAMSettings-Wörterbuch in Ihrer Datei "Info.plist" nicht angezeigt wird, sollten Sie es erstellen.

Im IntuneMAMSettings-Wörterbuch können Sie die folgenden unterstützten Einstellungen definieren, um das Intune App SDK zu konfigurieren.

Einige dieser Einstellungen wurden möglicherweise in den vorherigen Abschnitten behandelt, und einige gelten nicht für alle Apps.

Einstellung Typ Definition Pflichtfeld?
ADALClientId Zeichenfolge Der Microsoft Entra Clientbezeichner der App. Erforderlich für alle Apps.
ADALAuthority Zeichenfolge Die verwendete Microsoft Entra Autorität der App. Sie sollten Ihre eigene Umgebung verwenden, in der Microsoft Entra Konten konfiguriert wurden. Weitere Informationen finden Sie unter Optionen für die Anwendungskonfiguration. Erforderlich, wenn es sich bei der App um eine benutzerdefinierte Branchenanwendung handelt, die für die Verwendung innerhalb eines einzelnen organization/Microsoft Entra Mandanten erstellt wurde. Wenn dieser Wert nicht vorhanden ist, wird die allgemeine Microsoft Entra-Autorität verwendet (die nur für mehrinstanzenfähige Anwendungen unterstützt wird).
ADALRedirectUri Zeichenfolge Der Microsoft Entra Umleitungs-URI der App. ADALRedirectUri oder ADALRedirectScheme ist für alle Apps erforderlich.
ADALRedirectScheme Zeichenfolge Das Microsoft Entra ID Umleitungsschema der App. Dies kann anstelle von ADALRedirectUri verwendet werden, wenn der Umleitungs-URI der Anwendung das Format scheme://bundle_idaufweist. ADALRedirectUri oder ADALRedirectScheme ist für alle Apps erforderlich.
ADALLogOverrideDisabled Boolesch Gibt an, ob das SDK alle MSAL-Protokolle (einschließlich MSAL-Aufrufe von der App, falls vorhanden) an eine eigene Protokolldatei weitergibt. Der Standardwert ist NO. Legen Sie diesen Wert auf JA fest, wenn die App einen eigenen MSAL-Protokollrückruf festsetzt. Optional.
ADALCacheKeychainGroupOverride Zeichenfolge Gibt die Keychain Gruppe an, die anstelle von "com.microsoft.adalcache" für den MSAL-Cache verwendet werden soll. Beachten Sie, dass dies nicht über das Präfix app-id verfügt. Dieser wird der bereitgestellten Zeichenfolge zur Laufzeit vorangestellt. Optional.
AppGroupIdentifiers Array aus Zeichenfolgen Array von App-Gruppen aus dem Abschnitt mit den Berechtigungen der App com.apple.security.application-groups. Erforderlich, wenn die App Anwendungsgruppen verwendet.
ContainingAppBundleId Zeichenfolge Gibt die Bündel-ID der enthaltenden Anwendung der Erweiterung an. Erforderlich für iOS-Erweiterungen.
AutoEnrollOnLaunch Boolesch Gibt an, ob die App versuchen soll, sich beim Start automatisch zu registrieren, wenn eine vorhandene verwaltete Identität erkannt wird und dies noch nicht geschehen ist. Der Standardwert ist NO.

Hinweise: Wenn keine verwaltete Identität gefunden wird oder kein gültiges Token für die Identität im MSAL-Cache verfügbar ist, schlägt der Registrierungsversuch ohne Aufforderung zur Eingabe von Anmeldeinformationen im Hintergrund fehl, es sei denn, die App hat MAMPolicyRequired ebenfalls auf YES festgelegt.
Optional. Der Standardwert ist nein.
MAMPolicyRequired Boolesch Gibt an, ob das Starten der App blockiert wird, wenn die App nicht über eine Intune App-Schutzrichtlinie verfügt. Der Standardwert ist NO.

Hinweise: Apps können nicht an die App Store übermittelt werden, wobei MAMPolicyRequired auf YES festgelegt ist. Wenn MamPolicyRequired auf YES festgelegt wird, sollte AutoEnrollOnLaunch ebenfalls auf YES festgelegt werden.
Optional. Der Standardwert ist nein.
MAMPolicyWarnAbsent Boolesch Gibt an, ob die App den Benutzer während des Starts warnt, wenn die App keine Intune App-Schutzrichtlinie enthält.

Hinweis: Benutzer dürfen die App weiterhin ohne Richtlinie verwenden, nachdem die Warnung geschlossen wurde.
Optional. Der Standardwert ist nein.
MultiIdentity Boolesch Gibt an, ob die App mehrere Identitäten unterstützt. Optional. Der Standardwert ist nein.
SafariViewControllerBlockedOverride Boolesch Deaktiviert Intune SafariViewController-Hooks zum Aktivieren der MSAL-Authentifizierung über SFSafariViewController, SFAuthSession oder ASWebAuthSession.

Hinweis: Die Aktivitätsschaltflächeneigenschaft SFSafariViewControllerConfiguration wird vom verwalteten Safari View Controller von Intune nicht unterstützt. Eine konfigurierte Aktivitätsschaltfläche wird im SafariViewController nur angezeigt, wenn die Ansicht nicht verwaltet ist und SafariViewControllerBlockedOverride auf Ja festgelegt ist.
Optional. Der Standardwert ist nein. WARNUNG: Kann bei unsachgemäßer Verwendung zu Datenlecks führen. Aktivieren Sie diese Option nur, wenn dies unbedingt erforderlich ist. Weitere Informationen finden Sie unter Besondere Überlegungen bei der Verwendung von MSAL für die app-initiierte Authentifizierung.
SplashIconFile
SplashIconFile~ipad
Zeichenfolge Gibt die Intune Begrüßungssymboldatei (Start) an. Optional.
SplashDuration Zahl Minimale Zeitspanne in Sekunden, in der der Intune Startbildschirm beim Anwendungsstart angezeigt wird. Der Standardwert ist 1.5. Optional.
BackgroundColor Zeichenfolge Gibt die Hintergrundfarbe für die Ui-Komponenten des Intune SDK an. Akzeptiert eine hexadezimale RGB-Zeichenfolge in Form von #XXXXXX, wobei X zwischen 0 und 9 oder A-F liegen kann. Das Pfundzeichen wird möglicherweise weggelassen. Optional. Standardmäßig wird die Hintergrundfarbe des Systems verwendet, die je nach iOS-Version und der Einstellung für den dunklen iOS-Modus variieren kann.
ForegroundColor Zeichenfolge Gibt die Vordergrundfarbe für die Ui-Komponenten des Intune SDK an, z. B. die Textfarbe. Akzeptiert eine hexadezimale RGB-Zeichenfolge in Form von #XXXXXX, wobei X zwischen 0 und 9 oder A-F liegen kann. Das Pfundzeichen wird möglicherweise weggelassen. Optional. Standardmäßig wird die Systembezeichnungsfarbe verwendet, die je nach iOS-Version und der Einstellung für den dunklen iOS-Modus variieren kann.
AccentColor Zeichenfolge Gibt die Akzentfarbe für die Ui-Komponenten des Intune SDK an, z. B. die Textfarbe der Schaltfläche und die Hervorhebungsfarbe des PIN-Felds. Akzeptiert eine hexadezimale RGB-Zeichenfolge in Form von #XXXXXX, wobei X zwischen 0 und 9 oder A-F liegen kann. Das Pfundzeichen wird möglicherweise weggelassen. Optional. Der Standardwert ist Systemblau.
SecondaryBackgroundColor Zeichenfolge Gibt die sekundäre Hintergrundfarbe für die MTD-Bildschirme an. Akzeptiert eine hexadezimale RGB-Zeichenfolge in Form von #XXXXXX, wobei X zwischen 0 und 9 oder A-F liegen kann. Das Pfundzeichen wird möglicherweise weggelassen. Optional. Der Standardwert ist "Weiß".
SecondaryForegroundColor Zeichenfolge Gibt die sekundäre Vordergrundfarbe für die MTD-Bildschirme an, z. B. die Fußnotenfarbe. Akzeptiert eine hexadezimale RGB-Zeichenfolge in Form von #XXXXXX, wobei X zwischen 0 und 9 oder A-F liegen kann. Das Pfundzeichen wird möglicherweise weggelassen. Optional. Der Standardwert ist grau.
SupportsDarkMode Boolesch Gibt an, ob das Benutzeroberflächenfarbschema des Intune SDK die Einstellung für den dunklen Systemmodus beachten soll, wenn kein expliziter Wert für BackgroundColor/ForegroundColor/AccentColor festgelegt wurde. Optional. Der Standardwert ist ja.
MAMTelemetryDisabled Boolesch Gibt an, ob das SDK keine Telemetriedaten an sein Back-End sendet. Optional. Der Standardwert ist nein.
MAMTelemetryUsePPE Boolesch Gibt an, ob das MAM SDK Daten an das PPE-Telemetrie-Back-End sendet. Verwenden Sie dies, wenn Sie Ihre Apps mit Intune Richtlinie testen, damit testtelemetriedaten nicht mit Kundendaten verwechselt werden. Optional. Der Standardwert ist nein.
MaxFileProtectionLevel Zeichenfolge Ermöglicht der App die Angabe des Maximalwerts NSFileProtectionType , den sie unterstützen kann. Dieser Wert überschreibt die vom Dienst gesendete Richtlinie, wenn die Ebene höher ist als die von der Anwendung unterstützte. Mögliche Werte: NSFileProtectionComplete, NSFileProtectionCompleteUnlessOpen, NSFileProtectionCompleteUntilFirstUserAuthentication, NSFileProtectionNone. Hinweis: Bei der höchsten Dateischutzebene (NSFileProtectionComplete) kann nur auf geschützte Dateien zugegriffen werden, während das Gerät entsperrt ist. Zehn Sekunden nach dem Sperren des Geräts verliert die App den Zugriff auf geschützte Dateien. In einigen Fällen kann dies zu einem Verlust des Zugriffs auf interne Komponenten (z. B. MySQL-Datenbanken) führen, was zu unerwartetem Verhalten führt. Es wird empfohlen, dass Anwendungen, die Sperrbildschirm-UI-Elemente enthalten, diesen Wert auf NSFileProtectionCompleteUntilFirstUserAuthenticationfestlegen. Optional. Standardwert ist NSFileProtectionComplete.
OpenInActionExtension Boolesch Legen Sie für Erweiterungen in Aktion öffnen auf JA fest. Weitere Informationen finden Sie im Abschnitt Freigeben von Daten über UIActivityViewController.
WebViewHandledURLSchemes Array von Zeichenfolgen Gibt die URL-Schemas an, die die WebView Ihrer App verarbeitet. Erforderlich, wenn Ihre App eine WebView verwendet, die URLs über Links und/oder JavaScript verarbeitet.
DocumentBrowserFileCachePath Zeichenfolge Wenn Ihre App zum UIDocumentBrowserViewController Durchsuchen von Dateien in verschiedenen Dateianbietern verwendet, können Sie diesen Pfad relativ zum Basisverzeichnis in der Anwendungssandbox festlegen, damit das Intune SDK entschlüsselte verwaltete Dateien in diesem Ordner ablegen kann. Optional. Standardmäßig wird das /Documents/ Verzeichnis verwendet.
VerboseLoggingEnabled Boolesch Wenn ja festgelegt, meldet sich Intune im ausführlichen Modus an. Optional. Der Standardwert ist NO.
FinishLaunchingAtStartup Boolesch Wenn die App verwendet [BGTaskScheduler registerForTaskWithIdentifier:] , sollte diese Einstellung auf JA festgelegt werden. Optional. Der Standardwert ist NO.
ValuesToScrubFromLogging Array von Zeichenfolgen Gibt Anwendungskonfigurationswerte an, die aus den Protokollen entfernt werden sollen. Alternativ kann der valuesToScrubFromLogging-Eigenschaft der IntuneMAMSettings-Klasse ein Array von Zeichenfolgen für das gleiche Verhalten zugewiesen werden. Optional.

Empfangen einer App-Schutzrichtlinie

Übersicht

Um Intune App-Schutzrichtlinie zu erhalten, müssen Apps eine Registrierungsanforderung beim Intune MAM-Dienst initiieren. Apps können im Intune Admin Center so konfiguriert werden, dass sie App-Schutzrichtlinien mit oder ohne Geräteregistrierung erhalten. Mobile Anwendungsverwaltung (Mobile Application Management, MAM) ermöglicht die Verwaltung von Apps durch Intune, ohne dass das Gerät bei Intune Mobile Device Management (MDM) registriert werden muss. In beiden Fällen ist die Registrierung beim Intune MAM-Dienst erforderlich, um die Richtlinie zu erhalten.

Wichtig

Das Intune App SDK für iOS verwendet 256-Bit-Verschlüsselungsschlüssel, wenn die Verschlüsselung durch App-Schutzrichtlinien aktiviert ist. Alle Apps benötigen eine aktuelle SDK-Version, um geschützte Datenfreigaben zu ermöglichen.

Apps, die bereits ADAL oder MSAL verwenden

Hinweis

Azure AD-Authentifizierung Library (ADAL) und Azure AD Graph-API sind veraltet. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.

Apps, die bereits ADAL oder MSAL verwenden, sollten die registerAndEnrollAccount -Methode auf dem IntuneMAMEnrollmentManager instance aufrufen, nachdem der Benutzer erfolgreich authentifiziert wurde:

/*
 *  This method will add the account to the list of registered accounts.
 *  An enrollment request will immediately be started.
 *  @param identity The UPN of the account to be registered with the SDK
 */

(void)registerAndEnrollAccount:(NSString *)identity;

Durch Aufrufen der registerAndEnrollAccount -Methode registriert das SDK das Benutzerkonto und versucht, die App im Namen dieses Kontos zu registrieren. Wenn die Registrierung aus irgendeinem Grund fehlschlägt, versucht das SDK die Registrierung 24 Stunden später automatisch erneut. Zu Debugzwecken kann die App über einen Delegaten Benachrichtigungen über die Ergebnisse von Registrierungsanforderungen empfangen.

Nachdem diese API aufgerufen wurde, kann die App weiterhin normal funktionieren. Wenn die Registrierung erfolgreich ist, benachrichtigt das SDK den Benutzer, dass ein App-Neustart erforderlich ist. Zu diesem Zeitpunkt kann der Benutzer die App sofort neu starten.

[[IntuneMAMEnrollmentManager instance] registerAndEnrollAccount:@"user@foo.com"];

Apps, die keine ADAL oder MSAL verwenden

Apps, die den Benutzer nicht mit ADAL oder MSAL anmelden, können weiterhin Eine App-Schutzrichtlinie vom Intune MAM-Dienst erhalten, indem sie die API aufrufen, damit das SDK diese Authentifizierung behandelt. Apps sollten dieses Verfahren verwenden, wenn sie keinen Benutzer mit Microsoft Entra ID authentifiziert haben, aber dennoch eine App-Schutzrichtlinie abrufen müssen, um Daten zu schützen. Ein Beispiel ist, wenn ein anderer Authentifizierungsdienst für die App-Anmeldung verwendet wird oder wenn die App die Anmeldung überhaupt nicht unterstützt. Dazu kann die Anwendung die loginAndEnrollAccount -Methode auf dem IntuneMAMEnrollmentManager instance aufrufen:

/**
 *  Creates an enrollment request which is started immediately.
 *  If no token can be retrieved for the identity, the user will be prompted
 *  to enter their credentials, after which enrollment will be retried.
 *  @param identity The UPN of the account to be logged in and enrolled.
 */
 (void)loginAndEnrollAccount: (NSString *)identity;

Durch Aufrufen dieser Methode fordert das SDK den Benutzer zur Eingabe von Anmeldeinformationen auf, wenn kein vorhandenes Token gefunden werden kann. Das SDK versucht dann, die App im Namen des angegebenen Benutzerkontos beim Intune MAM-Dienst zu registrieren. Die -Methode kann mit "nil" als Identität aufgerufen werden. In diesem Fall registriert sich das SDK mit dem vorhandenen verwalteten Benutzer auf dem Gerät (im Fall von MDM), oder fordert den Benutzer zur Eingabe eines Benutzernamens auf, wenn kein vorhandener Benutzer gefunden wird.

Wenn die Registrierung fehlschlägt, sollte die App in Erwägung ziehen, diese API zu einem späteren Zeitpunkt erneut aufzurufen, abhängig von den Details des Fehlers. Die App kann über einen Delegaten Benachrichtigungen zu den Ergebnissen von Registrierungsanforderungen empfangen.

Nachdem diese API aufgerufen wurde, kann die App weiterhin normal funktionieren. Wenn die Registrierung erfolgreich ist, benachrichtigt das SDK den Benutzer, dass ein App-Neustart erforderlich ist.

Beispiel:

[[IntuneMAMEnrollmentManager instance] loginAndEnrollAccount:@"user@foo.com"];

Lassen Sie Intune die Authentifizierung und Registrierung beim Start verarbeiten.

Wenn das Intune SDK die gesamte Authentifizierung mit ADAL/MSAL und die Registrierung verarbeiten soll, bevor ihre App gestartet wird, und Ihre App immer eine APP-Richtlinie erfordert, müssen Sie die API nicht verwendenloginAndEnrollAccount. Sie können einfach die beiden folgenden Einstellungen im IntuneMAMSettings-Wörterbuch in der App-Datei "Info.plist" auf YES festlegen.

Einstellung Typ Definition
AutoEnrollOnLaunch Boolesch Gibt an, ob die App versuchen soll, sich beim Start automatisch zu registrieren, wenn eine vorhandene verwaltete Identität erkannt wird und dies noch nicht geschehen ist. Der Standardwert ist NO.

Hinweis: Wenn keine verwaltete Identität gefunden wird oder kein gültiges Token für die Identität im ADAL/MSAL-Cache verfügbar ist, schlägt der Registrierungsversuch ohne Aufforderung zur Eingabe von Anmeldeinformationen im Hintergrund fehl, es sei denn, die App hat MAMPolicyRequired ebenfalls auf YES festgelegt.
MAMPolicyRequired Boolesch Gibt an, ob das Starten der App blockiert wird, wenn die App nicht über eine Intune App-Schutzrichtlinie verfügt. Der Standardwert ist NO.

Hinweis: Apps können nicht an die App Store übermittelt werden, wobei MAMPolicyRequired auf YES festgelegt ist. Wenn MamPolicyRequired auf YES festgelegt wird, sollte AutoEnrollOnLaunch ebenfalls auf YES festgelegt werden.

Wenn Sie diese Option für Ihre App auswählen, müssen Sie den Neustart Ihrer App nach der Registrierung nicht mehr durchführen.

Aufheben der Registrierung von Benutzerkonten

Bevor ein Benutzer von einer App abgemeldet wird, sollte die App die Registrierung des Benutzers beim SDK aufheben. Dadurch wird Folgendes sichergestellt:

  1. Registrierungsversuche werden für das Konto des Benutzers nicht mehr durchgeführt.

  2. App-Schutz Richtlinie wird entfernt.

  3. Wenn die App ein selektives Zurücksetzen (optional) initiiert, werden alle Unternehmensdaten gelöscht.

Bevor der Benutzer abgemeldet wird, sollte die App die folgende Methode für die IntuneMAMEnrollmentManager instance aufrufen:

/*
 *  This method will remove the provided account from the list of
 *  registered accounts.  Once removed, if the account has enrolled
 *  the application, the account will be un-enrolled.
 *  @note In the case where an un-enroll is required, this method will block
 *  until the Intune APP AAD token is acquired, then return.  This method must be called before  
 *  the user is removed from the application (so that required AAD tokens are not purged
 *  before this method is called).
 *  @param identity The UPN of the account to be removed.
 *  @param doWipe   If YES, a selective wipe if the account is un-enrolled
 */
(void)deRegisterAndUnenrollAccount:(NSString *)identity withWipe:(BOOL)doWipe;

Diese Methode muss aufgerufen werden, bevor die Microsoft Entra Token des Benutzerkontos gelöscht werden. Das SDK benötigt die Microsoft Entra Token des Benutzerkontos, um im Namen des Benutzers bestimmte Anforderungen an den Intune MAM-Dienst zu senden.

Wenn die App die Unternehmensdaten des Benutzers selbst löscht, kann das doWipe Flag auf false festgelegt werden. Andernfalls kann das SDK eine selektive Zurücksetzung initiieren. Dies führt zu einem Aufruf des selektiven Zurücksetzungsdelegaten der App.

Beispiel:

[[IntuneMAMEnrollmentManager instance] deRegisterAndUnenrollAccount:@"user@foo.com" withWipe:YES];

Status-, Ergebnis- und Debugbenachrichtigungen

Die App kann status-, Ergebnis- und Debugbenachrichtigungen zu den folgenden Anforderungen an den Intune MAM-Dienst empfangen:

  • Registrierungsanforderungen
  • Richtlinienaktualisierungsanforderungen
  • Aufheben der Registrierung von Anforderungen

Die Benachrichtigungen werden über Delegatmethoden in IntuneMAMEnrollmentDelegate.hdargestellt:

/**
 *  Called when an enrollment request operation is completed.
 * @param status status object containing debug information
 */

(void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;

/**
 *  Called when a MAM policy request operation is completed.
 *  @param status status object containing debug information
 */
(void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;

/**
 *  Called when a un-enroll request operation is completed.
 *  @Note: when a user is un-enrolled, the user is also de-registered with the SDK
 *  @param status status object containing debug information
 */

(void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus *)status;

Diese Delegatmethoden geben ein IntuneMAMEnrollmentStatus Objekt zurück, das die folgenden Informationen enthält:

  • Die Identität des Kontos, das der Anforderung zugeordnet ist
  • Ein status Code, der das Ergebnis der Anforderung angibt.
  • Eine Fehlerzeichenfolge mit einer Beschreibung des status Codes
  • Ein NSError -Objekt. Dieses Objekt wird in IntuneMAMEnrollmentStatus.hzusammen mit den spezifischen status Codes definiert, die zurückgegeben werden können.

Beispielcode

Dies sind Beispielimplementierungen der Delegatmethoden:

- (void)enrollmentRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
    NSLog(@"enrollment result for identity %@ with status code %ld", status.identity, (unsigned long)status.statusCode);
    NSLog(@"Debug Message: %@", status.errorString);
}

- (void)policyRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
    NSLog(@"policy check-in result for identity %@ with status code %ld", status.identity, (unsigned long)status.statusCode);
    NSLog(@"Debug Message: %@", status.errorString);
}

- (void)unenrollRequestWithStatus:(IntuneMAMEnrollmentStatus*)status
{
    NSLog(@"un-enroll result for identity %@ with status code %ld", status.identity, (unsigned long)status.statusCode);
    NSLog(@"Debug Message: %@", status.errorString);
}

Anwendungsneustart

Wenn eine App zum ersten Mal MAM-Richtlinien empfängt, muss sie neu gestartet werden, um die erforderlichen Hooks anzuwenden. Um die App zu benachrichtigen, dass ein Neustart erfolgen muss, stellt das SDK eine Delegatmethode in bereit IntuneMAMPolicyDelegate.h.

 - (BOOL) restartApplication

Der Rückgabewert dieser Methode teilt dem SDK mit, ob die Anwendung den erforderlichen Neustart verarbeiten muss:

  • Wenn true zurückgegeben wird, muss die Anwendung den Neustart verarbeiten.

  • Wenn false zurückgegeben wird, startet das SDK die Anwendung neu, nachdem diese Methode zurückgegeben wurde. Das SDK zeigt sofort ein Dialogfeld an, in dem der Benutzer aufgefordert wird, die Anwendung neu zu starten.

Exitkriterien

Nachdem Sie entweder das Build-Plug-In konfiguriert oder das Befehlszeilentool in Ihren Buildprozess integriert haben, überprüfen Sie, ob es erfolgreich ausgeführt wird:

  • Stellen Sie sicher, dass Ihr Build erfolgreich kompiliert und erstellt wird.
  • Starten Sie Ihre kompilierte App, melden Sie sich mit einem Microsoft Entra Benutzer an, der nicht auf die App-Schutzrichtlinie ausgerichtet ist, und vergewissern Sie sich, dass die App wie erwartet funktioniert.
  • Melden Sie sich ab, und wiederholen Sie diesen Test mit einem Microsoft Entra Benutzer, für den die App-Schutzrichtlinie gilt, und vergewissern Sie sich, dass die App jetzt von Intune verwaltet und neu gestartet wird.

An diesem Punkt der Integration kann Ihre App jetzt App-Schutzrichtlinie empfangen und erzwingen. Führen Sie die folgenden Tests aus, um die Integration zu überprüfen.

First Policy Application Test

Führen Sie zuerst den folgenden Test aus, um sich mit der vollständigen Endbenutzererfahrung der Richtlinienanwendung in Ihrer App vertraut zu machen:

  1. Erstellen Sie eine iOS-App-Schutzrichtlinie im Microsoft Intune Admin Center. Konfigurieren Sie für diesen Test die Richtlinie:
    • Behalten Sie unter Zugriffsanforderungen die Standardeinstellungen bei. Insbesondere sollte "PIN für Den Zugriff" "Erforderlich" sein.
  2. Stellen Sie sicher, dass die App-Schutzrichtlinie für Ihre Anwendung gilt. Wahrscheinlich müssen Sie die Paket-ID der Anwendung im Richtlinienerstellungs-Assistenten manuell hinzufügen.
  3. Weisen Sie die App-Schutzrichtlinie einer Benutzergruppe zu, die Ihr Testkonto enthält.
  4. Installieren Sie Ihre Anwendung.
  5. Melden Sie sich bei Ihrer Anwendung mit Ihrem Testkonto an, für das die App-Schutzrichtlinie gilt.
  6. Vergewissern Sie sich, dass Sie mit einem Intune verwalteten Bildschirm aufgefordert werden, und bestätigen Sie, dass die Eingabeaufforderung die App neu startet. Dies gibt an, dass das SDK die Richtlinie für dieses Konto erfolgreich abgerufen hat.
  7. Sie sollten aufgefordert werden, eine App-PIN festzulegen. Erstellen Sie eine PIN.
  8. Melden Sie das verwaltete Konto von Ihrer Anwendung ab.
  9. Wenn möglich, ohne sich anzumelden, navigieren Sie in Ihrer Anwendung, und vergewissern Sie sich, dass Ihre App wie erwartet funktioniert.

Dies ist ein *bares Minimum-Test, um zu bestätigen, dass Ihre App das Konto ordnungsgemäß registriert, den Authentifizierungsrückruf registriert und die Registrierung des Kontos aufgehoben hat. Führen Sie die folgenden Tests aus, um gründlicher zu überprüfen, wie andere App-Schutzrichtlinie-Einstellungen das Verhalten Ihrer Anwendung ändern.

Nächste Schritte

Nachdem Sie alle oben genannten Exitkriterien erfüllt haben, fahren Sie mit Phase 4: App-Teilnahmefeatures fort.