Freigeben über


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 als APP- oder MAM-Richtlinien bezeichnet) in Ihre native iOS-App integrieren. Eine Intune verwaltete Anwendung ist eine Anwendung, die in das Intune App SDK integriert ist. Intune Administratoren können App-Schutzrichtlinien ganz einfach für Ihre Intune verwaltete App bereitstellen, wenn Intune die App aktiv verwaltet.

Hinweis

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

Phase 4: Features für die App-Teilnahme

Stage Goals

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

Was sind "App-Teilnahmefeatures"?

Dieser SDK-Integrationsprozess versucht, die Menge an App-spezifischem Code zu minimieren, den Entwickler schreiben müssen. Durch den erfolgreichen Abschluss der vorherigen Phasen der SDK-Integration kann Ihre App nun die meisten App-Schutzrichtlinieneinstellungen erzwingen, z. B. Dateiverschlüsselung, Kopier-/Einfügebeschränkungen, Screenshotsperrung und Datenübertragungseinschränkungen.

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

Features für die App-Teilnahme sind nicht unbedingt optional. Abhängig von den vorhandenen Features Ihrer App sind diese Features möglicherweise erforderlich.

In den nächsten Phasen dieses Leitfadens werden einige wichtige Features für die App-Teilnahme beschrieben:

Im weiteren Verlauf dieses Leitfadens werden die verbleibenden Features für die App-Teilnahme beschrieben:

  • Implementieren zulässiger Konten
  • Implementieren der Dateiverschlüsselung erforderlich
  • Implementieren von "Speichern unter" und "Aus öffnen"-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
  • Postbuildskript

Anpassen des Verhaltens Ihrer App mit APIs

Das Intune App SDK verfügt über mehrere APIs, die Sie aufrufen können, um Informationen über die Intune app-Richtlinie abzurufen, die für die App bereitgestellt wird. Sie können diese Daten verwenden, um das Verhalten Ihrer App anzupassen. Die folgende Tabelle enthält Informationen zu einigen wichtigen Intune Klassen, die Sie verwenden.

Klasse Beschreibung
IntuneMAMPolicyManager.h Die IntuneMAMPolicyManager-Klasse macht die Intune APP-Richtlinie verfügbar, die für die Anwendung bereitgestellt wird. Insbesondere werden APIs verfügbar gemacht, die für die Aktivierung mehrerer Identitä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 diesem Header überprüfen, um zu ermitteln, welche APIs für die Szenarien ihrer Anwendung geeignet 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 schützen. Die Identität kann von Intune 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 schützen. Die Identität kann von Intune oder nicht verwaltet werden, und das SDK wendet die Verschlüsselung entsprechend an.

Implementieren zulässiger Konten

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

Um zulässige Konten abzufragen, sollte die App die allowedAccounts -Eigenschaft für überprüfen IntuneMAMEnrollmentManager. 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 dem IntuneMAMEnrollmentManager instance verwenden, um die Entra-Objekt-ID abzufragen.

Apps können auch auf Änderungen der allowedAccounts Eigenschaft reagieren, indem sie die IntuneMAMAllowedAccountsDidChangeNotification Benachrichtigung beobachten. Die Benachrichtigung wird 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 die Groß-/Kleinschreibung für UPN und OID nicht beachtet werden.
  • Der Identitätsvergleich muss sowohl UPN als auch OID unterstützen.
  • Die Anwendung muss über eine Protokollierung verfügen, um einen Konflikt zwischen dem vom Administrator angegebenen Konto und dem vom Benutzer eingegebenen Konto zu diagnostizieren.

Implementieren der Dateiverschlüsselung erforderlich

Die isFileEncryptionRequired in IntuneMAMPolicy.h definierte API informiert Anwendungen, wenn der IT-Administrator erfordert, dass Anwendungen Intune Verschlüsselung für alle dateien verwenden, die auf dem Datenträger gespeichert sind. Wenn isFileEncryptionRequired true ist, liegt es in der Verantwortung der App sicherzustellen, dass alle dateien, die von der App auf dem Datenträger gespeichert werden, 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 IntuneMAMFDataProtectionManager.hdefinierte Benachrichtigung beobachten.

Implementieren von "Speichern unter" und "Aus öffnen"-Steuerelementen

Intune können IT-Administratoren auswählen, an welchen Speicherorten eine verwaltete App Daten speichern oder öffnen kann. Apps können das Intune MAM SDK nach zulässigen Speicherorten abfragen, indem sie die isSaveToAllowedForLocation:withAccountId: in IntuneMAMPolicy.hdefinierte API verwenden. Apps können das SDK auch mithilfe isOpenFromAllowedForLocation:withAccountId: der API abfragen, die ebenfalls in IntuneMAMPolicy.hdefiniert ist.

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

Hinweis

Am internen Verhalten ab MAM SDK v15.1.0 wurden Änderungen 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 mit ihrem Sandboxspeicher umgehen, kann und sollte diesen Speicherorten eine Identität zugeordnet werden.
  • Ein nil Konto wird nicht mehr als aktuelles Konto für Apps mit nur einer Identität behandelt. Die Übergabe eines Kontos nil in einer App mit nur einer Identität wird jetzt genauso behandelt, als ob es an eine App mit mehreren Identitäten übergeben würde. Wenn Sie eine App mit nur einer Identität entwickeln, verwenden Sie " IntuneMAMPolicys primaryUser ", um auf das aktuelle Konto zu verweisen, wenn es verwaltet wird, und nil um auf das aktuelle Konto zu verweisen, falls es nicht verwaltet wurde.

Behandeln von Speicherszenarien

Vor dem Verschieben von Daten in einen neuen Cloudspeicher oder lokalen Speicherort muss eine App bei 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 bearbeitet und gespeichert werden, müssen nicht mit dieser API überprüft werden.

Hinweis

Das IntuneMAMPolicy -Objekt sollte die Richtlinien des Besitzers der zu speichernden Daten darstellen. Um das IntuneMAMPolicy Objekt einer bestimmten Identität abzurufen, rufen Sie IntuneMAMPolicyManagerdie -Methode von auf policyForAccountId: . Wenn der Besitzer ein nicht verwaltetes Konto ohne Identität ist, nil kann an policyForAccountId:übergeben werden. Auch wenn es sich bei den zu speichernden Daten nicht um Organisationsdaten handelt, isSaveToAllowedForLocation:withAccountId: sollte trotzdem aufgerufen werden. Das Konto, das den Zielspeicherort besitzt, verfügt möglicherweise weiterhin über Richtlinien, die eingehende nicht verwaltete Daten einschränken.

Die isSaveToAllowedForLocation:withAccountId: -Methode akzeptiert zwei Argumente. Das erste Argument ist ein Enumerationswert des in IntuneMAMPolicy.hdefinierten TypsIntuneMAMSaveLocation. 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 definiert sindIntuneMAMPolicy.h:

  • IntuneMAMSaveLocationOneDriveForBusiness– Dieser Speicherort stellt OneDrive for Business Speicherorte dar. Die dem OneDrive-Konto zugeordnete Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMSaveLocationSharePoint– Dieser Speicherort stellt sowohl SharePoint Online- als auch Microsoft Entra lokale SharePoint-Standorte für moderne Hybridauthentifizierung dar. Die dem SharePoint-Konto zugeordnete Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMSaveLocationLocalDrive – Dieser Speicherort stellt einen App-Sandboxspeicher dar, auf den nur die App zugreifen kann. Dieser Speicherort sollte nicht zum Speichern über eine Dateiauswahl oder zum Speichern in Dateien über eine Freigabeerweiterung verwendet werden. Wenn dem App-Sandbox-Speicher eine Identität 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, das besitzer des Containers ist, 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 Speicherort stellt jeden organization Speicherort dar, der zuvor nicht aufgeführt wurde und an ein verwaltetes Konto gebunden werden kann. Das organization Konto, das dem Standort zugeordnet ist, sollte als zweites Argument übergeben werden. Beispielsweise das Hochladen eines Fotos in den BRANCHEN-Clouddienst eines organization, der an das organization-Konto gebunden ist.
  • IntuneMAMSaveLocationOther – Dieser Speicherort stellt alle nicht organisierten, zuvor nicht aufgeführten oder unbekannten Speicherorte dar. Wenn dem Standort ein Konto zugeordnet 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 Den App-Sandboxspeicher verwendet werden, auf den nur die App zugreifen kann. Um zu überprüfen, ob eine Datei über eine Dateiauswahl oder eine andere Methode, auf die in der Datei-App auf die Daten zugegriffen werden kann, im iOS-Gerätespeicher gespeichert werden kann, IntuneMAMSaveLocationOther sollte verwendet werden.

Wenn der Zielspeicherort nicht aufgeführt ist, sollte entweder IntuneMAMSaveLocationAccountDocument oder IntuneMAMSaveLocationOther verwendet werden. Wenn der Speicherort Organisationsdaten enthält, auf die mit dem verwalteten Konto zugegriffen wird (dh. Lob-Clouddienst zum Speichern von Organisationsdaten) IntuneMAMSaveLocationAccountDocument verwendet werden. Wenn der Standort keine Organisationsdaten enthält, sollte der IntuneMAMSaveLocationOther Standort verwendet werden.

Behandeln von 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 in-situ geöffnet werden, müssen nicht mit dieser API überprüft werden.

Hinweis

Das IntuneMAMPolicy -Objekt sollte die Richtlinien der Identität darstellen, die die Daten empfängt. Um das IntuneMAMPolicy Objekt einer bestimmten Identität abzurufen, rufen Sie IntuneMAMPolicyManagerdie -Methode von auf policyForAccountId: . 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: sollte trotzdem aufgerufen werden. Das Konto, das die Daten besitzt, verfügt möglicherweise weiterhin über 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 IntuneMAMPolicy.hdefinierten TypsIntuneMAMOpenLocation. 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 Speicherorte

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

  • IntuneMAMOpenLocationOneDriveForBusiness– Dieser Speicherort stellt OneDrive for Business Speicherorte dar. Die dem OneDrive-Konto zugeordnete Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMOpenLocationSharePoint– Dieser Speicherort stellt sowohl SharePoint Online- als auch Microsoft Entra lokale SharePoint-Standorte für moderne Hybridauthentifizierung dar. Die dem SharePoint-Konto zugeordnete Identität sollte als zweites Argument übergeben werden.
  • IntuneMAMOpenLocationCamera – Diese Position 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. Verwenden Sie IntuneMAMOpenLocationCamerazum Öffnen von Bildern, die direkt von der iOS-Kamera aufgenommen wurden.
  • IntuneMAMOpenLocationLocalStorage – Dieser Speicherort stellt einen App-Sandboxspeicher dar, auf den nur die App zugreifen kann. Dieser Speicherort sollte nicht zum Öffnen von Dateien aus einer Dateiauswahl oder zum Verarbeiten eingehender Dateien aus einer openURL verwendet werden. Wenn dem App-Sandbox-Speicher eine Identität 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, das besitzer des Containers ist, auf den zugegriffen wird, als zweites Argument verwendet werden.
  • IntuneMAMOpenLocationAccountDocument– Dieser Speicherort stellt jeden organization Speicherort dar, der zuvor nicht aufgeführt wurde und an ein verwaltetes Konto gebunden werden kann. Das organization Konto, das dem Standort zugeordnet ist, sollte als zweites Argument übergeben werden. Beispielsweise das Herunterladen eines Fotos aus dem BRANCHEN-Clouddienst eines organization, der an das organization-Konto gebunden ist.
  • IntuneMAMOpenLocationOther – Dieser Speicherort stellt einen nichtorganischen Standort dar, der zuvor nicht aufgeführt wurde, oder einen unbekannten Speicherort. Wenn dem Standort ein Konto zugeordnet ist, sollte es als zweites Argument übergeben werden. Andernfalls nil sollte stattdessen verwendet werden.
Besondere Überlegungen zu offenen Standorten

Der IntuneMAMOpenLocationLocalStorage Speicherort sollte nur für den App-Sandboxspeicher verwendet werden, auf den die App zugreifen kann. Um zu überprüfen, ob eine Datei über den iOS-Gerätespeicher über eine Dateiauswahl oder eine andere Methode geöffnet werden kann, auf die die Daten auch in der Datei-App zugegriffen werden kann, IntuneMAMOpenLocationOther sollte verwendet werden.

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

Behandeln eingehender NSItemProviders und Dateien

Für die Behandlung von NSItemProviders, die von einer Freigabeerweiterung empfangen werden, kann die IntuneMAMPolicy-Methode von canReceiveSharedItemProvider: anstelle von isOpenFromAllowedForLocation:withAccountId:verwendet werden. Die canReceiveSharedItemProvider: -Methode verwendet einen NSItemProvider und gibt zurück, ob er vom IT-Administrator für das Konto des IntuneMAMPolicy Objekts geöffnet werden darf. Das Element muss vor dem Aufrufen dieser Methode geladen werden. Beispielsweise durch Aufrufen loadItemForTypeIdentifier:options:completionHandlervon . Diese Methode kann auch vom Vervollständigungshandler aufgerufen werden, der an den NSItemProvider-Ladeaufruf übergeben wird.

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

Warnung "Freigabe blockiert"

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

Freigeben von Daten über UIActivityViewController

Ab Release 8.0.2 kann das Intune App SDK Aktionen filternUIActivityViewController, sodass nur Intune verwalteten Freigabespeicherorte ausgewählt werden können. Dieses Verhalten wird durch die Richtlinie für die Anwendungsdatenübertragung gesteuert.

Aktionen zum Kopieren in

Beim Freigeben von Dokumenten über UIActivityViewController und UIDocumentInteractionControllerzeigt iOS aktionen "Kopieren in" für jede Anwendung an, die das Öffnen des freigegebenen Dokuments unterstützt. Anwendungen deklarieren die unterstützten Dokumenttypen ü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 verbietet. Als Ersatz müssen Benutzer ihrer Anwendung eine Nicht-UI-Aktionserweiterung hinzufügen und mit dem Intune App SDK verknüpfen. Die Action-Erweiterung ist lediglich ein Stub. Das SDK implementiert das Dateifreigabeverhalten. Führen Sie die folgenden Schritte aus:

  1. Für Ihre Anwendung muss mindestens eine schemeURL unter ihrer Info.plist CFBundleURLTypes definiert sein, zusammen mit ihrer -intunemam Entsprechung. 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 die 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 Funktion Schlüsselbundfreigabe verfügen und die com.microsoft.intune.mam Keychain Gruppe gemeinsam nutzen.

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

  5. Geben Sie ein Vorlagensymbol für die Erweiterung an, wie in der Entwicklerdokumentation von Apple beschrieben. Alternativ kann das IntuneMAMConfigurator-Tool verwendet werden, um diese Bilder aus der Anwendung .app Verzeichnis 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 namens OpenInActionExtension mit dem Wert YES hinzu.

  7. Konfigurieren Sie so, dass NSExtensionActivationRule eine einzelne Datei und alle Typen aus der Anwendung CFBundleDocumentTypes mit dem Präfix com.microsoft.intune.mamunterstützt werden. Wenn die Anwendung beispielsweise 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 Share- oder Action-Erweiterungen 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 hinzu. Beispiel: Die vorhandene Aktivierungsregel 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 der Aktivierungsregel die Intune-Typen hinzuzufügen. Wenn Ihre vorhandene Aktivierungsregel die vordefinierten Zeichenfolgenkonstanten verwendet. Beispielsweise kann die Prädikatsyntax mit NSExtensionActivationSupportsFileWithMaxCount, NSExtensionActivationSupportsText usw. recht komplex werden. Das IntuneMAMConfigurator-Tool kann auch verwendet werden, um die Aktivierungsregel aus den Zeichenfolgenkonstanten in eine Prädikatzeichenfolge zu konvertieren, während die Intune-Typen hinzugefügt werden.

Wie die Benutzeroberfläche aussehen sollte

Alte Benutzeroberfläche:

Freigeben von Daten: Alte iOS-Freigabebenutzeroberfläche

Neue Benutzeroberfläche:

Freigeben von Daten – neue iOS-Freigabebenutzeroberfläche

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

Die MAM-Zielkonfiguration (auch als MAM-App-Konfiguration bezeichnet) ermöglicht es einer App, Konfigurationsdaten über das Intune SDK zu empfangen. 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 und Intune Graph-API als Ziel festlegen und bereitstellen. 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 und nicht über den MDM-Kanal gepusht. Das Intune App SDK stellt eine Klasse für den Zugriff auf die daten bereit, die von diesen Konsolen abgerufen werden. Die folgenden Elemente sind voraussetzungen:

  • Die App muss beim Intune MAM-Dienst registriert werden, bevor Sie auf die BEnutzeroberfläche der MAM-Konfiguration zugreifen. Weitere Informationen finden Sie unter Empfangen von App-Schutzrichtlinien.

  • Fügen Sie IntuneMAMAppConfigManager.h in die Quelldatei Ihrer App ein.

  • Rufen Sie auf [[IntuneMAMAppConfigManager instance] appConfigForAccountId:] , um das App Config-Objekt abzurufen.

  • Rufen Sie den entsprechenden Selektor für das -Objekt auf IntuneMAMAppConfig . Wenn der Schlüssel Ihrer Anwendung beispielsweise eine Zeichenfolge ist, sollten Sie oder allStringsForKeyverwendenstringValueForKey. Eine ausführliche Beschreibung zu Rückgabewerten und Fehlerbedingungen finden Sie IntuneMAMAppConfig.h unter .

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

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

Telemetrie

Standardmäßig erfasst das Intune App SDK für iOS Telemetriedaten für die folgenden Ereignistypen:

  • App-Start: Um Microsoft Intune informationen zur VERWENDUNG von MAM-fähigen Apps nach Verwaltungstyp (MAM mit MDM, MAM ohne MDM-Registrierung usw.) zu erhalten.

  • Registrierungsaufrufe: Um Microsoft Intune informationen zur Erfolgsrate und anderen Leistungsmetriken von Registrierungsaufrufen zu erhalten, die von der Clientseite initiiert wurden.

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

Hinweis

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

Siri-Absichten

Wenn Ihre App in Siri Intents integriert ist oder Siri Intent Donations erstellt, lesen Sie bitte die Kommentare für areSiriIntentsAllowed in IntuneMAMPolicy.h , um Anweisungen zur Unterstützung dieses Szenarios zu erhalten.

Hinweis

In iOS 16 und höher ist ein neues App Intents-Systemframework zum Erstellen von Swift-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 im App-Clip keine verwalteten Daten 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 druckt und eine benutzerdefinierte Druckaktion in einem benutzerdefinierten Menü bereitstellt, stellen Sie sicher, dass Sie verwenden, UIPrintInteractionController.isPrintingAvailable() um zu bestimmen, ob Sie Ihre Druckaktion ihrem benutzerdefinierten Menü hinzufügen sollten.

Benachrichtigungen

Wenn Ihre App Benachrichtigungen empfängt, lesen Sie die Kommentare für notificationPolicy in IntuneMAMPolicy.h , um Anweisungen zur Unterstützung dieses Szenarios zu erhalten. Es wird empfohlen, dass Apps sich für registrieren, die IntuneMAMPolicyDidChangeNotification in beschrieben sindIntuneMAMPolicyManager.h, und diesen Wert über die Keychain an sie 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.

Postbuildskript

Das Befehlszeilentool IntuneMAMFrameworkPatcher muss nicht mehr als letzter Schritt des Anwendungsbuildprozesses 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.

Befehlszeilennutzung

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

Parameter:

  • i, r, : vMit diesem Parameter können Sie die Intune MAM Framework Patcher für den Anwendungsbuildprozess installieren, entfernen oder überprüfen.
  • path: Der path sollte der Stamm des .app Verzeichnisses der Anwendung sein.
  • resign: Die resign Option weist das Tool an, Binärdateien neu zu signieren, die vor dem Patchen der Binärdatei über eine gültige Signatur verfügten. Diese Option sollte verwendet werden, wenn das Projekt Frameworkabhängigkeiten oder Plug-Ins 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 Binärdatei ausgibt, die gepatcht wurde.

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.

Exitkriterien

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

Überspringen Sie diese Option, wenn Sie die Steuerelemente "Speichern unter" und "Aus öffnen" nicht implementiert haben.

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

Der Einfachheit halber wird bei diesen Tests davon ausgegangen, dass Ihre App nur die Unterstützung für das Speichern und Öffnen von Daten aus OneDrive for Business von einem einzelnen Speicherort innerhalb der App umfasst. Sie müssen jedoch jede Kombination überprüfen: Jeder unterstützte Speicherort an jedem Ort, an dem Ihre App Daten speichert, und jeder unterstützte offene Speicherort an jedem Ort, an dem Ihre App Daten öffnen kann.

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 den Test starten.

Außerdem:

  • Legen Sie die Richtlinie des verwalteten Kontos auf Folgendes fest:
    • "Senden von Organisationsdaten an andere Apps" an "Richtlinienverwaltete Apps".
    • "Empfangen von Daten von anderen Apps" in "Richtlinienverwaltete Apps".
Szenario Voraussetzungen Schritte
Speichern unter, vollständig zulässig Richtlinie "Kopien von Organisationsdaten speichern", die auf "Zulassen" festgelegt ist – Navigieren Sie zu dem Ort, an dem Ihre App Daten in OneDrive for Business speichern kann.
– Versuchen Sie, ein Dokument in OneDrive for Business in demselben verwalteten Konto zu speichern, das bei Ihrer App angemeldet ist.
– Vergewissern Sie sich, dass das Speichern zulässig ist.
Speichern in, ausgenommen – Richtlinie "Kopien von Organisationsdaten speichern" auf "Blockieren" festgelegt
– Richtlinie "Benutzer darf Kopien in ausgewählten Diensten speichern" 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 in OneDrive for Business in demselben verwalteten Konto zu speichern, 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 wurde.
Speichern in, blockiert Richtlinie "Kopien von 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 in OneDrive for Business in demselben verwalteten Konto zu speichern, 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 wurde.
Öffnen von, vollständig zulässig Richtlinie "Daten in Organisationsdokumenten öffnen", die auf "Zulassen" festgelegt ist – Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
– Versuchen Sie, ein Dokument aus OneDrive for Business zu öffnen, und dasselbe verwaltete Konto, 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" festgelegt
– Richtlinie "Benutzern das Öffnen von Daten aus ausgewählten Diensten erlauben", die nur auf "OneDrive for Business" festgelegt ist
– Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
– Versuchen Sie, ein Dokument aus OneDrive for Business zu öffnen, und dasselbe verwaltete Konto, 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 Cloudspeicherort zu öffnen, und bestätigen Sie, dass sie blockiert ist.
Geöffnet von, blockiert Richtlinie "Daten in Organisationsdokumenten öffnen", die auf "Blockieren" festgelegt ist – Navigieren Sie zu dem Ort, an dem Ihre App Daten aus OneDrive for Business öffnen kann.
– Versuchen Sie, ein Dokument aus OneDrive for Business zu öffnen, und dasselbe verwaltete Konto, das im Speicher Ihrer App angemeldet ist.
– Vergewissern Sie sich, dass das geöffnete blockiert ist.
– Wenn Ihre App dies zulässt, versuchen Sie, eine andere Datei von einem anderen Cloudspeicherort zu öffnen, und bestätigen Sie, dass sie blockiert ist.

Überprüfen von "Kopieren in"-Aktionen

Überspringen Sie, wenn Sie keine Aktionen zum Kopieren in 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: Jeder unterstützte Kopierspeicherort für jeden Ort, an den Ihre App Daten kopieren kann.

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 den Test starten.

Außerdem:

  • Alle Integrationsschritte der Aktionen "Kopieren in" mit einer Aktionserweiterung für Microsoft Word abgeschlossen und die App erfolgreich erstellt und ausgeführt.
  • Legen Sie die Richtlinie des verwalteten Kontos auf Folgendes fest:
    • "Senden von Organisationsdaten an andere Apps" an "Richtlinienverwaltete Apps".
Szenario Voraussetzungen Schritte
Ausnehmende Apps auswählen, Keine Richtlinie "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt – Navigieren Sie zu dem Speicherort, an dem Ihre App Daten in 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.
– Drücken Sie "In Word öffnen", und vergewissern Sie sich, dass das Dokument kopiert und angezeigt wurde, wenn Word ebenfalls mit demselben verwalteten Konto angemeldet ist.

Überprüfen von Druckaktionen

Überspringen Sie, wenn Sie Printing 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:

  • Alle Integrationsschritte unter Drucken und Erstellen und Ausführen der App wurden erfolgreich abgeschlossen.
  • Ihre App implementiert bereits Warnungen/Aktionselemente, um den Fall zu behandeln, wenn das Drucken vom APP-IT-Administrator nicht zulässig ist. In diesem Test wird vorausgesetzt, dass Ihre App endbenutzer beim Blockieren des Druckens eine Warnung einfordert.
Szenario Schritte
Drucken von Organisationsdaten, Blockieren – Navigieren Sie zu dem Ort, an dem Ihre App Daten anzeigen kann, und starten Sie die Freigabeoption für diese Daten.
– Drücken Sie "Drucken".
– Vergewissern Sie sich, dass eine Blockwarnung 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 "Drucken".
– Bestätigen Sie, dass die Ansicht "Drucken" angezeigt wird, und Sie können einen Drucker auswählen und die Aktion erfolgreich abschließen.

Überprüfen empfangender App-Konfigurationen

Überspringen Sie diese Option, wenn Sie die zielorientierte App-Konfiguration für Ihre iOS-Anwendungen nicht aktivieren.

Intune ist für die Übermittlung der App-Konfigurationsrichtlinienwerte an Ihre App verantwortlich. Anschließend ist Ihre App dafür verantwortlich, diese Werte zu verwenden, um das Verhalten oder die Benutzeroberfläche innerhalb der App zu ändern. 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 für Ihre App gilt, und stellen Sie sie in Ihrem Testkonto bereit.
  2. Melden Sie sich mit Ihrem Testkonto bei Ihrer App an.
  3. Navigieren Sie durch Ihre App, um jeden Codepfad auszuführen, der die von appConfigForIdentityaufruftIntuneMAMAppConfigManager.
    • Die Protokollierung der Ergebnisse von Aufrufen von appConfigForIdentity ist eine einfache Möglichkeit, zu überprüfen, welche Einstellungen übermittelt werden. Da Administratoren jedoch beliebige Daten für App-Konfigurationseinstellungen eingeben können, achten Sie darauf, keine privaten Benutzerdaten zu 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.

Beachten Sie beim Testen Folgendes:

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

Nächste Schritte

Wenn Sie diesen Leitfaden in der richtigen Reihenfolge befolgt und alle oben genannten Exitkriterien erfüllt haben, herzlichen Glückwunsch, Ihre App ist jetzt vollständig in das Intune App SDK integriert und kann App-Schutzrichtlinien erzwingen! Sehen Sie sich weitere wichtige Features für die App-Teilnahme an, z. B. Phase 5: Mehrere Identitäten, Phase 6: Unterstützung für bedingten Zugriff für App-Schutz und Phase 7: Webansichtsfeatures , um diese in Ihre App zu integrieren.

App-Schutz ist jetzt ein Kernszenario für Ihre App. Lesen Sie diesen Leitfaden und den Anhang , während Sie Ihre App weiter entwickeln.