Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit dem Microsoft Intune App SDK für Android können Sie Intune App-Schutzrichtlinien (auch als MAM-Richtlinien bezeichnet) in Ihre native Java/Kotlin Android-App integrieren. Eine Intune verwaltete Anwendung kann in das Intune App SDK integriert werden. 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 7: Features für die App-Teilnahme
Etappenziele
- Erfahren Sie mehr über die Features für die App-Teilnahme, die vom Intune App SDK angeboten werden.
- 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 erzwingt Ihre App jetzt die meisten Einstellungen für App-Schutzrichtlinien, z. B. Dateiverschlüsselung, Kopier-/Einfügebeschränkungen, Screenshotblockierung und Datenübertragungseinschränkungen.
Einige Einstellungen erfordern jedoch appspezifischen Code, um ordnungsgemäß zu erzwingen. Diese Einstellungen werden als App-Teilnahmefeatures 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. Weitere Informationen finden Sie unter Wichtige Entscheidungen für die SDK-Integration .
In den vorherigen Phasen dieses Leitfadens werden bereits mehrere Features für die App-Teilnahme beschrieben:
- Mehrere Identitäten wie in Phase 5: Multi-Identity behandelt.
- App-Konfiguration wie in Phase 6: App Configuration beschrieben.
Im weiteren Verlauf dieses Leitfadens werden die verbleibenden Features für die App-Teilnahme beschrieben:
- Erzwingen Sie eine Richtlinie, die das Speichern von Dateien in oder das Öffnen von Dateien aus lokalem oder Cloudspeicher einschränkt.
- Erzwingen Sie eine Richtlinie zur Einschränkung von Inhalten in Benachrichtigungen.
- Erzwingen Sie eine Richtlinie zum Schutz von Sicherungsdaten.
- Erzwingen Sie eine Richtlinie zur Einschränkung der Bildschirmaufnahme (wenn Ihre App über benutzerdefinierten Bildschirmaufnahmecode verfügt).
- Unterstützung der App-Schutzzertifizierungsstelle.
- Registrieren Sie sich für Benachrichtigungen aus dem SDK.
- Wenden Sie benutzerdefinierte Anwendungsdesigns an.
- Verwenden Sie vertrauenswürdige Zertifikate aus Intune, um eine Vertrauenskette für lokale Endpunkte sicherzustellen.
Grundlagen des Features "App-Teilnahme"
Die AppPolicy-Schnittstelle enthält viele Methoden, die Ihre App darüber informieren, ob bestimmte Aktionen zulässig sind.
Die meisten Features für die App-Teilnahme umfassen:
- Identifizieren der richtigen Stelle im Code der App, um zu überprüfen, ob eine Aktion zulässig ist.
- Aufrufen einer
AppPolicyMethode, um basierend auf der aktuell konfigurierten Richtlinie zu überprüfen, ob eine Aktion zulässig ist. - Je nach Ergebnis können Sie entweder den Abschluss der Aktion zulassen oder das App-Verhalten ändern, wenn die Aktion blockiert wird.
Um eine AppPolicy instance abzurufen, verwenden Sie eine der MAMPolicyManager-Methoden, zgetPolicy(final Context context). B. oder getPolicyForIdentityOID(final String oid).
Informationsmethoden in AppPolicy
Nicht jede Methode in AppPolicy ist an eine App-Teilnahmefunktion gebunden.
Einige Methoden sind informativ und geben Ihrer App Daten an, für welche Richtlinien derzeit konfiguriert sind, auch wenn diese Richtlinien automatisch vom SDK erzwungen werden.
Diese Methoden bieten Ihrer App die Möglichkeit, benutzerdefinierte Benutzeroberflächen zu präsentieren, wenn bestimmte Richtlinien konfiguriert sind.
Beispiel: Ermitteln, ob Screenshots blockiert sind
Wenn die App über ein Steuerelement verfügt, mit dem der Benutzer einen Screenshot erstellen kann, sollten Sie erwägen, dieses Steuerelement zu deaktivieren oder auszublenden, wenn die App-Schutzrichtlinie Screenshots blockiert.
Die App kann dies überprüfen, indem sie aufruft MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed().
Richtlinie zum Einschränken der Datenübertragung zwischen Apps und Geräten oder Cloudspeicherorten
Viele Apps ermöglichen es dem Endbenutzer, Daten in lokalem Dateispeicher oder Cloudspeicherdiensten zu speichern oder zu öffnen. Mit dem Intune App SDK können IT-Administratoren vor Dateneingang und Datenlecks schützen, indem sie einschränken, wo Apps Daten speichern und öffnen können.
Hinweis
Wenn Ihre App das Speichern an persönlichen oder Cloudspeicherorten direkt aus der App oder das direkte Öffnen von Daten in der App zulässt, müssen Sie dieses Intune App SDK-App-Teilnahmefeature** implementieren, damit IT-Administratoren dieses Speichern und Öffnen blockieren können.
Speichern im Geräte- oder Cloudspeicher
Die getIsSaveToLocationAllowedForOID API informiert die App basierend auf der konfigurierten Richtlinie, ob das Speichern an bestimmten Speicherorten für eine bestimmte Identität zulässig ist:
MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowedForOID(
SaveLocation service, String oid);
Um zu bestimmen, ob die App die getIsSaveToLocationAllowedForOID Überprüfung implementieren soll, ermitteln Sie anhand der folgenden Tabelle, ob die App ausgehende Daten unterstützt:
service Parameter: SaveLocation Enumerationswert |
Anwendungsfall | Zugeordnete OID |
|---|---|---|
ONEDRIVE |
Die App speichert Daten auf OneDrive. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
SHAREPOINT |
Die App speichert Daten in SharePoint. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
BOX |
Die App speichert Daten in Box. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
LOCAL |
Die App speichert Daten an einem externen Speicherort auf dem Gerät, der nicht der private Speicher der App ist . | Dieser Speicherort gilt nicht als Clouddienst und sollte immer mit einem null OID-Parameter verwendet werden. |
PHOTO_LIBRARY |
Die App speichert Daten im lokalen Android-Fotospeicher. | Der lokale Fotospeicher wird nicht als Clouddienst betrachtet und sollte immer mit einem null OID-Parameter verwendet werden. |
IMANAGE |
Die App speichert Daten in iManage. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
EGNYTE |
Die App speichert Daten in Egnyte. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
ACCOUNT_DOCUMENT |
Die App speichert Daten an einem Speicherort, der einem Konto innerhalb der App zugeordnet ist, und ist keiner der spezifischen Cloudspeicherorte in dieser Tabelle. Verwenden Sie diesen Speicherort, um zu bestimmen, ob Daten zwischen Konten innerhalb einer App mit mehreren Identitäten übergeben werden können. |
Eine OID für ein Konto, das für Microsoft Entra Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
OTHER |
Die App speichert Daten an einem Speicherort, der nicht in dieser Tabelle angegeben ist und die Kriterien für ACCOUNT_DOCUMENTnicht erfüllt. |
Wird oid für diesen Speicherort nicht ausgewertet und sollte sein null. |
Dateien, die sich im privaten App-Speicher befinden und entweder für den App-Betrieb erforderlich oder vorübergehend zur Anzeige heruntergeladen werden, sind immer zulässig. es ist nicht erforderlich, zu überprüfen getIsSaveToLocationAllowedForOID.
Überprüfen Sie, ob SaveLocation.LOCAL
- Dateien, die außerhalb des privaten App-Speichers gespeichert werden.
- In den privaten App-Speicher heruntergeladene Dateien, die für den App-Betrieb nicht erforderlich sind (z. B. wenn der Benutzer explizit auf das Gerät herunterladen möchte).
Hinweis
Wenn Sie die Speicherrichtlinie überprüfen, sollte die OID des Kontos sein, oid das dem Clouddienst zugeordnet ist, in dem gespeichert wird (dieses Konto ist nicht notwendigerweise mit dem Konto identisch, das das zu speichernde Dokument besitzt).
Öffnen von Daten von einem lokalen oder Cloudspeicherort
Die getIsOpenFromLocationAllowedForOID API informiert die App basierend auf der konfigurierten Richtlinie, ob das Öffnen von bestimmten Speicherorten für eine bestimmte Identität zulässig ist:
MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowedForOID(
OpenLocation location, String oid);
Um zu bestimmen, ob die App die getIsOpenFromLocationAllowedForOID Überprüfung implementieren soll, ermitteln Sie anhand der folgenden Tabelle, ob die App den Dateneingang unterstützt:
location Parameter: OpenLocation Enumerationswert |
Anwendungsfall | Zugeordnete OID |
|---|---|---|
ONEDRIVE_FOR_BUSINESS |
Die App öffnet Daten aus OneDrive. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
SHAREPOINT |
Die App öffnet Daten aus SharePoint. | Eine OID für ein Konto, das sowohl für die Clouddienstauthentifizierung als auch für die Microsoft Entra-Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
CAMERA |
Die App öffnet Daten von der Gerätekamera. | Ein null -Wert, da die Gerätekamera kein Clouddienst ist. |
LOCAL |
Die App öffnet Daten von einem externen Speicherort auf dem Gerät, das nicht der private Speicher der App ist . | Obwohl der externe Speicher kein Clouddienst ist, wird ein oid Parameter erwartet, da er den Besitz angibt.• Für mit Identität gekennzeichnete Dateien: oid sollte die Identität des Dateibesitzers sein.• Für Dateien ohne Identitätstag: oid sollte sein null. |
PHOTO_LIBRARY |
Die App öffnet Daten aus dem lokalen Android-Fotospeicher. | Der lokale Fotospeicher wird nicht als Clouddienst betrachtet und sollte immer mit einem null OID-Parameter verwendet werden. |
ACCOUNT_DOCUMENT |
Die App öffnet Daten von einem Standort, der einem Konto innerhalb der App zugeordnet ist, und ist keiner der spezifischen Cloudspeicherorte in dieser Tabelle. Verwenden Sie diesen Speicherort, um zu bestimmen, ob Daten zwischen Konten innerhalb einer App mit mehreren Identitäten übergeben werden können. |
Eine OID für ein Konto, das für Microsoft Entra Authentifizierung verwendet wird. Wenn dieses Konto nicht vorhanden ist oder die OID nicht bekannt ist, verwenden Sie null. |
OTHER |
Die App öffnet Daten von einem Speicherort, der nicht in dieser Tabelle angegeben ist und die Kriterien für ACCOUNT_DOCUMENTnicht erfüllt. |
Wird oid für diesen Speicherort nicht ausgewertet und sollte sein null. |
Hinweis
Wenn Sie die offene Richtlinie überprüfen, sollte die OID des Kontos sein, oid das der Datei oder dem Clouddienst zugeordnet ist, die von geöffnet wird (nicht unbedingt dasselbe wie das Konto, das das Dokument öffnet).
Tipp
Der Einfachheit halber stellt das SDK die -Methode AppPolicy.isOpenFromLocalStorageAllowed bereit, die einen File Parameter für eine Datei im lokalen Speicher akzeptiert.
Für die Richtlinienerzwingung ist diese Methode funktionell identisch mit dem Aufrufen AppPolicy.getIsOpenFromLocationAllowedForOID(OpenLocation.LOCAL, oid) , mit der Ausnahme, dass sie die Analyse des Dateibesitzers oid aus dem Fileverarbeitet.
Dialogfeld "Freigabe blockiert"
Das SDK stellt ein Dialogfeld bereit, um den Benutzer zu benachrichtigen, wenn eine MAM-Richtlinie eine Datenübertragungsaktion blockiert.
Das Dialogfeld sollte dem Benutzer angezeigt werden, wenn der getIsSaveToLocationAllowedForOID API-Aufruf oder getIsOpenFromLocationAllowedForOID dazu führt, dass die Aktion zum Speichern/Öffnen blockiert wird.
Das Dialogfeld zeigt eine generische Meldung an und kehrt beim Schließen zum Aufruf Activity zurück.
Fügen Sie den folgenden Code hinzu, um das Dialogfeld anzuzeigen:
MAMUIHelper.showSharingBlockedDialog(currentActivity)
Dateifreigabe zulassen
Wenn das Speichern an öffentlichen Speicherorten nicht zulässig ist, sollte Ihre App dem Benutzer dennoch das Anzeigen von Dateien ermöglichen, indem sie sie in den privaten App-Speicher herunterladen und dann mit der Systemwährung öffnen.
Richtlinie zum Einschränken von Inhalten in Benachrichtigungen
Bei Apps mit nur einer Identität versucht das Standardverhalten des Intune App SDK, alle Benachrichtigungen zu blockieren, wenn die App-Schutzrichtlinie Benachrichtigungen einschränkt.
Das Standardverhalten des SDK ist eingeschränkt. Das SDK kann den Wert "Organisationsdaten blockieren" nicht automatisch berücksichtigen, der nur verwaltete Inhalte aus Benachrichtigungen entfernen soll. Bei Apps mit mehreren Identitäten kann das SDK nicht ermitteln, welche Benachrichtigungen verwaltete Inhalte enthalten.
Wenn Ihre App Benachrichtigungen anzeigt und es sich entweder um mehrere Identitäten handelt und/oder den Wert "Organisationsdaten blockieren" berücksichtigen muss, muss sie die Benachrichtigungseinschränkungsrichtlinie für das Konto überprüfen, das der Benachrichtigung zugeordnet ist, bevor die Benachrichtigung angezeigt wird.
Führen Sie den folgenden Aufruf aus, um festzustellen, ob die Richtlinie erzwungen wird:
NotificationRestriction notificationRestriction =
MAMPolicyManager.getPolicyForIdentityOID(notificationIdentityOid).getNotificationRestriction();
Die zurückgegebene NotificationRestriction Enumeration weist die folgenden Werte auf:
NotificationRestriction Enumeration |
Erwartetes App-Verhalten |
|---|---|
BLOCKED |
Die App darf keine Benachrichtigungen für das Konto anzeigen, das dieser Richtlinie zugeordnet ist. Bei Apps mit nur einer Identität blockiert das Intune App SDK alle Benachrichtigungen automatisch, und es ist kein zusätzlicher Code erforderlich. |
BLOCK_ORG_DATA |
Die App muss eine geänderte Benachrichtigung anzeigen, die keine organization Daten enthält. |
UNRESTRICTED |
Die App sollte alle Benachrichtigungen anzeigen. |
Wenn Ihre App nicht ordnungsgemäß aufruft getNotificationRestriction, versucht das MAM SDK, Benachrichtigungen automatisch nur für Apps mit einer einzelnen Identität einzuschränken.
In diesem Fall wird gleich behandelt, BLOCK_ORG_DATABLOCKED und die Benachrichtigung wird überhaupt nicht angezeigt.
Um eine präzisere Steuerung zu erhalten, überprüfen Sie den Wert von getNotificationRestriction App-Benachrichtigungen, und ändern Sie sie entsprechend.
Richtlinie zum Schutz von Sicherungsdaten
Das Intune App SDK kann den Datenupload in das integrierte Sicherungs- und Wiederherstellungsfeature von Android blockieren. Weitere Informationen zum Sichern und Wiederherstellen in Android finden Sie im Leitfaden zur Android-API und den in Android S/ 12 eingeführten Änderungen unter Ändern der Sicherung und Wiederherstellung.
Automatische Sicherung für Apps
Ab Android M bietet Android automatische vollständige Sicherungen auf Google Drive für Apps, unabhängig von der Ziel-API der App.
Intune können Sie alle Von Android bereitgestellten Autobackup-Features verwenden, einschließlich der Möglichkeit, benutzerdefinierte Regeln in XML zu definieren, mit spezifischen Intune Integrationsanleitungen, um sicherzustellen, dass der Datenschutz gilt.
Konfigurieren des Sicherungsverhaltens im App-Manifest
Standardmäßig ist auf TRUE festgelegt, android:allowBackup wie unter Aktivieren und Deaktivieren der Sicherung beschrieben.
Wenn die App keine vollständige Sicherungs- und Wiederherstellungsfunktionalität erfordert, legen Sie auf false festandroid:allowBackup.
In diesem Fall ist keine weitere Aktion erforderlich, und Unternehmensdaten verbleiben innerhalb der App.
Wenn Ihre App vollständige Sicherungs- und Wiederherstellungsfunktionen erfordert, legen Sie auf true festandroid:allowBackup, und führen Sie die folgenden Schritte aus:
Wenn Ihre App keine eigene benutzerdefinierte
BackupAgentverwendet, verwenden Sie den Standardmäßigen MAMBackupAgent, um automatische vollständige Sicherungen zu aktivieren, die Intune Richtlinien kompatibel sind. Platzieren Sie Folgendes im App-Manifest:<application ... android:fullBackupOnly="true" android:backupAgent="com.microsoft.intune.mam.client.app.backup.MAMDefaultBackupAgent" ...> </application>Optional. Wenn Sie einen benutzerdefinierten
BackupAgentimplementieren, müssen Sie MAMBackupAgent oder MAMBackupAgentHelper verwenden. Weitere Informationen finden Sie in den folgenden Abschnitten. Erwägen Sie den Wechsel zum MAMDefaultBackupAgent von Intune, der in Schritt 1 beschrieben wird und eine einfache Sicherung unter Android M und höher ermöglicht.Wenn Sie entscheiden, welche Art von vollständiger Sicherung Ihre App erhalten soll (ungefiltert, gefiltert oder keine), legen Sie das Attribut
android:fullBackupContentin Ihrer App auftrue,falseoder eine XML-Ressource fest.Anschließend müssen Sie den Wert für
android:fullBackupContentin das Metadatentag und für Apps, diecom.microsoft.intune.mam.FullBackupContentdas in API 31 hinzugefügte XML-Konfigurationsformat unterstützen, in dascom.microsoft.intune.mam.DataExtractionRulesMetadatentag kopieren.Beispiel 1: Wenn Ihre App vollständige Sicherungen ohne Ausschlüsse haben soll, müssen Sie die Attribute und Metadatentags auf true festlegen:
<application ... android:fullBackupContent="true" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="true" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="true" />Beispiel 2: Wenn Ihre App ihre benutzerdefinierten
BackupAgentund vollständigen, Intune richtlinienkonformen automatischen Sicherungen verwenden soll, müssen Sie die Attribute und Metadatentags auf false festlegen:<application ... android:fullBackupContent="false" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="false" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="false" />Beispiel 3: Wenn Ihre App vollständige Sicherungen gemäß Ihren benutzerdefinierten Regeln haben soll, die in einer XML-Datei definiert sind, legen Sie das Attribut und das Metadatentag auf dieselbe XML-Ressource fest:
<application ... android:fullBackupContent="@xml/my_full_backup_content_scheme" android:dataExtractionRules="@xml/my_data_extraction_rules_scheme" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:resource="@xml/my_full_backup_content_scheme" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:resource="@xml/my_data_extraction_rules_scheme" />
Schlüssel-Wert-Sicherung
Die Option Schlüssel-Wert-Sicherung ist für alle APIs 8 und höher verfügbar und lädt App-Daten in den Android Backup Service hoch. Die Datenmenge pro App ist auf 5 MB beschränkt. Wenn Sie die Schlüssel-Wert-Sicherung verwenden, müssen Sie backupAgentHelper oder BackupAgent verwenden.
BackupAgentHelper
BackupAgentHelper ist einfacher als BackupAgent zu implementieren, sowohl in Bezug auf die native Android-Funktionalität als auch Intune MAM-Integration.
Mit BackupAgentHelper kann der Entwickler ganze Dateien und freigegebene Einstellungen für ein FileBackupHelper und SharedPreferencesBackupHelper registrieren, die dann bei der Erstellung dem BackupAgentHelper hinzugefügt werden.
Führen Sie die folgenden Schritte aus, um backupAgentHelper mit Intune MAM zu verwenden:
Um die Sicherung mit mehreren Identitäten mit einem
BackupAgentHelperzu verwenden, befolgen Sie die Android-Anleitung zum Erweitern von BackupAgentHelper.Lassen Sie Ihre Klasse das MAM-Äquivalent von BackupAgentHelper, FileBackupHelper und SharedPreferencesBackupHelper erweitern.
| Android-Klasse | MAM-Äquivalent |
|---|---|
BackupAgentHelper |
MAMBackupAgentHelper |
FileBackupHelper |
MAMFileBackupHelper |
SharedPreferencesBackupHelper |
MAMSharedPreferencesBackupHelper |
Wenn Sie diese Richtlinien befolgen, können Sie eine erfolgreiche Sicherung und Wiederherstellung mit mehreren Identitäten durchführen.
BackupAgent
Mit einem BackupAgent können Sie viel genauer festlegen, welche Daten gesichert werden. Da der Entwickler für die Implementierung verantwortlich ist, sind weitere Schritte erforderlich, um einen angemessenen Datenschutz vor Intune zu gewährleisten. Da der Großteil der Arbeit an Ihnen als Entwickler liegt, ist Intune Integration etwas mehr involviert.
Integrieren von MAM:
Lesen Sie sorgfältig den Android-Leitfaden für die Schlüssel-Wert-Sicherung und insbesondere das Erweitern von BackupAgent , um sicherzustellen, dass Ihre BackupAgent-Implementierung den Android-Richtlinien entspricht.
Lassen Sie Ihre Klasse MAMBackupAgent erweitern.
Sicherung mit mehreren Identitäten:
Bevor Sie mit der Sicherung beginnen, überprüfen Sie, ob die Dateien oder Datenpuffer, die Sie sichern möchten, vom IT-Administrator in Szenarien mit mehreren Identitäten gesichert werden dürfen. Verwenden Sie
isBackupAllowedin MAMFileProtectionManager und MAMDataProtectionManager , um dieses Verhalten zu bestimmen. Wenn die Datei oder der Datenpuffer nicht gesichert werden darf, sollten Sie sie nicht in Ihre Sicherung einschließen.Wenn Sie irgendwann während der Sicherung die Identitäten für die Dateien sichern möchten, die Sie in Schritt 1 eingecheckt haben, müssen Sie mit den Dateien aufrufen
backupMAMFileIdentity(BackupDataOutput data, File … files), aus denen Sie Daten extrahieren möchten. Diese Methode erstellt automatisch neue Sicherungsentitäten und schreibt sie für Sie in dieBackupDataOutput. Diese Entitäten werden bei der Wiederherstellung automatisch genutzt.
Wiederherstellung mehrerer Identitäten: Der Leitfaden zur Datensicherung gibt einen allgemeinen Algorithmus zum Wiederherstellen der Anwendungsdaten an und enthält ein Codebeispiel im Abschnitt Erweitern von BackupAgent . Um eine erfolgreiche Wiederherstellung mit mehreren Identitäten durchzuführen, müssen Sie der allgemeinen Struktur in diesem Codebeispiel folgen und dabei besonders auf die folgenden Punkte achten:
Sie müssen eine
while(data.readNextHeader())*-Schleife verwenden, um die Sicherungsentitäten zu durchlaufen.Sie müssen aufrufen
data.skipEntityData(), wenndata.getKey()nicht mit dem Schlüssel übereinstimmt, den Sie inonBackupgeschrieben haben. Ohne diesen Schritt sind Die Wiederherstellungen möglicherweise nicht erfolgreich.Vermeiden Sie die Rückgabe bei der Nutzung von Sicherungsentitäten im
while(data.readNextHeader())*-Konstrukt, da alle Entitäten, die wir automatisch schreiben, in diesem Fall verloren gehen.
- Dabei
dataist der name der lokalen Variablen für mamBackupDataInput , den die App bei der Wiederherstellung empfängt.
Benutzerdefinierte Bildschirmaufnahmeeinschränkungen
Wenn Ihre App ein benutzerdefiniertes WindowFeature für die Bildschirmaufnahme enthält, das die Einschränkung auf Android-Ebene FLAG_SECURE umgeht, müssen Sie die Bildschirmaufnahmerichtlinie überprüfen, bevor Sie den Vollzugriff auf das Feature zulassen.
Wenn Ihre App beispielsweise ein benutzerdefiniertes Renderingmodul verwendet, um die aktuelle Ansicht in einer PNG-Datei zu rendern, müssen Sie zuerst überprüfen AppPolicy.getIsScreenCaptureAllowed().
Hinweis
Wenn die App keine benutzerdefinierten oder nicht von Microsoft stammenden Bildschirmaufnahmefeatures enthält, ist keine Aktion erforderlich, um Bildschirmaufnahmen einzuschränken.
Die Bildschirmaufnahmerichtlinie wird automatisch auf der Window Ebene für alle mam-integrierten Apps erzwungen.
Alle Versuche des Betriebssystems oder einer anderen App, eine Window in Ihrer App zu erfassen, werden bei Bedarf blockiert.
Wenn ein Benutzer beispielsweise versucht, den Bildschirm Ihrer App über die integrierten Screenshot- oder Bildschirmaufzeichnungsfeatures von Android zu erfassen, wird die Erfassung automatisch ohne Beteiligung ihrer App eingeschränkt.
Unterstützung der App-Schutzzertifizierungsstelle
Die App-Schutzzertifizierungsstelle (bedingter Zugriff), auch als App-basierte Zertifizierungsstelle bezeichnet, schränkt den Zugriff auf Ressourcen ein. Intune App-Schutzrichtlinien müssen Ihre Anwendung verwalten, bevor sie auf diese Ressourcen zugreifen kann. Microsoft Entra ID erzwingt diese Richtlinie, indem die App sich bei Intune App-Schutzrichtlinien registriert und verwaltet werden muss, bevor ein Token für den Zugriff auf eine durch bedingten Zugriff geschützte Ressource gewährt wird.
Hinweis
Die Unterstützung der App Protection-Zertifizierungsstelle erfordert die Microsoft Authentication Library (MSAL) Version 1.0.0 oder höher.
Behandeln von Nichtkonformität mit MSAL
Wenn die App ein Token für ein Konto abruft, kann die MSAL-Bibliothek eine MsalIntuneAppProtectionPolicyRequiredException zurückgeben oder auslösen, um auf eine Nichtkonformität mit der Verwaltung von App-Schutzrichtlinien hinzuweisen.
Sie können weitere Parameter aus der Ausnahme extrahieren, um die Konformität zu korrigieren (siehe MAMComplianceManager).
Nachdem die Wiederherstellung erfolgreich war, kann die App den Tokenabruf erneut über MSAL versuchen.
MAMComplianceManager
Die MAMComplianceManager-Schnittstelle wird verwendet, wenn der für die Richtlinie erforderliche Fehler von MSAL empfangen wird.
Sie enthält die [remediateCompliance]-Methode, die Sie aufrufen sollten, um zu versuchen, die App in einen konformen Zustand zu versetzen.
Sie können wie folgt einen Verweis auf die MAMComplianceManager abrufen:
MAMComplianceManager mgr = MAMComponents.get(MAMComplianceManager.class);
// make use of mgr
Die MAMComplianceManager zurückgegebene instance ist garantiert nicht null.
package com.microsoft.intune.mam.policy;
public interface MAMComplianceManager {
void remediateCompliance(String upn, String aadId, String tenantId, String authority, boolean showUX);
}
Die remediateCompliance() -Methode versucht, die App unter Verwaltung zu stellen, um die Bedingungen für Microsoft Entra ID zu erfüllen, um das angeforderte Token zu gewähren.
Die ersten vier Parameter können aus der Ausnahme extrahiert werden, die die MSAL-Methode AuthenticationCallback.onError() empfängt.
Der letzte Parameter ist ein boolescher Wert, der steuert, ob während des Konformitätsversuchs eine Benutzeroberfläche angezeigt wird.
remediateCompliance zeigt ein einfaches Blockierungsstatusdialogfeld an, sodass Apps während dieses Vorgangs keine angepassten Benutzeroberflächen anzeigen müssen.
Dieses Dialogfeld wird nur angezeigt, während die Konformitätskorrektur ausgeführt wird. Das Endergebnis wird nicht angezeigt.
Ihre App kann einen Empfänger für die COMPLIANCE_STATUS Benachrichtigung registrieren, um den Erfolg oder Fehler des Konformitätsbehebungsversuchs zu behandeln.
Weitere Informationen finden Sie unter Compliance status Benachrichtigungen.
remediateCompliance() kann eine MAM-Registrierung im Rahmen der Compliance-Einrichtung initiieren.
Die App erhält möglicherweise eine Registrierungsbenachrichtigung, wenn sie einen Benachrichtigungsempfänger für Registrierungsbenachrichtigungen registriert hat.
Die registrierte MAMServiceAuthenticationCallback -Methode der App wird acquireToken() aufgerufen, um ein Token für die Registrierung abzurufen.
acquireToken() wird aufgerufen, bevor die App ihr eigenes Token abruft. Alle Buchhaltungs- oder Kontoerstellungsaufgaben, die die App nach einem erfolgreichen Tokenabruf ausführt, wurden möglicherweise noch nicht ausgeführt.
Der Rückruf muss in diesem Fall in der Lage sein, ein Token abzurufen.
Wenn Sie kein Token von acquireToken()zurückgeben können, schlägt der Konformitätsbehebungsversuch fehl.
Wenn Sie später mit einem gültigen Token für die angeforderte Ressource aufrufen updateToken , wird die Konformitätskorrektur sofort mit dem angegebenen Token fortgesetzt.
Hinweis
Der automatische Tokenabruf in ist weiterhin möglich acquireToken() , da der Benutzer bereits angeleitet wurde, den Broker zu installieren und das Gerät zu registrieren, bevor die MsalIntuneAppProtectionPolicyRequiredException Ausnahme auftritt.
Dieser Prozess führt dazu, dass der Broker ein gültiges Aktualisierungstoken im Cache hat, sodass der Broker das angeforderte Token automatisch abrufen kann.
Im Folgenden finden Sie ein Beispiel, das den richtlinienrelevanten Fehler in der AuthenticationCallback.onError() -Methode empfängt und mamComplianceManager aufruft, um den Fehler zu behandeln.
public void onError(@Nullable MsalException exc) {
if (exc instanceof MsalIntuneAppProtectionPolicyRequiredException) {
final MsalIntuneAppProtectionPolicyRequiredException policyRequiredException =
(MsalIntuneAppProtectionPolicyRequiredException) ex;
final String upn = policyRequiredException.getAccountUpn();
final String aadId = policyRequiredException.getAccountUserId();
final String tenantId = policyRequiredException.getTenantId();
final String authority = policyRequiredException.getAuthorityURL();
MAMComplianceManager complianceManager = MAMComponents.get(MAMComplianceManager.class);
complianceManager.remediateCompliance(upn, aadId, tenantId, authority, showUX);
}
}
Benachrichtigungen zu Compliance-status
Wenn sich die App für Benachrichtigungen vom Typ COMPLIANCE_STATUSregistriert, sendet das System eine , MAMComplianceNotification um die App über den letzten status des Konformitätskorrekturversuchs zu informieren.
Ausführliche Informationen zur Registrierung finden Sie unter Registrieren von Benachrichtigungen aus dem SDK .
public interface MAMComplianceNotification extends MAMUserNotification {
MAMCAComplianceStatus getComplianceStatus();
String getComplianceErrorTitle();
String getComplianceErrorMessage();
}
Die getComplianceStatus() Methode gibt das Ergebnis des Konformitätskorrekturversuchs als Wert aus der [MAMCAComplianceStatus]-Enumeration zurück.
| Statuscode | Erklärung |
|---|---|
UNKNOWN |
Der Status ist unbekannt. Diese status könnte auf einen unerwarteten Fehlergrund hinweisen. Weitere Informationen finden Sie in den Unternehmensportal Protokollen. |
COMPLIANT |
Die Konformitätskorrektur war erfolgreich, und die App ist jetzt mit der Richtlinie konform. Der MSAL-Tokenabruf sollte wiederholt werden. |
NOT_COMPLIANT |
Fehler beim Versuch, die Konformität zu korrigieren. Die App ist nicht konform, und der MSAL-Tokenabruf sollte erst wiederholt werden, wenn die Fehlerbedingung korrigiert wurde. Enthält MAMComplianceNotification zusätzliche Fehlerinformationen. |
SERVICE_FAILURE |
Fehler beim Abrufen von Konformitätsdaten aus dem Intune Dienst. Weitere Informationen finden Sie in den Unternehmensportal Protokollen. |
NETWORK_FAILURE |
Fehler beim Herstellen der Verbindung mit dem Intune-Dienst. Die App sollte den Tokenabruf wiederholen, wenn die Netzwerkverbindung wiederhergestellt wird. |
CLIENT_ERROR |
Der Versuch, die Konformität zu beheben, ist aufgrund eines clientbezogenen Problems fehlgeschlagen, z. B. fehlendes oder falsches Benutzertoken. Enthält MAMComplianceNotification weitere Fehlerinformationen. |
PENDING |
Der Versuch, die Konformität zu korrigieren, schlägt fehl, da der Dienst die status Antwort nicht sendet, bevor das Zeitlimit abläuft. Die App sollte den Tokenabruf später erneut versuchen. |
COMPANY_PORTAL_REQUIRED |
Die Unternehmensportal muss auf dem Gerät installiert sein, damit die Konformitätskorrektur erfolgreich ist. Wenn sie bereits installiert ist, muss die App neu gestartet werden. In einem Dialogfeld wird der Benutzer aufgefordert, die App neu zu starten. |
Wenn die Compliance-status istMAMCAComplianceStatus.COMPLIANT, sollte die App ihren ursprünglichen Tokenerwerb (für ihre eigene Ressource) erneut aktivieren.
Wenn beim Versuch zur Konformitätskorrektur ein Fehler aufgetreten ist, geben die Methoden und lokalisierte Zeichenfolgen zurück, die die App dem Endbenutzer anzeigen kann, wenn sie dies auswäht.If the compliance remediation attempt failed, the getComplianceErrorTitle() methods and getComplianceErrorMessage() methods returnized strings that the app can display to the endbenutzer if it chooses.
Die App kann die meisten Fehlerfälle nicht beheben. Im Allgemeinen schlägt die Kontoerstellung oder Anmeldung fehl, und der Benutzer kann es später erneut versuchen.
Wenn ein Fehler dauerhaft ist, können die Unternehmensportal Protokolle helfen, die Ursache zu ermitteln. Der Endbenutzer kann die Protokolle übermitteln. Weitere Informationen finden Sie unter Hochladen und E-Mail-Protokolle.
Hier sehen Sie ein Beispiel für die Registrierung eines Empfängers mithilfe einer anonymen Klasse zum Implementieren der MAMNotificationReceiver-Schnittstelle:
final MAMNotificationReceiverRegistry notificationRegistry = MAMComponents.get(MAMNotificationReceiverRegistry.class);
// create a receiver
final MAMNotificationReceiver receiver = new MAMNotificationReceiver() {
public boolean onReceive(MAMNotification notification) {
if (notification.getType() == MAMNotificationType.COMPLIANCE_STATUS) {
MAMComplianceNotification complianceNotification = (MAMComplianceNotification) notification;
// take appropriate action based on complianceNotification.getComplianceStatus()
// unregister this receiver if no longer needed
notificationRegistry.unregisterReceiver(this, MAMNotificationType.COMPLIANCE_STATUS);
}
return true;
}
};
// register the receiver
notificationRegistry.registerReceiver(receiver, MAMNotificationType.COMPLIANCE_STATUS);
Hinweis
Sie müssen den Benachrichtigungsempfänger registrieren, bevor Sie aufrufen remediateCompliance() , um eine Racebedingung zu vermeiden, die dazu führen kann, dass die Benachrichtigung fehlt.
Deklarieren der Unterstützung für die App-Schutzzertifizierungsstelle
Sobald Ihre App für die Wartung der App-Zertifizierungsstelle bereit ist, können Sie Microsoft Identity mitteilen, dass Ihre App für die App-Zertifizierungsstelle bereit ist. Erstellen Sie dazu in der MSAL-Anwendung den öffentlichen Client mit den Clientfunktionen von "protapp".
{
"client_id" : "[YOUR_CLIENT_ID]",
"authorization_user_agent" : "DEFAULT",
"redirect_uri" : "[YOUR_REDIRECT_URI]",
"multiple_clouds_supported":true,
"broker_redirect_uri_registered": true,
"account_mode": "MULTIPLE",
"client_capabilities": "protapp",
"authorities" : [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
}
}
]
}
Fahren Sie nach Abschluss der Schritte mit Überprüfen der App-Schutzzertifizierungsstelle fort.
Implementierungshinweise
Hinweis
Die -Methode der MAMServiceAuthenticationCallback.acquireToken() App sollte false für das forceRefresh Flag an acquireTokenSilentAsync()übergeben.
AcquireTokenSilentParameters acquireTokenSilentParameters =
builder.withScopes(Arrays.asList(scopes))
.forceRefresh(false)
.build();
acquireTokenSilentAsync(acquireTokenSilentParameters);
Hinweis
Wenn Sie während des Korrekturversuchs eine benutzerdefinierte blockierende UX anzeigen möchten, sollten Sie false für den showUX-Parameter an remediateCompliance()übergeben.
Sie müssen sicherstellen, dass Sie Ihre Benutzeroberfläche anzeigen und zuerst Ihren Benachrichtigungslistener registrieren, bevor Sie aufrufen remediateCompliance().
Dadurch wird eine Racebedingung verhindert, bei der die Benachrichtigung verpasst werden kann, wenn remediateCompliance() schnell ein Fehler auftritt.
Beispielsweise ist die - oder onMAMCreate() -onCreate()Methode einer Activity-Unterklasse der ideale Ort, um den Benachrichtigungslistener zu registrieren und dann aufzurufenremediateCompliance().
Die Parameter für remediateCompliance() können als Absichts-Extras an Ihre Benutzeroberfläche übergeben werden.
Wenn die Konformitäts-status Benachrichtigung empfangen wird, können Sie das Ergebnis anzeigen oder die Aktivität beenden.
Hinweis
remediateCompliance() registriert das Konto und versucht die Registrierung. Sobald das Haupttoken abgerufen wurde, ist der Aufruf registerAccountForMAM() nicht mehr erforderlich, aber dies schadet nicht.
Wenn die App andererseits ihr Token nicht abruft und das Benutzerkonto entfernen möchte, muss sie aufrufen unregisterAccountForMAM() , um das Konto zu entfernen und Wiederholungen der Hintergrundregistrierung zu verhindern.
Registrieren für Benachrichtigungen aus dem SDK
Im Intune App SDK-Leitfaden werden mehrere Szenarien erläutert, in denen Ihre App möglicherweise für Benachrichtigungen vom SDK registriert werden muss, z. B.:
- Behandlung von Apps mit
WRONG_USERmehreren Identitäten (siehe Verwaltete und nicht verwaltete Identitäten) - Behandlung von Apps mit
MANAGEMENT_REMOVEDmehreren Identitäten (siehe Schutz von Datenpuffern). - Apps mit mehreren Identitäten, die oder
WIPE_USER_AUXILIARY_DATAbehandelnWIPE_USER_DATA(siehe Selektives Zurücksetzen). - Apps, die die Behandlung
REFRESH_APP_CONFIGvon App-Konfigurationen implementieren (siehe Abrufen der App-Konfiguration aus dem SDK).
In diesem Abschnitt werden alle Arten von Benachrichtigungen beschrieben, die das SDK senden kann, wann und warum Ihre Anwendung darauf lauschen möchte und wie ein Benachrichtigungsempfänger implementiert wird.
Arten von Benachrichtigungen
Alle SDK-Benachrichtigungen implementieren die MAMNotification-Schnittstelle , die über eine einzelne Funktion verfügt, getType()die eine MAMNotificationType-Enumeration zurückgibt.
Die meisten Benachrichtigungen sind MAMUserNotification-Instanzen , die spezifische Informationen für eine einzelne Identität bereitstellen. Die OID der Identität kann über die getUserOid() -Funktion abgerufen werden, und der UPN der Identität kann über getUserIdentity()abgerufen werden.
MAMEnrollmentNotification und MAMComplianceNotification erweitern MAMUserNotificationweiter, die Ergebnisse für Versuche, einen Benutzer oder ein Gerät beim MAM-Dienst zu registrieren, sowie Ergebnisse für Versuche, die Konformität für die App-Schutzzertifizierungsstelle zu korrigieren, enthält.
| Benachrichtigungstyp | Benachrichtigungsklasse | Grund für die Benachrichtigung | Anwendbarkeit | Tipps für die Handhabung | Threadinformationen |
|---|---|---|---|---|---|
COMPLIANCE_STATUS |
MAMComplianceNotification |
Gibt das Ergebnis eines Konformitätskorrekturversuchs zurück. | Apps, die die App-Schutzzertifizierungsstelle implementieren, müssen dies verarbeiten. | – | Nicht deterministisch |
MAM_ENROLLMENT_RESULT |
MAMEnrollmentNotification |
Gibt das Ergebnis eines Registrierungsversuchs zurück. | Alle Apps erhalten dies. | – | Nicht deterministisch |
MANAGEMENT_REMOVED |
MAMUserNotification |
Die App wird dabei, nicht mehr verwaltet zu werden. | Apps, die verwenden MAMDataProtectionManager , müssen dies verarbeiten. |
Siehe MANAGEMENT_REMOVED. | Nie im UI-Thread |
REFRESH_APP_CONFIG |
MAMUserNotification |
Die App-Konfigurationswerte haben sich möglicherweise geändert. | Apps, die die App-Konfiguration implementieren und App-Konfigurationsdaten zwischenspeichern, müssen dies verarbeiten. | Apps müssen alle zwischengespeicherten App-Konfigurationsdaten für ungültig erklären und aktualisieren. | Nicht deterministisch |
REFRESH_POLICY |
MAMUserNotification |
App-Schutz Richtlinie hat sich möglicherweise geändert. | Apps, die App-Schutzrichtlinie zwischenspeichern, müssen dies verarbeiten. | Apps müssen zwischengespeicherte App-Schutzrichtliniendaten für ungültig erklären und aktualisieren. | Nicht deterministisch |
WIPE_USER_DATA |
MAMUserNotification |
Die Zurücksetzung wird gerade ausgeführt (*). | Apps, die verwenden MAMDataProtectionManager , müssen dies oderWIPE_USER_AUXILIARY_DATA verarbeiten. |
Weitere Informationen finden Sie unter Selektives Zurücksetzen. | Nie im UI-Thread |
WIPE_USER_AUXILIARY_DATA |
MAMUserNotification |
Die Zurücksetzung wird gerade ausgeführt (*). | Nur Apps mit mehreren Identitäten erhalten dies. Apps, die verwenden MAMDataProtectionManager , müssen dies oderWIPE_USER_DATA verarbeiten. |
Weitere Informationen finden Sie unter Selektives Zurücksetzen. | Nie im UI-Thread |
WIPE_COMPLETED |
MAMUserNotification |
Zurücksetzen wurde abgeschlossen. | Optional für alle Apps. | Wird nach WIPE_USER_DATA oder geliefert WIPE_USER_AUXILIARY_DATA.Wenn die App einen Fehler über ihren Zurücksetzungshandler meldet, wird diese Benachrichtigung nicht gesendet. |
Nie im UI-Thread |
(*) Zurücksetzungen können aus verschiedenen Gründen auftreten, z. B.:
- Ihre App hat unregisterAccountForMAM aufgerufen.
- Ein IT-Administrator hat eine Remotezurücksetzung initiiert.
- Admin erforderlichen Richtlinien für bedingten Zugriff wurden nicht erfüllt.
Warnung
Eine App sollte sich niemals sowohl für die WIPE_USER_DATAWIPE_USER_AUXILIARY_DATA Benachrichtigungen als auch für die Benachrichtigungen registrieren.
MANAGEMENT_REMOVED
Die MANAGEMENT_REMOVED Benachrichtigung informiert die App darüber, dass ein zuvor richtlinienverwaltetes Konto nicht verwaltet wird.
Nachdem das Konto nicht verwaltet wurde, kann die App die verschlüsselten Dateien dieses Kontos nicht mehr lesen, die Daten des Kontos, die mit MAMDataProtectionManagerverschlüsselt sind, nicht mehr lesen, mit der verschlüsselten Zwischenablage interagieren oder anderweitig am Ökosystem der verwalteten App teilnehmen.
Dies erfordert weder das Löschen von Benutzerdaten noch das Abmelden des Benutzers (wenn eine Zurücksetzung erforderlich wäre, würde eine WIPE_USER_DATA Benachrichtigung gesendet werden).
Viele Apps müssen diese Benachrichtigung möglicherweise nicht verarbeiten, aber Apps, die verwenden MAMDataProtectionManager , müssen dies verarbeiten.
Weitere Informationen finden Sie unter Datenpufferschutz .
Wenn das SDK den Empfänger der App MANAGEMENT_REMOVED aufruft, gilt Folgendes:
Das SDK hat bereits zuvor verschlüsselte Dateien (aber keine geschützten Datenpuffer) entschlüsselt, die zur App gehören. Dateien an öffentlichen Speicherorten auf dem SD-Karte, die nicht direkt zur App gehören (z. B. die Ordner Dokumente oder Download), werden nicht entschlüsselt.
Alle neuen Dateien oder geschützten Datenpuffer, die die Empfängermethode erstellt (oder jeder andere Code, der nach dem Starten des Empfängers ausgeführt wird) werden nicht verschlüsselt.
Die App hat weiterhin Zugriff auf Verschlüsselungsschlüssel, sodass Vorgänge wie das Entschlüsseln von Datenpuffern erfolgreich sind.
Nachdem der Empfänger Ihrer App zurückgegeben wurde, hat sie keinen Zugriff mehr auf Verschlüsselungsschlüssel.
Implementieren von MAMNotificationReceiver
Um sich für Benachrichtigungen aus dem SDK zu registrieren, muss Ihre App einen MAMNotificationReceiver erstellen und bei MAMNotificationReceiverRegistry registrieren.
Rufen registerReceiver Sie zum Registrieren des Empfängers mit Ihrem Empfänger und dem gewünschten Benachrichtigungstyp in Ihrer Application.onCreate Methode auf:
@Override
public void onCreate() {
super.onCreate();
MAMComponents.get(MAMNotificationReceiverRegistry.class)
.registerReceiver(
new ToastNotificationReceiver(),
MAMNotificationType.WIPE_USER_DATA);
}
Die MAMNotificationReceiver-Implementierung Ihrer App muss die onReceive(MAMNotification notification) -Methode enthalten.
Diese Methode ruft für jede empfangene Benachrichtigung einzeln auf und muss eine booleanzurückgeben.
Im Allgemeinen sollte diese Methode immer zurückgeben true, es sei denn, Ihre Anwendung hat einen Fehler gefunden, der auf eine Benachrichtigung reagiert hat.
Wie bei anderen Arten von Android-Empfängern verfügt Ihre Anwendung über Flexibilität bei der Verarbeitung von Benachrichtigungen:
- Er kann unterschiedliche MAMNotificationReceiver-Implementierungen für unterschiedliche Benachrichtigungstypen erstellen. Registrieren Sie in diesem Fall jede Implementierung und jeden Benachrichtigungstyp separat.
- Sie kann eine einzelne MAMNotificationReceiver-Implementierung verwenden, die Logik für die Reaktion auf mehrere verschiedene Benachrichtigungstypen enthält. In diesem Fall muss er für jeden Benachrichtigungstyp registriert werden, auf den er reagieren kann.
- Es können mehrere MAMNotificationReceiver-Implementierungen erstellt werden, die jeweils auf denselben Benachrichtigungstyp reagieren. In diesem Fall müssen beide beim gleichen Benachrichtigungstyp registriert werden.
Tipp
Es ist sicher, in zu blockieren MAMNotificationReceiver.onReceive , da der Rückruf nicht im UI-Thread ausgeführt wird.
Benutzerdefinierte Designs
Für das Intune App SDK kann ein benutzerdefiniertes Design bereitgestellt werden. Dieses benutzerdefinierte Design gilt für alle SDK-Bildschirme und -Dialoge. Wenn kein Design bereitgestellt wird, wird das STANDARD-SDK-Design verwendet.
Bereitstellen eines benutzerdefinierten Designs
Um ein Design bereitzustellen, fügen Sie die folgende Codezeile in der Application.onMAMCreate -Methode hinzu:
MAMThemeManager.setAppTheme(R.style.AppTheme);
Ersetzen Sie R.style.AppTheme im Beispiel durch das Stildesign, das das SDK anwenden soll.
Verwaltung vertrauenswürdiger Stammzertifikate
Wenn die Anwendung SSL-/TLS-Zertifikate erfordert, die von einer lokalen oder privaten Zertifizierungsstelle ausgestellt wurden, um sicheren Zugriff auf interne Websites und Anwendungen zu ermöglichen, hat das Intune App SDK Unterstützung für die Zertifikatvertrauensverwaltung mit den API-Klassen MAMTrustedRootCertsManager und MAMCertTrustWebViewClient hinzugefügt.
Hinweis
MAMCertTrustWebViewClient unterstützt Android 10 oder höher.
Die Verwaltung vertrauenswürdiger Stammzertifikate bietet Unterstützung für:
- SSLContext
- SSLSocketFactory
- TrustManager
- WebView
Anforderungen
- Für die Verwaltung vertrauenswürdiger Stammzertifikate ist eine Microsoft Tunnel for Mobile Application Management-Lizenz erforderlich. Weitere Informationen finden Sie unter Microsoft Tunnel mit mobiler Anwendungsverwaltung.
- Konfigurieren Sie Intune App Configuration Richtlinien, um vertrauenswürdige Stammzertifikate für Branchen-Apps und Microsoft Edge unter Android bereitzustellen. Weitere Informationen finden Sie unter Verwenden von Microsoft Tunnel-VPN mit Android-Geräten, die sich nicht bei Microsoft Intune registrieren.
Hinweis
Die Verwaltung vertrauenswürdiger Stammzertifikate kann unabhängig von der Microsoft Tunnel-VPN Gateway verwendet werden, aber Sie müssen Microsoft MAM Tunnel für die Verwendung lizenzieren.
Verwenden von vertrauenswürdigen Stammzertifikaten aus Intune zum Einrichten von Vertrauensankern
Mit der Verwaltung vertrauenswürdiger Stammzertifikate kann Ihre App vertrauenswürdige Stammzertifikate aus Intune in Kombination mit Zertifikaten vom Gerät verwenden.
Die API-Klassen MAMTrustedRootCertsManager und MAMCertTrustWebViewClient verwenden die Intune vertrauenswürdigen Stammzertifikate, die über App Configuration Policy übermittelt werden, als Fallbackoption, wenn die vertrauenswürdigen Stammzertifikatspeicher des Geräts nicht die erforderlichen vertrauenswürdigen Stammzertifikate enthalten, um eine sichere Verbindung mit lokalen Ressourcen herzustellen. Auf diese Weise kann die App sowohl Gerätezertifikate als auch Intune Zertifikate verwenden, um sichere Verbindungen und die Kommunikation mit vertrauenswürdigen Quellen zu überprüfen.
Um die Netzwerksicherheitseinstellungen zu verbessern, kann eine App die XML-Datei für die Netzwerksicherheitskonfiguration verwenden. Die Verwaltung vertrauenswürdiger Stammzertifikate berücksichtigt diese zusätzliche Sicherheit, indem überprüft wird, ob die Xml-Datei für die Netzwerksicherheitskonfiguration der App über eines der folgenden Features verfügt:
- Benutzerdefinierte Vertrauensanker mit zusätzlichen Zertifizierungsstellen, z. B. selbstsignierten Zertifikaten.
- Domänenspezifische Regeln zum Einschränken vertrauenswürdiger Zertifizierungsstellen.
- Anheften von Zertifikaten für bestimmte Domänen.
Hinweis
Weitere Informationen zur Android-Netzwerksicherheitskonfiguration finden Sie unter Netzwerksicherheitskonfiguration.
Wenn eines davon für eine Domäne gilt, die auf Vertrauenswürdigkeit überprüft wird, überspringt die Verwaltung von vertrauenswürdigen Stammzertifikaten die benutzerdefinierten Vertrauensprüfungen für diese Domäne und lässt nur die Standardvertrauensstellungs-Manager der Plattform die Überprüfungen durchführen.
Klasse MAMTrustedRootCertsManager
Diese Klasse stellt die folgenden APIs bereit:
-
createSSLContextForOID(String oid, String protocol): Erstellt einSSLContext-Objekt, das vertrauenswürdige Stammzertifikate für die angegebene Identität und das angegebene SSL/TLS-Protokoll verwendet. Das von dieser Klasse zurückgegebeneSSLContextObjekt wurde bereits ordnungsgemäß mitX509TrustManagerObjekten initialisiert, die die kombinierten vertrauenswürdigen Stammzertifikate des Geräts und des MAM-Diensts verwenden. -
createSSLSocketFactoryForOID(String oid, String protocol): Erstellt einSSLSocketFactory-Objekt, das vertrauenswürdige Stammzertifikate für die angegebene Identität und das angegebene SSL/TLS-Protokoll verwendet. Auf das zurückgegebeneSSLSocketFactoryObjekt wird vom gleichenSSLContextObjekt in dieser Klasse verwiesen. -
createX509TrustManagersForOID(String oid): Erstellt ein Array vonX509TrustManager-Objekten, die die kombinierten vertrauenswürdigen Stammzertifikate des Geräts und des MAM-Diensts für die angegebene Identität verwenden.
Hinweis
Es oid wird erwartet, dass der Parameter die Microsoft Entra Benutzer-ID (OID) für einen bestimmten Benutzer ist, der die Anwendung ausführt. Wenn der Benutzerbezeichner vorher unbekannt ist, können Sie den Wert null übergeben, und MAM versucht, die richtige Identität aus dem Thread oder Prozess zu ermitteln, in dem diese APIs aufgerufen werden. Die Identität muss für den Prozess oder Thread ordnungsgemäß festgelegt werden, damit MAM die Identität ermitteln kann. Weitere Informationen zum Festlegen der aktiven Identität in einem Prozess oder Thread finden Sie unter Phase 5: Multi-Identity.
Hinweis
Wenn der protocol Parameter nicht angegeben wird, verwendet die Plattform das höchste unterstützte SSL/TLS-Protokoll.
Im Folgenden finden Sie einige Beispiele für die Verwendung dieser Klasse.
Beispiel für die Verwendung von HttpsUrlConnection
// Create an SSL socket factory using supplying the optional parameters identity and protocol
SSLSocketFactory sslSocketFactory = MAMTrustedRootCertsManager.createSSLSocketFactoryForOID(oid, "TLSv1.3");
// Create a URL object for the desired endpoint
URL url = new URL("https://example.com");
// Open a connection using the URL object
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
// Set the SSL socket factory for the connection
httpsURLConnection.setSSLSocketFactory(sslSocketFactory);
// Perform any other configuration or operations on the connection as needed
...
Beispiel für die Verwendung von OkHttpClient
// Get the TrustManager instances for an identity from the SDK
TrustManager[] trustManagers = MAMTrustedRootCertsManager.createX509TrustManagersForOID(oid);
// Get SSLContext from the platform
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");
// Initialize the SSLContext with the trust managers from the Intune App SDK
sslContext.init(null, trustManagers, null);
// Create an OkHttpClient.Builder object
OkHttpClient.Builder builder = new OkHttpClient.Builder();
// Set the SSLSocketFactory and the trust managers from the SDK
builder.sslSocketFactory(sslContext.socketFactory, trustManagers[0] as X509TrustManager).build();
// Build an OkHttpClient object from the builder
OkHttpClient okHttpClient = builder.build();
// Create a Request object for the desired endpoint
Request request = new Request.Builder().url("https://example.com").build();
// Execute the request using the OkHttpClient object and get a Response object
Response response = okHttpClient.newCall(request).execute();
// Perform any other operations on the response as needed
...
Klasse MAMCertTrustWebViewClient
Diese Klasse stellt eine benutzerdefinierte Implementierung der Android-Klasse bereit android.webkit.WebViewClient. Die -Klasse bietet eine Möglichkeit, den SSL-Fehler android.net.http.SslError.SSL_UNTRUSTED in WebViewzu behandeln.
Bei der Behandlung des Fehlers verwendet die Klasse vertrauenswürdige Stammzertifikate, die Intune konfiguriert und vom MAM-Dienst bereitgestellt werden. Bei diesem Ansatz wird die Vertrauenswürdigkeit des Hosts anhand der Ziel-URL überprüft, die den SSL-Fehler in WebViewgeneriert hat. Wenn die benutzerdefinierte Implementierung den SSL-Fehler nicht behandelt, ruft das System das von der Superklasse geerbte Standardverhalten auf.
Wenn Sie diese Klasse verwenden, erstellen Sie eine instance davon, und rufen Sie dann aufWebView.setWebViewClient(WebViewClient), um sie bei einem WebView instance zu registrieren.
Hier sehen Sie ein Beispiel für die Verwendung dieser Klasse.
Beispiel für die Verwendung von WebView
// Get the MAM implementation of WebViewClient from the Intune App SDK
MAMCertTrustWebViewClient mamCertTrustWebViewClient = new MAMCertTrustWebViewClient();
// Set the MAM WebViewClient from the SDK as the current handler on the instance of WebView
webView.setWebViewClient(mamCertTrustWebViewClient);
// Perform any other operations on WebView
...
Exitkriterien
Weitere Informationen finden Sie unter Schnelles Testen mit sich ändernder Richtlinie zur Vereinfachung des Testens.
Überprüfen von "Speichern in" und "Öffnen von Einschränkungen"
Überspringen Sie diesen Abschnitt, wenn Sie keine Richtlinie zum Einschränken der Datenübertragung zwischen Apps und Geräten oder Cloudspeicherorten implementiert haben.
Machen Sie sich mit jedem Szenario vertraut, in dem Ihre App Daten in Clouddiensten oder lokalen Daten speichern und Daten aus Clouddiensten oder lokalen Daten ö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 in OneDrive an einem einzelnen Speicherort innerhalb der App enthält. 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 und die Intune-Unternehmensportal; melden Sie sich mit einem verwalteten Konto an, bevor Sie den Test starten. Ferner gilt Folgendes:
- Legen Sie die Richtlinie des verwalteten Kontos auf Folgendes fest:
- "Senden von Organisationsdaten an andere Apps" auf "Richtlinienverwaltete Apps" festgelegt.
- "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt.
| Szenario | Vorbedingungen | Schritte |
|---|---|---|
| Speichern unter, vollständig zulässig | Richtlinie "Kopien von Organisationsdaten speichern" auf Zulassen festgelegt | – Navigieren Sie zu dem Teil Ihrer App, in dem Daten auf OneDrive gespeichert werden können. – Versuchen Sie, ein Dokument mit demselben verwalteten Konto, das bei Ihrer App angemeldet ist, auf OneDrive zu speichern. – 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" auf Nur OneDrive festgelegt |
– Navigieren Sie zu dem Teil Ihrer App, in dem Daten auf OneDrive gespeichert werden können. – Versuchen Sie, ein Dokument mit demselben verwalteten Konto, das bei Ihrer App angemeldet ist, auf OneDrive zu speichern. – 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 in, blockiert | Richtlinie zum Speichern von Kopien von Organisationsdaten auf Blockieren festgelegt | – Navigieren Sie zu dem Teil Ihrer App, in dem Daten auf OneDrive gespeichert werden können. – Versuchen Sie, ein Dokument mit demselben verwalteten Konto, das bei Ihrer App angemeldet ist, auf OneDrive zu speichern. – 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 Organisationsdokumenten öffnen" auf Zulassen festgelegt | – Navigieren Sie zu dem Teil Ihrer App, in dem Daten aus OneDrive geöffnet werden können. – Versuchen Sie, ein Dokument aus OneDrive mit 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" auf Nur OneDrive festgelegt |
– Navigieren Sie zu dem Teil Ihrer App, in dem Daten aus OneDrive geöffnet werden können. – Versuchen Sie, ein Dokument aus OneDrive mit 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" auf Blockieren festgelegt | – Navigieren Sie zu dem Teil Ihrer App, in dem Daten aus OneDrive geöffnet werden können. – Versuchen Sie, ein Dokument aus OneDrive mit 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 Benachrichtigungseinschränkungen
Überspringen Sie diesen Abschnitt, wenn Sie keine Richtlinie zum Einschränken von Inhalten in Benachrichtigungen implementiert haben.
Was die App-Schutzrichtlinie betrifft, kann Ihre Anwendung drei verschiedene Arten von Benachrichtigungen auslösen:
- Benachrichtigungen, die keine Kontodaten enthalten.
- Benachrichtigungen, die Daten enthalten, die zu einem verwalteten Konto gehören.
- Benachrichtigungen, die Daten enthalten, die zu einem nicht verwalteten Konto gehören.
Wenn Es sich bei Ihrer Anwendung um eine einzelne Identität handelt, sind nur die ersten beiden relevant, da kein Schutz angewendet wird, wenn das einzige Konto nicht verwaltet wird.
Sie können Benachrichtigungseinschränkungen überprüfen, indem Sie alle drei Arten von Benachrichtigungen mit unterschiedlichen Konfigurierten Richtlinienwerten auslösen.
Installieren Sie für diese Tests Ihre App und die Intune-Unternehmensportal; melden Sie sich mit einem verwalteten Konto an, bevor Sie den Test starten. Wenn Ihre App mehrere Identitäten aufweist, melden Sie sich auch mit einem nicht verwalteten Konto bei Ihrer App an.
| Szenario | Vorbedingungen | Schritte |
|---|---|---|
| Vollständiger Inhalt blockiert | Richtlinie "Organisationsdatenbenachrichtigungen" auf Blockieren festgelegt | – Lösen Sie Ihre App aus, um eine Benachrichtigung ohne Kontodaten auszulösen. – Vergewissern Sie sich, dass in der Benachrichtigung keine Inhalte angezeigt werden. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass in der Benachrichtigung keine Inhalte angezeigt werden. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des nicht verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass in der Benachrichtigung keine Inhalte angezeigt werden. |
| Teilweise blockierter Inhalt | Richtlinie "Organisationsdatenbenachrichtigungen" auf Organisationsdaten blockieren festgelegt | – Lösen Sie Ihre App aus, um eine Benachrichtigung ohne Kontodaten auszulösen. – Vergewissern Sie sich, dass die Benachrichtigung ihren vollständigen Inhalt anzeigt. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass der Inhalt des verwalteten Kontos durch die Benachrichtigung redigiert wird. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des nicht verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass die Benachrichtigung ihren vollständigen Inhalt anzeigt. |
| Kein Inhalt blockiert | Richtlinie "Organisationsdatenbenachrichtigungen" auf Zulassen festgelegt | – Lösen Sie Ihre App aus, um eine Benachrichtigung ohne Kontodaten auszulösen. – Vergewissern Sie sich, dass die Benachrichtigung ihren vollständigen Inhalt anzeigt. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass die Benachrichtigung ihren vollständigen Inhalt anzeigt. – Lösen Sie Ihre App aus, um eine Benachrichtigung mit den Daten des nicht verwalteten Kontos auszulösen. – Vergewissern Sie sich, dass die Benachrichtigung ihren vollständigen Inhalt anzeigt. |
Überprüfen der Datensicherung und -wiederherstellung
Überspringen Sie diesen Abschnitt, wenn Sie keine Richtlinie zum Schutz von Sicherungsdaten implementiert haben.
Machen Sie sich mit dem Inhalt (Dateien und Schlüssel-Wert-Paare) vertraut, den Ihre App für die Sicherung konfiguriert hat. Sie sollten überprüfen, ob nur der erwartete Inhalt Teil der Wiederherstellung ist. Zusätzliche Inhalte in der Wiederherstellung können zu einem Datenleck führen.
Installieren Sie für diese Tests Ihre App und die Intune-Unternehmensportal; melden Sie sich mit einem verwalteten Konto an, bevor Sie den Test starten. Wenn Es sich bei Ihrer App um mehrere Identitäten handelt, melden Sie sich auch mit einem nicht verwalteten Konto bei Ihrer App an.
Befolgen Sie die offiziellen Anweisungen von Android zum Testen der Sicherung. Diese Anweisungen unterscheiden sich für automatische Sicherungen und Schlüssel-Wert-Sicherungen, daher befolgen Sie sie genau.
Überprüfen der benutzerdefinierten Bildschirmaufnahme anhand der Richtlinie
Überspringen Sie diesen Abschnitt, wenn Sie keine benutzerdefinierten Bildschirmaufnahmeeinschränkungen implementiert haben.
Wenn Ihre Anwendung über ein Feature verfügt, das die Android-Ebene WindowFLAG_SECUREumgeht, überprüfen Sie, ob dieses Feature durch App-Schutzrichtlinien-Bildschirmaufnahmeeinschränkungen blockiert ist.
Installieren Sie für diese Tests Ihre App und die Intune-Unternehmensportal; melden Sie sich mit einem verwalteten Konto an, bevor Sie den Test starten.
| Szenario | Vorbedingungen | Schritte |
|---|---|---|
| Bildschirmaufnahme blockiert | Richtlinie "Bildschirmaufnahme und Google Assistant" auf Blockieren festgelegt | – Navigieren Sie zu dem Teil Ihrer App, der den benutzerdefinierten FLAG_SECURE Code verwendet.– Versuchen Sie, dieses Feature zu verwenden. – Vergewissern Sie sich, dass das Feature blockiert ist. |
| Bildschirmaufnahme zulässig | Richtlinie "Bildschirmaufnahme und Google Assistant" auf Zulassen festgelegt | – Navigieren Sie zu dem Teil Ihrer App, der den benutzerdefinierten FLAG_SECURE Code verwendet.– Versuchen Sie, dieses Feature zu verwenden. – Vergewissern Sie sich, dass das Feature zulässig ist. |
Überprüfen der App-Schutzzertifizierungsstelle
Überspringen Sie diesen Abschnitt, wenn Sie die Support App Protection-Zertifizierungsstelle nicht implementiert haben.
Zusätzlich zu den typischen Überprüfungsschritten zum Erstellen und Zuweisen einer App-Schutzrichtlinie zu Ihrer App und Ihrem Testkonto müssen Sie auch eine App Protection-Richtlinie für bedingten Zugriff erstellen und Ihrem Testkonto zuweisen. Ausführliche Informationen finden Sie unter Einrichten von App-basierten Richtlinien für bedingten Zugriff mit Intune.
Testschritte:
- Deinstallieren Sie Microsoft Authenticator und Intune-Unternehmensportal, bevor Sie diesen Test starten.
- Installieren Sie Ihre App.
- Melden Sie sich bei Ihrer App mit Ihrem Testkonto an, für das sowohl eine App-Schutzrichtlinie als auch eine app-basierte Zertifizierungsstellenrichtlinie verwendet wird.
- Vergewissern Sie sich, dass Ihre App Sie auffordert, die Unternehmensportal zu installieren.
- Melden Sie sich erneut an.
- Vergewissern Sie sich, dass Ihre App Sie auffordert, Ihr Gerät zu registrieren. Folgen Sie den Anweisungen. Wenn Ihre App hier nicht zur Registrierung auffordert, vergewissern Sie sich zuerst, dass Ihr Testgerät andere SDK-fähige Apps, Unternehmensportal und Authenticator deinstalliert hat. Wenn dies immer noch nicht angezeigt wird, lesen Sie die Implementierungsanweisungen erneut.
- Vergewissern Sie sich, dass Sie nach der Registrierung auf alle App-Daten zugreifen können.
Überprüfen von Benachrichtigungsempfängern
Überspringen Sie diesen Abschnitt, wenn Sie die Registrierung für Benachrichtigungen aus dem SDK nicht implementiert haben.
Die Überprüfungsschritte hängen von den Arten von Benachrichtigungen ab, für die Ihre App registriert ist. Fügen Sie für alle Arten von Benachrichtigungen die Protokollierung hinzu, um sicherzustellen, dass Ihr Empfänger ordnungsgemäß aufgerufen wird.
MAM_ENROLLMENT_RESULT kann ausgelöst werden, indem Sie sich bei Ihrer Anwendung mit einem Konto anmelden, auf das die App-Schutzrichtlinie abzielt.
Sie können und REFRESH_POLICY auslösen, indem Sie die entsprechenden App Configuration Richtlinie und App-Schutzrichtlinie aktualisierenREFRESH_APP_CONFIG, die auf Ihr Testkonto ausgerichtet sind und auf den Erhalt der aktualisierten Richtlinie für das SDK warten.
Tipp
Informationen zur Beschleunigung dieses Prozesses finden Sie unter Schnelles Testen mit sich ändernder Richtlinie .
Sie können Benachrichtigungen, , , WIPE_USER_AUXILIARY_DATAund WIPE_COMPLETED auslösenMANAGEMENT_REMOVEDWIPE_USER_DATA, indem Sie eine selektive Zurücksetzung von Microsoft Intune ausgeben.
Überprüfen benutzerdefinierter Designs
Überspringen Sie diesen Abschnitt, wenn Sie keine benutzerdefinierten Designs implementiert haben.
Sie können die Unterstützung benutzerdefinierter Designs überprüfen, indem Sie die Farben in den Sdk-Dialogfeldern überprüfen. Das einfachste zu überprüfende Dialogfeld ist der MAM-PIN-Bildschirm.
Vorbedingungen:
- Legen Sie die Richtlinie des verwalteten Kontos auf Folgendes fest:
- "PIN für Zugriff" auf "Erforderlich" festgelegt.
- Installieren Sie Ihre App und die Intune-Unternehmensportal.
Testschritte:
- Starten Sie Ihre Anwendung, und melden Sie sich mit dem Testkonto an.
- Vergewissern Sie sich, dass der MAM-PIN-Bildschirm angezeigt wird und auf dem benutzerdefinierten Design basiert, das Sie für das SDK bereitgestellt haben.
Nächste Schritte
Wenn Sie diesen Leitfaden in der richtigen Reihenfolge befolgt und alle oben in diesem Artikel aufgeführten Exitkriterien erfüllt haben, ist Ihre App jetzt vollständig in das Intune App SDK integriert und kann App-Schutzrichtlinien erzwingen. Wenn Sie einen der vorherigen Abschnitte zur App-Teilnahme übersprungen haben, Phase 5: Mehrere Identitäten und Phase 6: App Configuration, und Sie nicht sicher sind, ob Ihre App diese Features unterstützen soll, lesen Sie die wichtigsten Entscheidungen für die SDK-Integration erneut.
App-Schutz ist jetzt ein Kernszenario für Ihre App. Lesen Sie diesen Leitfaden und den Anhang , während Sie Ihre App weiter entwickeln.