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 von 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 von 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
Etappenziele
- 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:
- Mehrere Identitäten wie in Phase 5: Multi-Identity behandelt.
- App-Schutzzertifizierungsstelle wie in Phase 6: Unterstützung für bedingten Zugriff durch App-Schutz behandelt
- Spezifische Webansichtsfeatures, die in Phase 7: Webansichtsfeatures behandelt werden
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
- 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 zur in der App bereitgestellten Intune APP-Richtlinie abzurufen. 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
Mit 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 beim 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 für die IntuneMAMEnrollmentManager
Instanz 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 die 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.h
und IntuneMAMFDataProtectionManager.h
verschlüsselt werden.
Apps können auf Änderungen in dieser Richtlinie reagieren, indem sie die IntuneMAMDataProtectionDidChangeNotification
in IntuneMAMFDataProtectionManager.h
definierte Benachrichtigung beobachten.
Implementieren von "Speichern unter" und "Aus öffnen"-Steuerelementen
Mit 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 mithilfe isSaveToAllowedForLocation:withAccountId:
der API, die in IntuneMAMPolicy.h
definiert ist, nach zulässigen Speicherspeicherorten abfragen. Apps können das SDK auch mithilfe isOpenFromAllowedForLocation:withAccountId:
der API abfragen, die ebenfalls in IntuneMAMPolicy.h
definiert 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 einnil
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 Kontosnil
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 "IntuneMAMPolicy
sprimaryUser
", um auf das aktuelle Konto zu verweisen, wenn es verwaltet wird, undnil
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 IntuneMAMPolicyManager
die -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.h
definierten 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 sind IntuneMAMPolicy.h
:
-
IntuneMAMSaveLocationOneDriveForBusiness
– Dieser Speicherort stellt OneDrive for Business-Standorte dar. Die dem OneDrive-Konto zugeordnete Identität sollte als zweites Argument übergeben werden. -
IntuneMAMSaveLocationSharePoint
– Dieser Speicherort stellt sowohl lokale SharePoint Online- als auch Microsoft Entra Hybrid Modern Auth SharePoint-Standorte 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 nurnil
als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird. -
IntuneMAMSaveLocationAccountDocument
– Dieser Speicherort stellt alle Zuvor nicht aufgeführten Organisationsstandorte dar, die an ein verwaltetes Konto gebunden werden können. Das dem Standort zugeordnete Organisationskonto sollte als zweites Argument übergeben werden. Beispielsweise das Hochladen eines Fotos in den BRANCHEN-Clouddienst einer Organisation, der an das Organisationskonto 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. Andernfallsnil
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 IntuneMAMPolicyManager
die -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.h
definierten 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 sind IntuneMAMPolicy.h
:
-
IntuneMAMOpenLocationOneDriveForBusiness
– Dieser Speicherort stellt OneDrive for Business-Standorte dar. Die dem OneDrive-Konto zugeordnete Identität sollte als zweites Argument übergeben werden. -
IntuneMAMOpenLocationSharePoint
– Dieser Speicherort stellt sowohl lokale SharePoint Online- als auch Microsoft Entra Hybrid Modern Auth SharePoint-Standorte 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 nurnil
als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird. Verwenden SieIntuneMAMOpenLocationPhotos
zum Ö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 nurnil
als zweites Argument übergeben werden, wenn dieser Speicherort verwendet wird. Verwenden SieIntuneMAMOpenLocationCamera
zum Ö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 alle Zuvor nicht aufgeführten Organisationsstandorte dar, die an ein verwaltetes Konto gebunden werden können. Das dem Standort zugeordnete Organisationskonto sollte als zweites Argument übergeben werden. Beispielsweise das Herunterladen eines Fotos aus dem BRANCHEN-Clouddienst einer Organisation, das an das Organisationskonto 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. Andernfallsnil
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:completionHandler
von . 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 filtern UIActivityViewController
, sodass nur von Intune verwaltete 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 UIDocumentInteractionController
zeigt 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:
Für Ihre Anwendung muss mindestens eine schemeURL unter ihrer Info.plist
CFBundleURLTypes
definiert sein, zusammen mit ihrer-intunemam
Entsprechung. Zum Beispiel:<key>CFBundleURLSchemes</key> <array> <string>launch-com.contoso.myapp</string> <string>launch-com.contoso.myapp-intunemam</string> </array>
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.Sowohl Ihre Anwendung als auch die Aktionserweiterung müssen über die Keychainfreigabefunktion verfügen und die
com.microsoft.intune.mam
Keychaingruppe gemeinsam nutzen.Nennen Sie die Aktionserweiterung "Öffnen in", gefolgt vom Anwendungsnamen. Lokalisieren Sie die Datei "Info.plist" nach Bedarf.
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
Fügen Sie unter IntuneMAMSettings in der Info.plist der Erweiterung eine boolesche Einstellung namens
OpenInActionExtension
mit dem Wert YES hinzu.Konfigurieren Sie so, dass
NSExtensionActivationRule
eine einzelne Datei und alle Typen aus der AnwendungCFBundleDocumentTypes
mit dem Präfixcom.microsoft.intune.mam
unterstü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.mam
dem 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 die Intune-Typen der Aktivierungsregel 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:
Neue Benutzeroberfläche:
Aktivieren der gezielten App-Konfiguration für Ihre iOS-Anwendungen
Die MAM-zielorientierte Konfiguration (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 den Intune-Kunden vom App-Besitzer/Entwickler mitgeteilt werden.
Intune-Administratoren können Konfigurationsdaten über das Microsoft Intune Admin Center und die 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 für die 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 oderallStringsForKey
verwendenstringValueForKey
. Eine ausführliche Beschreibung zu Rückgabewerten und Fehlerbedingungen finden SieIntuneMAMAppConfig.h
unter .
Weitere Informationen zu den Funktionen der Graph-API finden Sie unter Graph-API-Referenz.
Weitere Informationen zum Erstellen einer MAM-Ziel-App-Konfigurationsrichtlinie in iOS finden Sie im Abschnitt zur MAM-Ziel-App-Konfiguration unter Verwenden von 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: Damit Microsoft Intune mehr über die MAM-fähige App-Nutzung nach Verwaltungstyp (MAM mit MDM, MAM ohne MDM-Registrierung usw.) erfahren soll.
Registrierungsanrufe: Damit Microsoft Intune mehr über die Erfolgsquote und andere Leistungsmetriken von clientseitigen Registrierungsaufrufen erfahren kann.
Intune-Aktionen: Um Probleme zu diagnostizieren und die Intune-Funktionalität sicherzustellen, sammeln wir Informationen zu Intune SDK-Aktionen.
Hinweis
Wenn Sie aus Ihrer mobilen Anwendung keine Intune App SDK-Telemetriedaten 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 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.
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 IntuneMAMPolicyDidChangeNotification
registrieren, die in beschrieben sind IntuneMAMPolicyManager.h
, und diesen Wert über den Schlüsselbund 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.h
auf, 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
, :v
Mit diesem Parameter können Sie den Intune MAM Framework Patcher für den Anwendungsbuildprozess installieren, entfernen oder überprüfen. -
path
: Derpath
sollte der Stamm des .app Verzeichnisses der Anwendung sein. -
resign
: Dieresign
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
: Dieverbose
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 unterstützung für das Speichern und Öffnen von Daten in OneDrive for Business von einem einzelnen Speicherort innerhalb der App bietet. 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 | Vorbedingungen | 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 auf OneDrive for Business speichern kann. – Versuchen Sie, ein Dokument auf 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 "Benutzern 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 auf OneDrive for Business speichern kann. – Versuchen Sie, ein Dokument auf 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 auf OneDrive for Business speichern kann. – Versuchen Sie, ein Dokument auf 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 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" festgelegt – 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 aus 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 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 aus demselben verwalteten Konto zu öffnen, 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 aus den Aktionen "Kopieren in" mit einer Aktionserweiterung für Microsoft Word wurden 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 | Vorbedingungen | Schritte |
---|---|---|
Ausnehmende Apps auswählen, Keine | Richtlinie "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt | – Navigieren Sie zu dem Ort, 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 Bereitstellung der App-Konfigurationsrichtlinienwerte für Ihre App verantwortlich. danach 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:
- Konfigurieren Sie eine App-Konfigurationsrichtlinie, die für Ihre App gilt, und stellen Sie sie in Ihrem Testkonto bereit.
- Wenn Ihre App die App-Konfiguration für verwaltete Geräte unterstützt, finden Sie weitere Informationen unter Anwendungskonfigurationsrichtlinien für verwaltete iOS Enterprise-Geräte.
- Wenn Ihre App die App-Konfiguration für verwaltete Apps unterstützt, finden Sie weitere Informationen unter Anwendungskonfigurationsrichtlinien für verwaltete Apps.
- Wenn Ihre App beide Arten von App-Konfigurationen unterstützt, erstellen Sie beide Richtlinientypen zu Testzwecken.
- Melden Sie sich mit Ihrem Testkonto bei Ihrer App an.
- Navigieren Sie durch Ihre App, um jeden Codepfad auszuführen, der die von
appConfigForIdentity
aufruftIntuneMAMAppConfigManager
.- 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.
- Die Protokollierung der Ergebnisse von Aufrufen von
- 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.