Intune App SDK für iOS – Features für die App-Teilnahme

Mit dem Microsoft Intune App SDK für iOS können Sie Intune-App-Schutzrichtlinien (auch bekannt als APP- oder MAM-Richtlinien) in Ihre native iOS-App integrieren. Eine von Intune verwaltete Anwendung ist eine Anwendung, die in das Intune App SDK integriert ist. Intune-Administratoren können App-Schutzrichtlinien auf einfache Weise für Ihre von Intune verwaltete App bereitstellen, wenn Intune die App aktiv verwaltet.

Hinweis

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

Phase 4: Features für die App-Teilnahme

Etappenziele

  • Erfahren Sie mehr über die verschiedenen App-Teilnahmefeatures, die das Intune App SDK bietet.
  • Integrieren Sie für Ihre App und die Benutzer relevante App-Teilnahmefeatures.
  • Testen Sie die Integration dieser Funktionen.

Was sind "App-Teilnahmefunktionen"?

Dieser SDK-Integrationsprozess versucht, die Menge an App-spezifischem Code zu minimieren, die Entwickler schreiben müssen. Durch den erfolgreichen Abschluss der vorherigen Phasen der SDK-Integration kann Ihre App jetzt die meisten App-Schutzrichtlinieneinstellungen erzwingen, z. B. Dateiverschlüsselung, Einschränkungen beim Kopieren/Einfügen, Blockieren von Screenshots und Einschränkungen bei der Datenübertragung.

Es gibt jedoch einige Einstellungen, für die App-spezifischer Code erforderlich ist, um ordnungsgemäß erzwungen zu werden. Diese werden als App-Teilnahmefeatures bezeichnet. In der Regel verfügt das SDK nicht über genügend Kontext zum Code Ihrer Anwendung oder zum Endbenutzerszenario, um diese Einstellungen automatisch zu erzwingen, und ist daher darauf angewiesen, dass Entwickler die SDK-APIs entsprechend aufrufen.

App-Teilnahmefeatures sind nicht unbedingt optional. Abhängig von den vorhandenen Features Ihrer App sind diese Features möglicherweise erforderlich.

In den nächsten Schritten dieses Handbuchs werden mehrere wichtige Features für die App-Teilnahme beschrieben:

Im restlichen Teil dieses Leitfadens werden die verbleibenden Features für die App-Teilnahme beschrieben:

  • Zulässige Konten implementieren
  • Implementieren von Dateiverschlüsselung erforderlich
  • Implementieren von "Speichern unter"- und "Öffnen von"-Steuerelementen
  • Freigeben von Daten über UIActivityViewController
  • Aktivieren der gezielten Konfiguration (APP/MAM-App-Konfiguration) für Ihre iOS-Anwendungen
  • Telemetrie
  • Siri-Absichten
  • App-Clips
  • Drucken
  • Benachrichtigungen
  • Post-Build-Skript

Anpassen des Verhaltens Ihrer App mit APIs

Das Intune App SDK verfügt über mehrere APIs, die Sie aufrufen können, um Informationen zu den für die App bereitgestellten Richtlinien zum Schutz von Intune-Apps zu erhalten. Sie können diese Daten verwenden, um das Verhalten Ihrer App anzupassen. Die folgende Tabelle enthält Informationen zu einigen wesentlichen Intune-Klassen, die Sie verwenden.

Class Beschreibung
IntuneMAMPolicyManager.h Die IntuneMAMPolicyManager-Klasse macht die für die Anwendung bereitgestellten Intune-App-Schutzrichtlinien verfügbar. Insbesondere werden APIs verfügbar, die für das Aktivieren von Mehrfachidentitäten nützlich sind.
IntuneMAMPolicy.h Die IntuneMAMPolicy-Klasse macht einige MAM-Richtlinieneinstellungen verfügbar, die für die App gelten. Die meisten dieser Richtlinieneinstellungen werden verfügbar gemacht, damit die App ihre Benutzeroberfläche anpassen kann. Die meisten Richtlinieneinstellungen werden vom SDK und nicht von der App erzwungen. Es gibt jedoch Ausnahmen. App-Entwickler sollten die Kommentare in dieser Kopfzeile überprüfen, um festzustellen, welche APIs auf die Szenarien ihrer Anwendung anwendbar sind.
IntuneMAMFileProtectionManager.h Die IntuneMAMFileProtectionManager-Klasse macht APIs verfügbar, die die App verwenden kann, um Dateien und Verzeichnisse basierend auf einer angegebenen Identität explizit zu sichern. Die Identität kann über Intune verwaltet oder nicht verwaltet werden, und das SDK wendet die entsprechende MAM-Richtlinie an. Die Verwendung dieser Klasse ist optional.
IntuneMAMDataProtectionManager.h Die IntuneMAMDataProtectionManager-Klasse macht APIs verfügbar, die die App verwenden kann, um Datenpuffer bei einer angegebenen Identität zu sichern. Die Identität kann über Intune verwaltet oder nicht verwaltet werden, und das SDK wendet die Verschlüsselung entsprechend an.

Zulässige Konten implementieren

Mit Intune können IT-Administratoren angeben, bei welchen Konten sich der Benutzer anmelden kann. Apps können das Intune App SDK nach der angegebenen Liste zulässiger Konten abfragen und dann sicherstellen, dass nur zulässige Konten auf dem Gerät angemeldet sind.

Um nach zulässigen Konten zu suchen, sollte die App die allowedAccounts Eigenschaft auf der IntuneMAMEnrollmentManagerüberprüfen. Die allowedAccounts Eigenschaft ist entweder ein Array, das die zulässigen Konten enthält, oder null. Wenn die Eigenschaft null ist, wurden keine zulässigen Konten angegeben. MSAL/OneAuth-fähige Anwendungen sollten die allowedAccountIds Eigenschaft auf der IntuneMAMEnrollmentManager Instance verwenden, um die Entra-Objekt-ID abzufragen.

Apps können auch auf Änderungen der allowedAccounts Eigenschaft reagieren, indem sie die IntuneMAMAllowedAccountsDidChangeNotification Benachrichtigung beachten. Die Benachrichtigung wird immer dann gesendet, wenn sich der Wert der allowedAccounts Eigenschaft ändert.

Die folgenden Anforderungen sind erforderlich, wenn APIs für zulässige Konten verwendet werden:

  • Beim Identitätsvergleich muss bei UPN und OID die Groß-/Kleinschreibung beachtet werden.
  • Der Identitätsvergleich muss sowohl UPN als auch OID unterstützen.
  • Die Anwendung muss über eine Protokollierung verfügen, um jegliche Diskrepanz zwischen dem vom Administrator angegebenen Konto und dem vom Benutzer eingegebenen Konto zu diagnostizieren.

Implementieren von Dateiverschlüsselung erforderlich

Die isFileEncryptionRequired in definierte IntuneMAMPolicy.h API informiert Anwendungen, wenn der IT-Administrator verlangt, dass Anwendungen die Intune-Verschlüsselung für alle auf dem Datenträger gespeicherten Dateien verwenden. Wenn true isFileEncryptionRequired ist, liegt es in der Verantwortung der App sicherzustellen, dass alle von der App auf der Festplatte gespeicherten Dateien mithilfe der APIs in IntuneMAMFile.h, IntuneMAMFileProtectionManager.hund IntuneMAMFDataProtectionManager.hverschlüsselt werden.

Apps können auf Änderungen in dieser Richtlinie reagieren, indem sie die IntuneMAMDataProtectionDidChangeNotification in definierte Benachrichtigung beachten IntuneMAMFDataProtectionManager.h.

Implementieren von "Speichern unter"- und "Öffnen von"-Steuerelementen

Mit Intune können IT-Administratoren auswählen, an welchen Speicherorten eine verwaltete App Daten speichern oder Daten öffnen kann. Apps können das Intune MAM SDK nach zulässigen Speicherorten zum Speichern abfragen, indem sie die API verwenden, die isSaveToAllowedForLocation:withAccountId: in definiert istIntuneMAMPolicy.h. Apps können das SDK auch nach zulässigen Open-from-Speicherorten abfragen, indem sie die API verwenden, die isOpenFromAllowedForLocation:withAccountId: ebenfalls in definiert ist IntuneMAMPolicy.h.

Darüber hinaus können Apps überprüfen, ob eingehende Daten von einer Freigabeerweiterung zulässig sind, indem sie die API abfragen, die canReceiveSharedItemProvider: in definiert ist IntuneMAMPolicy.h. Apps können auch die API abfragen, um eingehende canReceiveSharedFile: Dateien aus einem openURL-Aufruf zu überprüfen, der ebenfalls in IntuneMAMPolicy.h

Hinweis

Ab MAM SDK v15.1.0 wurden Änderungen am internen Verhalten vorgenommen.

  • Ein nil Konto wird nicht mehr als aktuelles Konto für die LocalDrive/LocalStorage-Standorte behandelt. Wenn Sie ein nil Konto übergeben, wird es als nicht verwaltetes Konto behandelt. Da Apps steuern können, wie sie ihren Sandboxspeicher handhaben, kann und sollte eine Identität mit diesen Speicherorten verknüpft werden.
  • Ein nil Konto wird nicht mehr als das aktuelle Konto für Single-Identity-Apps behandelt. Die Übergabe eines nil Kontos in einer App mit einfacher Identität wird jetzt genauso behandelt wie die Übergabe an eine App mit mehreren Identitäten. Wenn Sie eine Einzelidentitäts-App entwickeln, verwenden Sie die IntuneMAMPolicy's primaryUser , um auf das aktuelle Konto zu verweisen, falls verwaltet, und nil um auf das aktuelle Konto zu verweisen, wenn die App nicht verwaltet wird.

Umgang mit Save-to-Szenarien

Vor dem Verschieben von Daten in einen neuen Cloud-Speicher oder an einen lokalen Speicherort muss eine App mit der isSaveToAllowedForLocation:withAccountId: API überprüfen, ob der IT-Administrator die Datenübertragung zugelassen hat. Diese Methode wird für ein IntuneMAMPolicy Objekt aufgerufen. Daten, die an Ort und Stelle bearbeitet und gespeichert werden, müssen mit dieser API nicht überprüft werden.

Hinweis

Das IntuneMAMPolicy Objekt sollte die Richtlinien des Eigentümers der gespeicherten Daten darstellen. Um das Objekt einer bestimmten Identität abzurufen, rufen Sie IntuneMAMPolicyManagerdie IntuneMAMPolicy 'Methode policyForAccountId: auf. Wenn der Besitzer ein nicht verwaltetes Konto ohne Identität ist, nil kann an policyForAccountId:übergeben werden. Auch wenn es sich bei den gespeicherten Daten nicht um Organisationsdaten handelt, isSaveToAllowedForLocation:withAccountId: sollten dennoch aufgerufen werden. Für das Konto, das den Zielstandort besitzt, gelten möglicherweise noch Richtlinien, die eingehende nicht verwaltete Daten einschränken.

Die isSaveToAllowedForLocation:withAccountId: Methode akzeptiert zwei Argumente. Das erste Argument ist ein Enumerationswert des in definierten IntuneMAMPolicy.hTypsIntuneMAMSaveLocation. Das zweite Argument ist der UPN der Identität, die den Standort besitzt. Wenn der Besitzer nicht bekannt ist, nil kann stattdessen verwendet werden.

Unterstützte Speicherorte

Das Intune MAM SDK bietet Unterstützung für die folgenden Speicherorte, die in IntuneMAMPolicy.h

  • IntuneMAMSaveLocationOneDriveForBusiness– Dieser Speicherort steht für OneDrive for Business-Standorte. Die mit dem OneDrive-Konto verknüpfte Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMSaveLocationSharePoint– Dieser Speicherort repräsentiert sowohl lokale SharePoint Online- als auch Microsoft Entra Hybrid Modern Auth-SharePoint-Standorte. Die mit dem SharePoint-Konto verknüpfte Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMSaveLocationLocalDrive - Dieser Speicherort stellt den App-Sandbox-Speicher dar, auf den nur von der App zugegriffen werden kann. Dieser Speicherort sollte nicht zum Speichern über eine Dateiauswahl oder zum Speichern in Dateien über eine Freigabeerweiterung verwendet werden. Wenn eine Identität dem App-Sandbox-Speicher zugeordnet werden kann, sollte sie als zweites Argument übergeben werden. Wenn keine Identität vorhanden ist, nil sollte stattdessen übergeben werden. Beispielsweise kann eine App separate App-Sandbox-Speichercontainer für verschiedene Konten verwenden. In diesem Fall sollte das Konto des Containers, auf den zugegriffen wird, als zweites Argument verwendet werden.
  • IntuneMAMSaveLocationCameraRoll - Dieser Speicherort stellt die iOS-Fotobibliothek dar. Da der iOS-Fotobibliothek kein Konto zugeordnet ist, sollte nur nil als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird.
  • IntuneMAMSaveLocationAccountDocument- Dieser Standort stellt einen beliebigen Standort einer organization dar, der zuvor nicht aufgeführt war und mit einem verwalteten Konto verknüpft werden kann. Das mit dem Standort verknüpfte Konto der organization sollte als zweites Argument übergeben werden. Beispielsweise das Hochladen eines Fotos in den LOB-Clouddienst einer organization, der an das Konto der organization gebunden ist.
  • IntuneMAMSaveLocationOther - Dieser Speicherort steht für alle nicht organisatorischen, noch nicht aufgeführten oder unbekannten Standorte. Wenn ein Konto mit dem Standort verknüpft ist, sollte es als zweites Argument übergeben werden. Andernfalls nil sollte stattdessen verwendet werden.
Besondere Überlegungen zu Speicherorten

Der IntuneMAMSaveLocationLocalDrive Speicherort sollte nur für App-Sandbox-Speicher verwendet werden, auf den nur von der App zugegriffen werden kann. Um zu überprüfen, ob eine Datei über eine Dateiauswahl oder eine andere Methode, bei der die Daten in der Files-App zugänglich sind, auf dem iOS-Gerätespeicher gespeichert werden kann, IntuneMAMSaveLocationOther sollte verwendet werden.

Wenn der Zielspeicherort nicht aufgeführt ist, IntuneMAMSaveLocationAccountDocument sollte oder IntuneMAMSaveLocationOther verwendet werden. Enthält der Standort Organisationsdaten, auf die über das verwaltete Konto zugegriffen wird (z. B. LOB-Clouddienst zum Speichern von Organisationsdaten) IntuneMAMSaveLocationAccountDocument verwendet werden. Wenn der Speicherort keine Organisationsdaten enthält, sollte der IntuneMAMSaveLocationOther Speicherort verwendet werden.

Umgang mit Open-from-Szenarien

Vor dem Importieren von Daten aus einem neuen Cloudspeicher oder lokalen Speicherort muss eine App mit der isOpenFromAllowedForLocation:withAccountId: API überprüfen, ob der IT-Administrator die Datenübertragung zugelassen hat. Diese Methode wird für ein IntuneMAMPolicy Objekt aufgerufen. Daten, die direkt geöffnet werden, müssen mit dieser API nicht überprüft werden.

Hinweis

Das IntuneMAMPolicy Objekt sollte die Richtlinien der Identität darstellen, die die Daten empfängt. Um das Objekt einer bestimmten Identität abzurufen, rufen Sie IntuneMAMPolicyManagerdie IntuneMAMPolicy 'Methode policyForAccountId: auf. Wenn das empfangende Konto ein nicht verwaltetes Konto ohne Identität ist, nil kann an policyForAccountId:übergeben werden. Auch wenn es sich bei den empfangenen Daten nicht um Organisationsdaten handelt, isOpenFromAllowedForLocation:withAccountId: sollten dennoch aufgerufen werden. Für das Konto, das Besitzer der Daten ist, gelten möglicherweise noch Richtlinien, die die Ziele für ausgehende Datenübertragungen einschränken.

Die isOpenFromAllowedForLocation:withAccountId: Methode akzeptiert zwei Argumente. Das erste Argument ist ein Enumerationswert des in definierten IntuneMAMPolicy.hTypsIntuneMAMOpenLocation. Das zweite Argument ist der UPN der Identität, die den Standort besitzt. Wenn der Besitzer nicht bekannt ist, nil kann stattdessen verwendet werden.

Unterstützte offene Standorte

Das Intune MAM SDK bietet Unterstützung für die folgenden offenen Speicherorte, die in IntuneMAMPolicy.h

  • IntuneMAMOpenLocationOneDriveForBusiness– Dieser Speicherort steht für OneDrive for Business-Standorte. Die mit dem OneDrive-Konto verknüpfte Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMOpenLocationSharePoint– Dieser Speicherort repräsentiert sowohl lokale SharePoint Online- als auch Microsoft Entra Hybrid Modern Auth-SharePoint-Standorte. Die mit dem SharePoint-Konto verknüpfte Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMOpenLocationCamera - Dieser Speicherort stellt nur neue Bilder dar, die von der Kamera aufgenommen wurden. Da der iOS-Kamera kein Konto zugeordnet ist, sollte nur nil als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird. Verwenden Sie IntuneMAMOpenLocationPhotoszum Öffnen von Daten aus der iOS-Fotobibliothek .
  • IntuneMAMOpenLocationPhotos - Dieser Speicherort stellt nur vorhandene Bilder in der iOS-Fotobibliothek dar. Da der iOS-Fotobibliothek kein Konto zugeordnet ist, sollte nur nil als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird. Zum Öffnen von Bildern, die direkt von der iOS-Kamera aufgenommen wurden, verwenden Sie IntuneMAMOpenLocationCamera.
  • IntuneMAMOpenLocationLocalStorage - Dieser Speicherort stellt den App-Sandbox-Speicher dar, auf den nur von der App zugegriffen werden kann. Dieser Speicherort sollte nicht zum Öffnen von Dateien über eine Dateiauswahl oder zum Verarbeiten eingehender Dateien über eine offene URL verwendet werden. Wenn eine Identität dem App-Sandbox-Speicher zugeordnet werden kann, sollte sie als zweites Argument übergeben werden. Wenn keine Identität vorhanden ist, nil sollte stattdessen übergeben werden. Beispielsweise kann eine App separate App-Sandbox-Speichercontainer für verschiedene Konten verwenden. In diesem Fall sollte das Konto des Containers, auf den zugegriffen wird, als zweites Argument verwendet werden.
  • IntuneMAMOpenLocationAccountDocument- Dieser Standort stellt einen beliebigen Standort einer organization dar, der zuvor nicht aufgeführt war und mit einem verwalteten Konto verknüpft werden kann. Das mit dem Standort verknüpfte Konto der organization sollte als zweites Argument übergeben werden. Beispielsweise das Herunterladen eines Fotos aus dem LOB-Clouddienst einer organization, der an das Konto der organization gebunden ist.
  • IntuneMAMOpenLocationOther - Dieser Speicherort stellt einen nicht organisatorischen Speicherort dar, der zuvor nicht aufgeführt wurde, oder einen unbekannten Standort. Wenn ein Konto mit dem Standort verknüpft ist, sollte es als zweites Argument übergeben werden. Andernfalls nil sollte stattdessen verwendet werden.
Besondere Überlegungen zu geöffneten Standorten

Der IntuneMAMOpenLocationLocalStorage Speicherort sollte nur für den App-Sandbox-Speicher verwendet werden, auf den die App zugreifen kann. Um zu überprüfen, ob eine Datei aus dem iOS-Gerätespeicher über eine Dateiauswahl oder eine andere Methode geöffnet werden kann, bei der die Daten auch in der Files-App zugänglich sind, sollte verwendet werden. IntuneMAMOpenLocationOther

Wenn der Zielspeicherort nicht aufgeführt ist, IntuneMAMOpenLocationAccountDocument sollte oder IntuneMAMOpenLocationOther verwendet werden. Wenn der Standort Organisationsdaten enthält, auf die über das verwaltete Konto zugegriffen wird. Beispielsweise sollte der LOB-Clouddienst zum Speichern von Organisationsdaten IntuneMAMOpenLocationAccountDocument verwendet werden. Wenn der Speicherort keine Organisationsdaten enthält, sollte der IntuneMAMSaveLocationOther Speicherort verwendet werden.

Behandeln eingehender NSItemProviders und -Files

Für die Behandlung von NSItemProvidern, die von einer Freigabeerweiterung empfangen werden, kann die IntuneMAMPolicy's-Methode canReceiveSharedItemProvider: anstelle von isOpenFromAllowedForLocation:withAccountId:verwendet werden. Die canReceiveSharedItemProvider: Methode nimmt einen NSItemProvider und gibt zurück, ob er vom IT-Administrator im Konto des IntuneMAMPolicy Objekts geöffnet werden darf. Das Element muss geladen werden, bevor diese Methode aufgerufen wird. Beispielsweise durch den Aufruf von loadItemForTypeIdentifier:options:completionHandler. Diese Methode kann auch vom Abschlusshandler aufgerufen werden, der an den NSItemProvider-Ladeaufruf übergeben wird.

Für die Verarbeitung eingehender Dateien kann die IntuneMAMPolicyMethode 's canReceiveSharedFile: anstelle von isOpenFromAllowedForLocation:withAccountId:verwendet werden. Die canReceiveSharedFile: Methode verwendet einen NSString-Pfad und gibt zurück, ob er vom IT-Administrator im Konto des IntuneMAMPolicy Objekts geöffnet werden darf.

Warnung "Freigabe blockiert"

Eine UI-Hilfsfunktion kann verwendet werden, wenn entweder die isSaveToAllowedForLocation:withAccountId: oder-API isOpenFromAllowedForLocation:withAccountId: aufgerufen und gefunden wird, um die Aktion Speichern/Öffnen zu blockieren. Wenn die App den Benutzer benachrichtigen möchte, dass die Aktion blockiert wurde, kann sie die showSharingBlockedMessage in IntuneMAMUIHelper.h definierte API aufrufen, um eine Warnungsansicht mit einer generischen Meldung anzuzeigen.

Freigeben von Daten über UIActivityViewController

Ab Version 8.0.2 kann das Intune App SDK Aktionen filternUIActivityViewController, sodass nur von Intune verwaltete Freigabespeicherorte zur Auswahl stehen. Dieses Verhalten wird von der Anwendungsdatenübertragungsrichtlinie gesteuert.

Aktionen "Kopieren nach"

Beim Freigeben von Dokumenten über das und UIDocumentInteractionControllerzeigt iOS "Kopieren nach"-Aktionen für jede Anwendung an, die UIActivityViewController das Öffnen des freigegebenen Dokuments unterstützt. Anwendungen deklarieren die Dokumenttypen, die sie unterstützen, über die CFBundleDocumentTypes Einstellung in ihrer Info.plist. Diese Art der Freigabe ist nicht mehr verfügbar, wenn die Richtlinie die Freigabe für nicht verwaltete Anwendungen zulässt. Als Ersatz muss der Benutzer seiner Anwendung eine Nicht-UI-Aktionserweiterung hinzufügen und sie mit dem Intune App SDK verknüpfen. Die Aktionserweiterung ist lediglich ein Stub. Das SDK implementiert das Dateifreigabeverhalten. Folgen Sie den unten angegebenen Schritten:

  1. In Ihrer Anwendung muss mindestens eine "schemeURL" unter der Datei "Info.plist CFBundleURLTypes " zusammen mit dem -intunemam entsprechenden Element definiert sein. Zum Beispiel:

    <key>CFBundleURLSchemes</key>
    <array>
        <string>launch-com.contoso.myapp</string>
          <string>launch-com.contoso.myapp-intunemam</string>
    </array>
    
  2. Sowohl Ihre Anwendung als auch Ihre Aktionserweiterung müssen mindestens eine App-Gruppe gemeinsam nutzen, und die App-Gruppe muss unter dem AppGroupIdentifiers Array unter den IntuneMAMSettings-Wörterbüchern der App und der Erweiterung aufgeführt sein.

  3. Sowohl Ihre Anwendung als auch die Aktionserweiterung müssen über die Schlüsselbundfreigabefunktion verfügen und die com.microsoft.intune.mam Schlüsselbundgruppe gemeinsam nutzen.

  4. Benennen Sie die Aktionserweiterung mit "Öffnen in", gefolgt vom Anwendungsnamen. Lokalisieren Sie die Info.plist nach Bedarf.

  5. Stellen Sie ein Vorlagensymbol für die Erweiterung bereit, wie in der Entwicklerdokumentation von Apple beschrieben. Alternativ kann das IntuneMAMConfigurator-Tool verwendet werden, um diese Bilder aus dem Anwendungsverzeichnis .app zu generieren. Führen Sie dazu folgendes aus:

    IntuneMAMConfigurator -generateOpenInIcons /path/to/app.app -o /path/to/output/directory
    
  6. Fügen Sie unter IntuneMAMSettings in der Info.plist der Erweiterung eine boolesche Einstellung mit dem Namen OpenInActionExtension JA hinzu.

  7. Konfigurieren Sie die NSExtensionActivationRule so, dass eine einzelne Datei und alle Typen aus dem Präfix der CFBundleDocumentTypes Anwendung unterstützt werden com.microsoft.intune.mam. Wenn die Anwendung z. B. public.text und public.image unterstützt, lautet die Aktivierungsregel wie folgt:

    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
    

Aktualisieren vorhandener Freigabe- und Aktionserweiterungen

Wenn Ihre App bereits Freigabe- oder Aktionserweiterungen enthält, müssen diese NSExtensionActivationRule geändert werden, um die Intune-Typen zuzulassen. Fügen Sie für jeden von der Erweiterung unterstützten Typ einen zusätzlichen Typ mit com.microsoft.intune.mamdem Präfix . Wenn die vorhandene Aktivierungsregel beispielsweise wie folgt lautet:

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

Sie sollte so geändert werden:

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

Hinweis

Das IntuneMAMConfigurator-Tool kann verwendet werden, um die Intune-Typen zur Aktivierungsregel hinzuzufügen. Wenn Ihre vorhandene Aktivierungsregel die vordefinierten Zeichenfolgenkonstanten verwendet. Beispielsweise bei NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText usw., kann die Prädikatsyntax recht komplex werden. Das IntuneMAMConfigurator-Tool kann auch verwendet werden, um die Aktivierungsregel von den Zeichenfolgenkonstanten in eine Prädikatzeichenfolge zu konvertieren, während die Intune-Typen hinzugefügt werden.

So sollte die Benutzeroberfläche aussehen

Alte Benutzeroberfläche:

Freigeben von Daten – alte iOS-Freigabebenutzeroberfläche

Neue UI:

Freigeben von Daten – iOS Neue Freigabebenutzeroberfläche

Aktivieren der gezielten App-Konfiguration für Ihre iOS-Anwendungen

Die MAM-Zielkonfiguration (auch bekannt als MAM-App-Konfiguration) ermöglicht einer App das Empfangen von Konfigurationsdaten über das Intune SDK. Das Format und die Varianten dieser Daten müssen definiert und Intune-Kunden vom App-Besitzer/Entwickler mitgeteilt werden.

Intune Administratoren können Konfigurationsdaten über das Microsoft Intune Admin Center adressieren und bereitstellen und Intune Graph-API. Ab Version 7.0.1 des Intune App SDK für iOS können Apps, die an der MAM-Zielkonfiguration teilnehmen, MAM-Zielkonfigurationsdaten über den MAM-Dienst bereitgestellt werden. Die Anwendungskonfigurationsdaten werden über unseren MAM-Dienst direkt an die App statt über den MDM-Kanal übertragen. Das Intune App SDK stellt eine Klasse für den Zugriff auf die von diesen Konsolen abgerufenen Daten bereit. Die folgenden Elemente sind Voraussetzungen:

  • Die App muss beim Intune MAM-Dienst registriert werden, bevor Sie auf die MAM-Zielkonfigurationsbenutzeroberfläche zugreifen. Weitere Informationen finden Sie unter App-Schutzrichtlinie empfangen.

  • in die Quelldatei Ihrer App einschließen IntuneMAMAppConfigManager.h .

  • Rufen Sie [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] zum Abrufen des App-Konfigurationsobjekts auf.

  • Rufen Sie den entsprechenden Selektor für IntuneMAMAppConfig das Objekt auf. Wenn der Schlüssel Ihrer Anwendung beispielsweise eine Zeichenfolge ist, möchten Sie or allStringsForKeyverwendenstringValueForKey. Eine detaillierte Beschreibung der Rückgabewerte und Fehlerbedingungen finden Sie hier IntuneMAMAppConfig.h .

Weitere Informationen zu den Funktionen der Graph-API finden Sie unter Graph-API-Referenz.

Weitere Informationen zum Erstellen einer MAM-App-Konfigurationsrichtlinie in iOS finden Sie im Abschnitt zur MAM-gezielten App-Konfiguration in Verwenden von Microsoft Intune-App-Konfigurationsrichtlinien für iOS/iPadOS.

Telemetrie

Standardmäßig sammelt das Intune App SDK für iOS Telemetriedaten zu den folgenden Arten von Ereignissen:

  • App-Start: Damit Microsoft Intune mehr über die MAM-fähige App-Nutzung nach Verwaltungstyp (MAM mit MDM, MAM ohne MDM-Registrierung usw.) erfahren kann.

  • Registrierungsanrufe: Damit Microsoft Intune mehr über die Erfolgsrate und andere Leistungsmetriken von Registrierungsaufrufen erfahren kann, die von der Clientseite initiiert werden.

  • Intune-Aktionen: Um Probleme zu diagnostizieren und die Funktionalität von Intune sicherzustellen, sammeln wir Informationen zu Intune SDK-Aktionen.

Hinweis

Wenn Sie keine Intune App SDK-Telemetriedaten von Ihrer mobilen Anwendung an Microsoft Intune senden möchten, müssen Sie die Intune App SDK-Telemetrieerfassung deaktivieren. Legen Sie die Eigenschaft MAMTelemetryDisabled im IntuneMAMSettings-Wörterbuch auf JA fest.

Siri-Absichten

Wenn Ihre App in Siri Intents integriert ist oder Siri Intent spendet, lesen Sie bitte unbedingt die Kommentare für areSiriIntentsAllowedIntuneMAMPolicy.h in Anweisungen zur Unterstützung dieses Szenarios.

Hinweis

In iOS 16 und höher ist ein neues App-Absichten-Systemframework zum Erstellen von schnellen App-Absichten verfügbar. Apps, die eine App-Absicht implementieren, sollten zuerst die areSiriIntentsAllowed Eigenschaft des IntuneMAMPolicy-Objekts für den Benutzer überprüfen.

App-Clips

Wenn Ihre App ein App-Clipziel enthält, stellen Sie sicher, dass keine verwalteten Daten im App-Clip angezeigt werden. Der App-Clip sollte als nicht verwalteter Speicherort betrachtet werden. Die SDK-Integration in App Clips wird derzeit nicht unterstützt.

Drucken

Wenn Ihre App das Drucken implementiert und eine benutzerdefinierte Druckaktion in einem benutzerdefinierten Menü bereitstellt, sollten UIPrintInteractionController.isPrintingAvailable() Sie bestimmen, ob Sie Ihre Druckaktion zum benutzerdefinierten Menü hinzufügen sollten.

Blockieren von Bildschirmaufnahmen

Für Apps, die auf v19.7.6 oder höher für Xcode 15 und v20.2.1 oder höher für Xcode 16 des SDK aktualisiert wurden, wird die Bildschirmaufnahmesperre angewendet, wenn Sie einen anderen Wert als "Alle Apps" konfiguriert Send Org data to other apps haben. Sie können die App-Konfigurationsrichtlinieneinstellung "com.microsoft.intune.mam.screencapturecontrol = Disabled" konfigurieren, wenn Sie Bildschirmaufnahmen für Ihre iOS-Geräte zulassen möchten.

Benachrichtigungen

Wenn Ihre App Benachrichtigungen empfängt, lesen Sie unbedingt die Kommentare für notificationPolicyIntuneMAMPolicy.h in, um Anweisungen zur Unterstützung dieses Szenarios zu erhalten. Es wird empfohlen, dass sich Apps für IntuneMAMPolicyDidChangeNotification beschrieben in IntuneMAMPolicyManager.hregistrieren und diesen Wert über den Schlüsselbund an ihre Zielgruppe UNNotificationServiceExtension übermitteln.

Safari-Weberweiterungen

Wenn Ihre App über eine Safari-Weberweiterung verfügt und das Senden von Daten zwischen der Erweiterung und der übergeordneten Anwendung unterstützt, muss Ihre Anwendung in einigen Szenarien möglicherweise das Blockieren der Daten unterstützen. Um die Daten zu blockieren, rufen Sie in der übergeordneten Anwendung die isAppSharingAllowed API in IntuneMAMPolicy.hauf, und blockieren Sie dann die Weberweiterung.

Post-Build-Skript

Das Befehlszeilentool IntuneMAMFrameworkPatcher muss nicht mehr als letzter Schritt des Anwendungserstellungsprozesses ausgeführt werden. Dieses Tool ist jedoch als Teil des Intune App SDK für iOS auf GitHub verfügbar.

Wichtig

Ab Version 17.7.1 des Intune MAM SDK ist dieser Schritt nicht mehr erforderlich. Das Befehlszeilentool IntuneMAMFrameworkPatcher muss nicht mehr ausgeführt werden.

Verwendung der Befehlszeile

IntuneMAMFrameworkPatcher -i /path/to/directory_or_binary [-resign] [-verbose]

Parameter:

  • i, r, v: Mit diesem Parameter können Sie den Intune MAM Framework Patcher für den Anwendungsbuildprozess installieren, entfernen oder überprüfen.
  • path: Dies path muss der Stamm des .app Verzeichnisses der Anwendung sein.
  • resign: Die resign Option weist das Tool an, Binärdateien zu signieren, die vor dem Patchen der Binärdatei eine gültige Signatur hatten. Diese Option sollte verwendet werden, wenn das Projekt Frameworkabhängigkeiten oder Plugins mit der Option Einbetten und Signieren enthält, auch wenn es vor der endgültigen Anwendungssignierung ausgeführt wird oder wenn das Tool nach der endgültigen Anwendungssignierung ausgeführt wird.
  • verbose: Die verbose Option bewirkt, dass das Tool Informationen zu jeder gepatchten Binärdatei ausgibt.

Andere Verwendungen:

  • Entfernen Sie den Patch:

    IntuneMAMFrameworkPatcher -r /path/to/directory_or_binary [-resign] [-verbose]

  • Überprüfen Sie den Patch:

    IntuneMAMFrameworkPatcher -v /path/to/directory_or_binary [-verbose]

Beispielskript:

IntuneMAMFrameworkPatcher -i $BUILT_PRODUCTS_DIR/$EXECUTABLE_FOLDER_PATH -resign -verbose

Weitere Informationen zu den ersten Schritten und zum Herunterladen des SDK finden Sie unter Erste Schritte mit dem Microsoft Intune App SDK.

Beendigungskriterien

Überprüfen von "Speichern in/Öffnen von" Einschränkungen

Überspringen, wenn Sie die Steuerelemente "Speichern unter" und "Öffnen ab" nicht implementiert haben.

Machen Sie sich mit jedem Szenario vertraut, in dem Ihre App Daten in Cloudspeichern oder an lokalen Speicherorten speichern und Daten aus Cloudspeichern oder lokalen Speicherorten öffnen kann.

Der Einfachheit halber wird bei diesen Tests davon ausgegangen, dass Ihre App nur das Speichern und Öffnen von Daten in und in OneDrive for Business von einem einzigen Speicherort innerhalb der App unterstützt. Sie müssen jedoch jede Kombination überprüfen: jeden unterstützten Speicherort für jeden Ort, an dem Ihre App das Speichern von Daten zulässt, und jeden unterstützten geöffneten Speicherort für jeden Ort, an dem Ihre App das Öffnen von Daten zulässt.

Installieren Sie für diese Tests Ihre App, integrieren Sie sie in das SDK und melden Sie sich mit einem verwalteten Konto an, bevor Sie mit dem Test beginnen.

Außerdem:

  • Legen Sie die Richtlinie des verwalteten Kontos wie folgt fest:
    • "Senden von Organisationsdaten an andere Apps" in "Richtlinienverwaltete Apps".
    • "Daten von anderen Apps empfangen" in "Richtlinienverwaltete Apps".
Szenario Voraussetzungen Schritte
Speichern unter, vollständig zulässig Richtlinie "Kopien der Organisationsdaten speichern" auf "Zulassen" festgelegt - Navigieren Sie zu dem Ort, an dem Ihre App Daten in OneDrive for Business speichern kann.
- Versuchen Sie, ein Dokument auf OneDrive for Business zu speichern, und zwar in demselben verwalteten Konto, das bei Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Speichern zulässig ist.
Speichern unter, ausgenommen - Richtlinie "Kopien von Organisationsdaten speichern" auf "Blockieren" gesetzt
- Richtlinie "Benutzer das Speichern von Kopien in ausgewählten Diensten erlauben" nur auf "OneDrive for Business" festgelegt
- Navigieren Sie zu dem Ort, an dem Ihre App Daten in OneDrive for Business speichern kann.
- Versuchen Sie, ein Dokument auf OneDrive for Business zu speichern, und zwar in demselben verwalteten Konto, das bei Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Speichern zulässig ist.
- Wenn Ihre App dies zulässt, versuchen Sie, die Datei an einem anderen Cloudspeicherort zu speichern, und bestätigen Sie, dass sie blockiert ist.
Speichern unter, blockiert Richtlinie "Kopien der Organisationsdaten speichern" auf "Blockieren" festgelegt - Navigieren Sie zu dem Ort, an dem Ihre App Daten in OneDrive for Business speichern kann.
- Versuchen Sie, ein Dokument auf OneDrive for Business zu speichern, und zwar in demselben verwalteten Konto, das bei Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Speichern blockiert ist.
- Wenn Ihre App dies zulässt, versuchen Sie, die Datei an einem anderen Cloudspeicherort zu speichern, und bestätigen Sie, dass sie blockiert ist.
Öffnen von, vollständig zulässig Richtlinie "Daten in Organisationsdokumente öffnen" auf "Zulassen" festgelegt - Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
- Versuchen Sie, ein Dokument von OneDrive for Business aus demselben verwalteten Konto zu öffnen, das im Speicher Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Öffnen zulässig ist.
Offen von, ausgenommen - Richtlinie "Daten in Organisationsdokumenten öffnen" auf "Blockieren" gesetzt
- Richtlinie "Benutzern das Öffnen von Daten aus ausgewählten Diensten erlauben" nur auf "OneDrive for Business" festgelegt
- Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
- Versuchen Sie, ein Dokument von OneDrive for Business aus demselben verwalteten Konto zu öffnen, das im Speicher Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Öffnen zulässig ist.
- Wenn Ihre App dies zulässt, versuchen Sie, eine andere Datei von einem anderen Cloud-Speicherort zu öffnen, und bestätigen Sie, dass sie blockiert ist.
Öffnen von, blockiert Richtlinie "Daten in Organisationsdokumente öffnen" auf "Blockieren" festgelegt - Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
- Versuchen Sie, ein Dokument von OneDrive for Business aus demselben verwalteten Konto zu öffnen, das im Speicher Ihrer App angemeldet ist.
- Vergewissern Sie sich, dass das Öffnen blockiert ist.
- Wenn Ihre App dies zulässt, versuchen Sie, eine andere Datei von einem anderen Cloud-Speicherort zu öffnen, und bestätigen Sie, dass sie blockiert ist.

Überprüfen von "Kopieren nach"-Aktionen

Überspringen Sie, wenn Sie keine "Kopieren nach"-Aktionen implementiert haben.

Der Einfachheit halber wird bei diesen Tests davon ausgegangen, dass Ihre App nur Unterstützung für das Kopieren von Daten in Microsoft Office-Anwendungen wie Microsoft Word, Excel usw. enthält. Sie müssen jedoch jede Kombination überprüfen: jeden unterstützten Copy-to-Speicherort für jeden Ort, an den Ihre App das Kopieren von Daten zulässt.

Installieren Sie für diese Tests Ihre App, integrieren Sie sie in das SDK und melden Sie sich mit einem verwalteten Konto an, bevor Sie mit dem Test beginnen.

Außerdem:

  • Sie haben alle Integrationsschritte von "Kopieren nach"-Aktionen mit einer Aktionserweiterung für Microsoft Word abgeschlossen und die App erfolgreich erstellt und ausgeführt.
  • Legen Sie die Richtlinie des verwalteten Kontos wie folgt fest:
    • "Senden von Organisationsdaten an andere Apps" in "Richtlinienverwaltete Apps".
Szenario Voraussetzungen Schritte
Apps für die Ausnahme auswählen, Keine Richtlinie "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt - Navigieren Sie zu dem Ort, an dem Ihre App Daten nach Microsoft Word kopieren kann, und starten Sie die Freigabeoption für diese Daten.
- Bestätigen Sie, dass anstelle von "In Word kopieren" als Option "In Word öffnen" angezeigt wird.
- Klicken Sie auf "In Word öffnen" und bestätigen Sie, dass das Dokument kopiert und erfolgreich angezeigt wurde, vorausgesetzt, Word ist auch mit demselben verwalteten Konto angemeldet.

Überprüfen von Druckaktionen

Überspringen Sie, wenn Sie das Drucken nicht implementiert haben.

Installieren Sie für diesen Test Ihre App, integrieren Sie sie in das SDK und melden Sie sich mit einem verwalteten Konto an, bevor Sie den Test starten.

Außerdem:

  • Sie haben alle Integrationsschritte vom Drucken bis zum Erstellen und Ausführen der App erfolgreich abgeschlossen.
  • Ihre App implementiert bereits Warnungen/Aktionselemente für den Fall, dass das Drucken vom IT-Administrator der APP nicht zulässig ist. In diesem Test wird davon ausgegangen, dass Ihre App Endbenutzern eine Warnung anzeigt, wenn das Drucken blockiert wird.
Szenario Schritte
Drucken von Organisationsdaten, Block - Navigieren Sie zu dem Ort, an dem Ihre App Daten anzeigen kann, und starten Sie die Freigabeoption für diese Daten.
- Drücken Sie auf "Drucken".
- Vergewissern Sie sich, dass eine Blockierungswarnung angezeigt wird und das Drucken nicht zulässig ist.
Drucken von Organisationsdaten, Zulassen - Navigieren Sie zu dem Ort, an dem Ihre App Daten anzeigen kann, und starten Sie die Freigabeoption für diese Daten.
- Drücken Sie auf "Drucken".
- Bestätigen Sie, dass die Ansicht "Drucken" angezeigt wird und Sie einen Drucker auswählen und die Aktion erfolgreich abschließen können.

Überprüfen des Empfangens von App-Konfigurationen

Überspringen Sie, wenn Sie die gezielte App-Konfiguration für Ihre iOS-Anwendungen nicht aktiviert haben.

Intune ist für die Übermittlung der Richtlinienwerte der App-Konfiguration an Ihre App verantwortlich. Danach ist Ihre App dafür verantwortlich, diese Werte zum Ändern des Verhaltens oder der Benutzeroberfläche innerhalb der App zu verwenden. Gründliche End-to-End-Tests sollten beide Komponenten abdecken.

So überprüfen Sie, ob Intune die App-Konfigurationsrichtlinie ordnungsgemäß bereitstellt:

  1. Konfigurieren Sie eine App-Konfigurationsrichtlinie, die auf Ihre App ausgerichtet ist und in Ihrem Testkonto bereitgestellt wird.
  2. Melden Sie sich mit Ihrem Testkonto bei Ihrer App an.
  3. Navigieren Sie durch Ihre App, um die einzelnen Codepfade appConfigForIdentityauszuführen, die IntuneMAMAppConfigManager.
    • Das Protokollieren der Ergebnisse von Aufrufen appConfigForIdentity ist eine einfache Möglichkeit, um zu überprüfen, welche Einstellungen übermittelt werden. Da Administratoren jedoch beliebige Daten für App-Konfigurationseinstellungen eingeben können, achten Sie darauf, dass Sie keine privaten Benutzerdaten protokollieren.
  4. Weitere Informationen finden Sie unter Überprüfen der angewendeten App-Konfigurationsrichtlinie.

Da App-Konfigurationen App-spezifisch sind, wissen nur Sie, wie Sie überprüfen können, wie Ihre App das Verhalten oder die Benutzeroberfläche für jede App-Konfigurationseinstellung ändern soll.

Berücksichtigen Sie beim Testen Folgendes:

  • Stellen Sie sicher, dass alle Szenarien abgedeckt sind, indem Sie mit jedem Wert, den Ihre App unterstützt, eine andere Test-App-Konfigurationsrichtlinie erstellen.
  • Überprüfen Sie die Konfliktlösungslogik Ihrer App, indem Sie mehrere App-Konfigurationsrichtlinien mit unterschiedlichen Werten für jede Einstellung erstellen.

Nächste Schritte

Wenn Sie diese Anleitung der Reihe nach befolgt und alle oben genannten Beendigungskriterien erfüllt haben – herzlichen Glückwunsch! Ihre App ist jetzt vollständig in das Intune App SDK integriert und kann App-Schutzrichtlinien erzwingen! Bitte sehen Sie sich andere wichtige App-Teilnahmefeatures an, z. B. Phase 5: Multi-Identity,Phase 6: Unterstützung des App-Schutzes für bedingten Zugriff und Phase 7: Webansichtsfeatures , um diese in Ihre App zu integrieren.

Der App-Schutz ist jetzt ein Kernszenario für Ihre App. Lesen Sie dieses Handbuch und den Anhang während der Weiterentwicklung Ihrer App.