Intune App SDK für Android – Grundlagen zur MAM-Integration

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

Hinweis

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

Phase 4: Grundlagen der MAM-Integration

Etappenziele

  • Aktivieren Sie den strikten MAM-Modus.
  • Registrieren Sie sich für kritische Benachrichtigungen vom SDK.
  • Implementieren und registrieren Sie einen Authentifizierungsrückruf, um Microsoft Entra-Token von MSAL für das SDK bereitzustellen.
  • Registrieren Sie neue Konten für die MAM-Verwaltung nach der Authentifizierung mit MSAL.
  • Heben Sie die Registrierung von Konten beim Abmelden auf, um Unternehmensdaten zu entfernen.
  • (Empfohlen) Integrieren Sie die MAM-Protokollierung in Ihre App.
  • (Empfohlen) Erfahren Sie, wie Sie das SDK-Diagnosedialogfeld verwenden.

Hintergrund

Nachdem Sie das Intune App SDK heruntergeladen, in Ihren Build integriert und erfolgreich Klassen- und Methodenersetzungen durchgeführt haben, ist es an der Zeit, die wesentlichen Codeänderungen vorzunehmen, um mit der Erzwingung der Richtlinieneinstellungen für App-Schutzrichtlinien für MAM-geschützte Konten zu beginnen.

In dieser Phase erfahren Sie, wie Sie sich in die SDK-Protokollierung einklinken, ein Dialogfeld "Diagnose" aufrufen, den strengen MAM-Modus aktivieren, um mögliche Integrationsfehler zu identifizieren, sich für Benachrichtigungen vom SDK registrieren und vor allem ein Konto registrieren, damit Intune MAM Richtlinien empfangen kann.

Strikter MAM-Modus

Der strenge MAM-Modus kann potenzielle Fehler in der Integration Ihrer Anwendung in das Intune App SDK identifizieren. Diese Integrationsfehler können dazu führen, dass die App-Schutzrichtlinie nicht ordnungsgemäß angewendet wird, sodass Unternehmensdaten ungeschützt bleiben. Daher ist die Verwendung des MAM Strict Mode erforderlich.

Der strenge MAM-Modus sucht nach Anomalien bei der Verwendung von MAM-APIs und eingeschränkten Plattform-APIs in Ihrer Anwendung. Der MAM Strict Mode ist lose an Android angelehnt und führt einen vordefinierten Satz von Prüfungen aus, die Laufzeitfehler auslösen, wenn sie fehlschlagen. Der strenge MAM-Modus ist nicht dafür vorgesehen, in Produktionsbuilds aktiviert zu bleiben. Verwenden Sie es stattdessen in den internen Entwicklungs-, Debug- und/oder Dogfood-Builds Ihrer App.

Um den strengen MAM-Modus zu aktivieren, rufen Sie die folgende Methode frühzeitig in der Anwendungsinitialisierung auf (z. B Application.onCreate.:

MAMStrictMode.enable();

Wenn eine Überprüfung des strengen MAM-Modus fehlschlägt, versuchen Sie zu bestimmen, ob es sich um ein echtes Problem handelt, das in Ihrer App behoben werden kann, oder um ein falsch positives Ergebnis. Wenn Sie der Meinung sind, dass es sich um ein falsch positives Ergebnis handelt, oder Sie sich nicht sicher sind, teilen Sie dies dem Intune MAM-Team mit. So können wir sicherstellen, dass wir der Falsch-Positiv-Feststellung zustimmen und versuchen, die Erkennung für zukünftige Versionen zu verbessern. Um falsch positive Ergebnisse zu unterdrücken, deaktivieren Sie die fehlgeschlagene Prüfung anhand der folgenden Anweisungen.

Umgang mit Verstößen

Wenn eine Prüfung fehlschlägt, wird ein MAMStrictViolationHandler ausgeführt. Der Standardhandler löst ein aus Error, von dem erwartet wird, dass die App zum Absturz gebracht wird. Dies dient dazu, Fehler so laut wie möglich zu machen, und entspricht der Absicht, dass der strikte Modus in Produktionsbuilds nicht aktiviert werden sollte.

Wenn Ihre App Verstöße anders behandeln möchte, kann sie einen eigenen Handler bereitstellen, indem sie die folgende Methode aufruftMAMStrictViolationHandler, wobei handler implementiert wird:

MAMStrictMode.global().setHandler(handler);

Überprüfungen unterdrücken

Wenn eine Überprüfung in einer Situation fehlschlägt, in der Ihre App nichts falsch macht, melden Sie dies wie oben erwähnt. In der Zwischenzeit kann es erforderlich sein, die Prüfung zu deaktivieren, bei der ein falsches positives Ergebnis auftritt, zumindest während auf ein aktualisiertes SDK gewartet wird. Die fehlgeschlagene Prüfung wird in dem vom Standardhandler ausgelösten Fehler angezeigt, oder sie wird an einen benutzerdefinierten Handler übergeben, falls festgelegt.

Obwohl Unterdrückungen global erfolgen können, wird eine vorübergehende Deaktivierung pro Thread am jeweiligen Aufrufort bevorzugt. Die folgenden Beispiele zeigen verschiedene Möglichkeiten zum Deaktivieren von MAMStrictCheck.IDENTITY_NO_SUCH_FILE (ausgelöst, wenn versucht wird, eine Datei zu schützen, die nicht vorhanden ist).

Per-Thread temporäre Unterdrückung

Dies ist der bevorzugte Unterdrückungsmechanismus.

try (StrictScopedDisable disable = MAMStrictMode.thread().disableScoped(MAMStrictCheck.IDENTITY_NO_SUCH_FILE)) {
    // Perform the operation which raised a violation here
}
// The check is no longer disabled once the block exits

Per-Thread Dauerhafte Unterdrückung

MAMStrictMode.thread().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);

Globale (prozessweite) Unterdrückung

MAMStrictMode.global().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);

Registrieren für Benachrichtigungen vom SDK

Das Intune App SDK gibt viele verschiedene Arten von Benachrichtigungen aus, um Anwendungen über zeitkritische Verwaltungsvorgänge zu informieren. Ihre Anwendung kann sich für eine dieser Benachrichtigungen registrieren und Maßnahmen ergreifen, wenn sie diese erhält.

Wenn beispielsweise ein IT-Administrator einen Befehl zum selektiven Löschen für ein Gerät ausgibt, sendet der Intune-Dienst eine Benachrichtigung an das SDK, die als WIPE_USER_DATA. Ihre Anwendung kann auf diese Benachrichtigung lauschen und steuern, welche Daten gelöscht werden. Oder es kann sich auf das standardmäßige Löschverhalten des SDKs verlassen.

Viele der Benachrichtigungen sind optional. Abhängig von den SDK-Features, die Ihre Anwendung verwendet, sind möglicherweise einige Benachrichtigungen erforderlich. Weitere Informationen zur Registrierung für Benachrichtigungen, welche Benachrichtigungen das SDK übermittelt und wie bestimmte Benachrichtigungstypen behandelt werden, finden Sie unter Registrieren für Benachrichtigungen vom SDK in Phase 7: App-Teilnahmefeatures .

Registrieren für die App-Schutzrichtlinie

Wenn Administratoren App-Schutzrichtlinien erstellen, richten sie diese Richtlinien auf bestimmte Konten in ihrer Organization aus. Auf dem Client muss das SDK wissen, welches Konto die Anwendung verwendet, damit es die Richtlinie dieses Kontos abrufen und die Einstellungen entsprechend erzwingen kann. Ihre App ist dafür verantwortlich, dem SDK diese Kontoinformationen bereitzustellen. Dieser Vorgang wird als Registrierung bezeichnet.

Immer wenn Ihre App ein neues Konto hinzufügt, muss sie das Konto beim SDK registrieren, auch wenn bereits andere Konten registriert sind. Ihre App kann mehrere Konten registrieren. Derzeit kann jedoch nur ein Konto registriert werden oder es wird eine App-Schutzrichtlinie angewendet. Unter Android gilt diese Beschränkung auf ein einzelnes verwaltetes Konto geräteübergreifend.

Registrierung vs. Registrierung

Registrierung ist der Prozess, bei dem Ihre App das SDK darüber informiert, dass ein neues Konto verwendet wird. Das SDK enthält Funktionen, die Ihre App zum Registrieren und Aufheben der Registrierung von Konten aufrufen muss.

Registrierung ist der Prozess, bei dem das SDK das registrierte Konto beim Intune-Dienst aufzeichnet, damit dieser die Richtlinie des Kontos anwenden kann. Ihre App muss keine Funktionen für die Registrierung aufrufen. Das SDK übernimmt die Registrierung vollständig, nachdem ein Konto registriert wurde.

Wenn ein Konto bereits für Ihre Anwendung registriert ist, wird dieses zweite Konto beim Registrieren eines anderen Kontos nicht registriert und die Richtlinie wird nicht angewendet, selbst wenn dieses Konto von App-Schutzrichtlinien betroffen ist.

Hinweis

Der Begriff "Registrierung" kann sich auch auf die geräteweite MDM-Registrierung beziehen. Erfahren Sie mehr im Anhang unter MDM- und MAM-Registrierung.

Implementieren der Registrierung

Achtung

Wenn Ihre App MSAL nicht integriert (dringend empfohlen), lesen Sie Standardregistrierung im Anhang , anstatt diesen Abschnitt fortzusetzen.

Ihre App muss drei Codeänderungen vornehmen, um ein Konto erfolgreich zu registrieren:

  1. Die App muss eine Instance der Schnittstelle MAMServiceAuthenticationCallback oder MAMServiceAuthenticationCallbackExtended implementieren und registrieren. Die Callback-Instance muss in der onCreate() (oronMAMCreate())-Methode der Application-Unterklasse registriert werden.

  2. Wenn ein Konto erstellt wird und sich der Benutzer erfolgreich bei MSAL anmeldet, muss die App registerAccountForMAM aufrufen.

  3. Wenn ein Konto entfernt wird, sollte die App unregisterAccountForMAM aufrufen, um das Konto aus der Intune-Verwaltung zu entfernen.

    Achtung

    Der Aufruf kann eine Zurücksetzung auslösen, um Unternehmensdaten für das Konto vollständig zu entfernen.

Alle erforderlichen Authentifizierungs- und Registrierungs-APIs finden Sie in der MAMEnrollmentManager-Schnittstelle . Ein Verweis auf die MAMEnrollmentManager kann wie folgt bezogen werden:

MAMEnrollmentManager mgr = MAMComponents.get(MAMEnrollmentManager.class);

// make use of mgr

Die MAMEnrollmentManager zurückgegebene Instance ist garantiert nicht Null. Die API-Methoden lassen sich in zwei Kategorien einteilen: Authentifizierung und Kontoregistrierung.

MAMEnrollmentManager und Authentifizierung

Das SDK kommuniziert häufig mit dem Intune-Dienst: für die Registrierung registrierter Konten, für Updates für die Einstellungen der App-Schutzrichtlinie und für ausstehende Administratoraktionen, wie das selektive Löschen geschützter Daten in Ihrer App. Für eine erfolgreiche Kommunikation mit dem Intune-Dienst benötigt das SDK neue Zugriffstoken von Apps, in die MSAL integriert ist.

Wenn das SDK kein neues Token abrufen kann, kann es nicht mit dem Intune-Dienst kommunizieren, wodurch sich der Abruf und die Durchsetzung neuer Richtlinieneinstellungen oder Administratoraktionen verzögern kann. Es ist wichtig, dass Ihre App diese Schritte ausführt, um eine nahtlose Erzwingung der Richtlinie sicherzustellen.

In Phase 2 haben Sie MSAL in Ihre Anwendung zur Authentifizierung und zum Abrufen von Zugriffstoken integriert. Hier implementieren Sie einen Authentifizierungsrückruf, damit das SDK erforderliche Token anfordern kann.

MAMEnrollmentManager verfügt über die folgenden Authentifizierungsmethoden:

interface MAMServiceAuthenticationCallback {
    String acquireToken(String upn, String aadId, String resourceId);
}
interface MAMServiceAuthenticationCallbackExtended extends MAMServiceAuthenticationCallback {
    String acquireToken(String upn, String aadId, String tenantId, String authority, String resourceId);
}
void registerAuthenticationCallback(MAMServiceAuthenticationCallback callback);
void updateToken(String upn, String aadId, String resourceId, String token);

Hinweis

Der aadId Parameter in diesen Methoden bezieht sich auf die Microsoft Entra-Benutzer-ID, früher bekannt als AAD-ID und auch bekannt als OID.

  1. Die App muss die MAMServiceAuthenticationCallback-Schnittstelle oder die MAMServiceAuthenticationCallbackExtended-Schnittstelle implementieren, damit das SDK ein Microsoft Entra Token für das angegebene Konto und die angegebene Ressourcen-ID anfordern kann. Die Rückruf-Instance muss durch Aufrufen ihrer MAMEnrollmentManagerregisterAuthenticationCallback-Methode bereitgestellt werden. Ein Token kann früh im App-Lebenszyklus für Registrierungswiederholungen oder Aktualisierungsprüfungen der App-Schutzrichtlinie erforderlich sein, sodass der Rückruf in der onCreate() (or onMAMCreate())-Methode der App-Unterklasse Application registriert werden muss.

  2. Die acquireToken Methode sollte das Zugriffstoken für die angeforderte Ressourcen-ID für das angegebene Konto abrufen. Wenn er das angeforderte Token nicht abrufen kann, sollte er null zurückgeben.

    Tipp

    Stellen Sie sicher, dass Ihre App die resourceId und die übergebenen aadId Parameter acquireToken() verwendet, damit das richtige Token abgerufen wird. Der upn Parameter dient nur zu Informationszwecken. Er sollte nicht verwendet werden, um ein Konto zu identifizieren, ohne auch die aadId. Sie resourceId sollten verwendet werden, um die richtigen Bereiche zu generieren, und sie aadId sollten verwendet werden, um das richtige Konto weiterzugeben. Wenn Token für das falsche Konto und/oder die falsche Ressource zurückgegeben werden, kann dies zu Verzögerungen oder Fehlern beim Registrieren der App und beim Abrufen von Richtlinien führen. Wenn Ihre App die Microsoft Entra Authority benötigt, um das Token ordnungsgemäß abzurufen, implementieren Sie die MAMServiceAuthenticationCallbackExtended Schnittstelle.

    class MAMAuthCallback implements MAMServiceAuthenticationCallbackExtended {
        public String acquireToken(String upn, String aadId,
                    String tenantId, String authority, String resourceId) {
            final String[] scopes = {resourceId + "/.default"};
    
            final IAccount account = getAccount(aadId);
            if (account == null) {
                // Log error or warning here about: "no account found for " + aadId
                return null;
            }
    
            AcquireTokenSilentParameters params =
                new AcquireTokenSilentParameters.Builder()
                        .forAccount(account)
                        .fromAuthority(account.getAuthority())
                        .withScopes(Arrays.asList(scopes))
                        .withCallback(callback)
                        .build();
    
            return mMsalClientApplication.acquireTokenSilent(params);
        }
    
        private static IAccount getAccount(String aadId) throws InterruptedException, MsalException {
          IAccount account = null;
    
          if (mMsalClientApplication instanceof IMultipleAccountPublicClientApplication) {
              IMultipleAccountPublicClientApplication multiAccountPCA =
                      (IMultipleAccountPublicClientApplication) mMsalClientApplication;
    
              account = multiAccountPCA.getAccount(aadId);
          } else {
              ISingleAccountPublicClientApplication singleAccountPCA =
                      (ISingleAccountPublicClientApplication) mMsalClientApplication;
    
              ICurrentAccountResult accountResult = singleAccountPCA.getCurrentAccount();
              if (accountResult != null) {
                  account = accountResult.getCurrentAccount();
                  // make sure this is the correct user
                  if (account != null && !account.getId().equals(aadId))
                      account = null;
              }
          }
          return account;
      }
    }
    
  3. Falls die App beim Aufruf acquireToken() durch das SDK kein Token bereitstellen kann – zum Beispiel, wenn die automatische Authentifizierung fehlschlägt und es ungünstig ist, eine Benutzeroberfläche anzuzeigen – kann die App zu einem späteren Zeitpunkt ein Token bereitstellen, indem sie die updateToken-Methode aufruft. Derselbe UPN, dieselbe Microsoft Entra ID und dieselbe Ressourcen-ID, die acquireToken() vom vorherigen Aufruf angefordert wurden, müssen zusammen mit dem schließlich erworbenen Token an updateToken()übergeben werden. Der upn Parameter dient nur zu Informationszwecken und wird vom MAM SDK in der Regel ignoriert. Die App sollte diese Methode so bald wie möglich aufrufen, nachdem NULL vom bereitgestellten Rückruf zurückgegeben wurde.

    Warnung

    Rufen updateToken() Sie nicht innerhalb Ihrer Implementierung von acquireToken()auf. updateToken() Sollte verwendet werden, acquireToken() wenn ein Token nicht abgerufen werden kann.

    Hinweis

    Das SDK ruft in regelmäßigen Abständen auf acquireToken() , um das Token abzurufen, sodass ein Aufruf updateToken() nicht unbedingt erforderlich ist. Es wird jedoch dringend empfohlen, da es dazu beitragen kann, dass Registrierungen und Check-Ins für App-Schutzrichtlinien schneller abgeschlossen werden.

Hinweise zur Implementierung der Authentifizierung

  • Apps wird empfohlen, Microsoft Entra-Token abzurufen, bevor sieregisterAccountForMAM aufrufen. Nach der Registrierung eines Kontos erhalten Apps einen Rückruf auf die Methode des registrierten MAMServiceAuthenticationCallbackKontos acquireToken() in einem anderen Thread. Durch die Angabe eines gültigen Tokens in diesem Rückruf kann die Registrierung fortgesetzt werden. Die App ruft das Registrierungsergebnis per Benachrichtigung ab.

  • Wenn die App kein gültiges Microsoft Entra-Token zurückgibt, lautet das Endergebnis des Registrierungsversuchs .AUTHORIZATION_NEEDED Wenn die App dieses Ergebnis per Benachrichtigung erhält, wird empfohlen, den Registrierungsprozess zu beschleunigen, indem Sie das Token für das Konto und die Ressource abrufen, die zuvor von acquireToken angefordert wurden, und die updateToken-Methode aufrufen, um den Registrierungsprozess erneut zu initiieren.

  • Der registrierte MAMServiceAuthenticationCallback App-Server wird auch aufgerufen, um ein Token für regelmäßige Aktualisierungsprüfungen der App-Schutzrichtlinien abzurufen. Wenn die App auf Anforderung kein Token bereitstellen kann, erhält sie keine Benachrichtigung, sollte jedoch versuchen, ein Token abzurufen und zum nächsten geeigneten Zeitpunkt anzurufen updateToken() , um den Check-in-Prozess zu beschleunigen. Wenn kein Token bereitgestellt wird, kann der Rückruf immer noch beim nächsten Eincheckversuch aufgerufen werden.

  • Die Unterstützung für souveräne Clouds erfordert die Bereitstellung der Berechtigung.

  • Wenn MAMServiceAuthenticationCallbackExtended die Schnittstelle implementiert ist, muss die geerbte acquireToken() Methode von MAMServiceAuthenticationCallback nicht implementiert werden, da die MAMServiceAuthenticationCallbackExtended Schnittstelle eine Standardimplementierung bereitstellt.

MAMEnrollmentManager und Registrierung

Immer wenn die App ein Konto hinzufügt, muss sie das Konto beim SDK registrieren. Ebenso sollte die Registrierung des Kontos aufgehoben werden, wenn die App ein Konto entfernt, um darauf hinzuweisen, dass die App die Richtlinie für dieses Konto nicht mehr anwenden sollte. Wenn das Konto beim MAM-Dienst registriert war, wird die Registrierung des Kontos aufgehoben, und die App wird zurückgesetzt.

MAMEnrollmentManager verfügt über die folgenden Methoden zur Kontoregistrierung:

void registerAccountForMAM(String upn, String aadId, String tenantId);
void registerAccountForMAM(String upn, String aadId, String tenantId, String authority);
void unregisterAccountForMAM(String upn, String aadId);
Result getRegisteredAccountStatus(String upn, String aadId);
  1. Um ein Konto für die Verwaltung zu registrieren, sollte die App .registerAccountForMAM() Ein Konto wird sowohl durch seinen UPN als auch durch seine Microsoft Entra-Benutzer-ID identifiziert. Die Mandanten-ID ist auch erforderlich, um Registrierungsdaten dem Microsoft Entra-Mandanten des Kontos zuzuordnen. Die Autorität des Kontos kann auch bereitgestellt werden, um die Registrierung für bestimmte Sovereign Clouds zu ermöglichen; Weitere Informationen finden Sie unter Sovereign Cloud-Registrierung. Das SDK versucht möglicherweise, die App für das angegebene Konto im MAM-Dienst zu registrieren. Wenn die Registrierung fehlschlägt, wird die Registrierung in regelmäßigen Abständen wiederholt, bis die Registrierung erfolgreich ist oder die Registrierung des Kontos aufgehoben wird. Der Wiederholungszeitraum beträgt in der Regel 12 bis 24 Stunden. Das SDK stellt den Status von Registrierungsversuchen asynchron über Benachrichtigungen bereit.

  2. Der beste Zeitpunkt für einen Anruf registerAccountForMAM ist, nachdem sich der Benutzer bei der App angemeldet und erfolgreich mit MSAL authentifiziert hat. Die Microsoft Entra-Benutzer-ID, Mandanten-ID und Autorität des Kontos werden vom MSAL-Authentifizierungsaufruf als Teil des IAccount related to the IAuthenticationResultzurückgegeben.

    • Das Konto stammt aus der IAuthenticationResult.getAccount() Methode und enthält die entsprechenden Kontoinformationen.
    • Die AAD-ID (auch als Microsoft Entra ID oder OID bezeichnet) stammt aus der IAccount.getId() Methode.
    • Die Mandanten-ID stammt von der IAccount.getTenantId() Methode.
    • Die Autorität ergibt sich aus der IAccount.getAuthority() Methode.
  3. Um die Registrierung eines Kontos bei der Intune-Verwaltung aufzuheben, sollte die App .unregisterAccountForMAM() Wenn das Konto erfolgreich registriert und verwaltet wird, hebt das SDK die Registrierung des Kontos auf und löscht seine Daten. Regelmäßige Wiederholungsversuche bei der Registrierung für das Konto werden beendet. Das SDK stellt den Status von Aufhebungsanforderungen asynchron über eine Benachrichtigung bereit.

Hinweise zur Implementierung der Registrierung

  • Die Registrierungsmethoden sind idempotent. Beispielsweise registriert registerAccountForMAM nur dann ein Konto und versucht, die App zu registrieren, wenn das Konto noch nicht registriert ist, und unregisterAccountForMAM hebt die Registrierung eines Kontos nur auf, wenn es derzeit registriert ist. Nachfolgende Aufrufe sind keine Operationen, es schadet also nicht, diese Methoden mehr als einmal aufzurufen.

  • Es gibt keine Garantie dafür, dass jeder Aufruf zum Registrieren/Aufheben der Registrierung eine entsprechende Ergebnisbenachrichtigung erhält. Wird registerAccountForMAM() beispielsweise für ein Konto aufgerufen, das bereits registriert ist, kann die Benachrichtigung für diese Identität nicht erneut gesendet werden. Alternativ kann das SDK auch dann Benachrichtigungen senden, wenn Ihre App diese Methoden nicht aufgerufen hat, da das SDK möglicherweise regelmäßig versucht, sich im Hintergrund zu registrieren, und Aufhebungen von Registrierungen durch vom Intune-Dienst empfangene Löschanforderungen ausgelöst werden können.

  • Die Registrierungsmethoden können für eine beliebige Anzahl verschiedener Konten aufgerufen werden, derzeit kann jedoch nur ein Konto erfolgreich registriert werden. Wenn mehrere Konten, die für Intune lizenziert sind und von einer App-Schutzrichtlinie als Ziel festgelegt werden, gleichzeitig oder nahezu gleichzeitig registriert werden, gibt es keine Garantie dafür, welches Konto das Rennen gewinnt.

  • Sie können MAMEnrollmentManager abfragen, um festzustellen, ob ein bestimmtes Konto registriert ist, und um seinen aktuellen Status mithilfe der getRegisteredAccountStatus-Methode abzurufen. Wenn das angegebene Konto nicht registriert ist, gibt diese Methode NULL zurück. Wenn das Konto registriert ist, gibt diese Methode den Status des Kontos als eines der Mitglieder der MAMEnrollmentManager.Result-Enumeration zurück.

Sovereign Cloud Registrierung

Azure unterstützt mehrere physisch isolierte Clouds, die als Sovereign oder National Clouds bezeichnet werden. Wenn Ihre Anwendung souverän cloudfähig ist, muss sie den authority Parameter bereitstellen.registerAccountForMAM()

MSAL-Anleitung

Für MSAL in der MSAL-Konfigurationsdatei auf true festlegenmultiple_clouds_supported.

{
  "multiple_clouds_supported": true,
}

Codes für Registrierungsergebnis und Status

Wenn ein Konto zum ersten Mal registriert wird, beginnt es in dem Status, der PENDING angibt, dass der erste Registrierungsversuch für den MAM-Dienst unvollständig ist. Nach Abschluss des Registrierungsversuchs wird eine Benachrichtigung mit einem der Ergebniscodes in der folgenden Tabelle gesendet. Darüber hinaus gibt die getRegisteredAccountStatus-Methode den Status des Kontos zurück, sodass die App immer feststellen kann, ob für dieses Konto App-Schutzrichtlinien durchgesetzt wurden. Wenn der Registrierungsversuch fehlschlägt, kann sich der Status des Kontos im Laufe der Zeit ändern, da das SDK die Registrierung im Hintergrund erneut versucht.

Ergebniscode Erklärung
AUTHORIZATION_NEEDED Dieses Ergebnis weist darauf hin, dass ein Token nicht von der registrierten MAMServiceAuthenticationCallback-Instance der App bereitgestellt wurde oder dass das bereitgestellte Token ungültig war. Die App sollte ein gültiges Token abrufen und updateToken wenn möglich aufrufen.
NOT_LICENSED Das Konto ist nicht für Intune lizenziert, oder der Versuch, den Intune MAM-Dienst zu kontaktieren, ist fehlgeschlagen. Die App sollte in einem nicht verwalteten (normalen) Zustand fortgesetzt werden, und der Benutzer sollte nicht blockiert werden. Die Registrierung wird in regelmäßigen Abständen wiederholt, falls das Konto in Zukunft lizenziert wird.
ENROLLMENT_SUCCEEDED Der Registrierungsversuch war erfolgreich, oder das Konto ist bereits registriert. Im Falle einer erfolgreichen Registrierung wird vor dieser Benachrichtigung eine Benachrichtigung zur Richtlinienaktualisierung gesendet. Der Zugriff auf Unternehmensdaten sollte erlaubt sein.
ENROLLMENT_FAILED Der Registrierungsversuch ist fehlgeschlagen. Weitere Details finden Sie in den Geräteprotokollen. Die App sollte in diesem Zustand keinen Zugriff auf Unternehmensdaten zulassen, da zuvor festgestellt wurde, dass das Konto für Intune lizenziert ist. Alle Apps sollten sicherstellen, dass der Zugriff auf Unternehmensdaten nicht autorisiert ist, bis ENROLLMENT_SUCCEEDED er von Ihrer App abgerufen wird.
WRONG_USER Nur ein Konto pro Gerät kann eine App beim MAM-Dienst registrieren. Dieses Ergebnis gibt an, dass das Konto, für das dieses Ergebnis übermittelt wurde (das zweite Konto), von der MAM-Richtlinie erfasst wird, aber bereits ein anderes Konto registriert ist. Da die MAM-Richtlinie nicht für das zweite Konto erzwungen werden kann, darf Ihre App keinen Zugriff auf die Daten dieses Kontos zulassen (möglicherweise durch Entfernen des Kontos aus Ihrer App), es sei denn, die Registrierung für dieses Konto ist zu einem späteren Zeitpunkt erfolgreich. Gleichzeitig mit der Übermittlung dieses WRONG_USER Ergebnisses fordert MAM den Endbenutzer mit zwei Optionen zur Behebung auf: (1) Entfernen des vorhandenen registrierten Kontos, damit das zweite Konto registriert werden kann, oder (2) Entfernen des zweiten (versuchten) Kontos, sodass die Eingabeaufforderung nicht mehr angezeigt wird, während das vorhandene Konto registriert bleibt. Wenn der Benutzer Option (1) wählt, ist es möglich, das zweite Konto kurze Zeit später zu registrieren. Wenn der Benutzer Option (2) auswählt, hebt MAM die lokale Registrierung des zweiten Kontos auf und meldet für UNENROLLMENT_SUCCEEDED dieses Konto über die Standardbenachrichtigung über das Registrierungsergebnis. Da das zweite Konto nie registriert wurde, wird keine selektive Zurücksetzung durchgeführt und keine Rücksetzbenachrichtigung übermittelt. MAM beendet auch die erneute Registrierung für dieses Konto, sodass die Eingabeaufforderung nicht mehr angezeigt wird. Solange das zweite Konto registriert bleibt (d. h. der Benutzer hat nicht Option (2) ausgewählt), versucht MAM die Registrierung in regelmäßigen Abständen erneut.
UNENROLLMENT_SUCCEEDED Die Abmeldung war erfolgreich.
UNENROLLMENT_FAILED Der Antrag auf Abmeldung ist fehlgeschlagen. Weitere Details finden Sie in den Geräteprotokollen. Im Allgemeinen geschieht dies nicht, solange die App einen gültigen (weder null noch leeren) UPN übergibt. Es gibt keine direkte, zuverlässige Abhilfe, die die App durchführen kann. Wenn dieser Wert beim Aufheben der Registrierung eines gültigen UPN empfangen wird, melden Sie dies dem Intune MAM-Team als Fehler.
PENDING Der erste Registrierungsversuch für das Konto wird ausgeführt. Die App kann den Zugriff auf Unternehmensdaten blockieren, bis das Registrierungsergebnis bekannt ist, ist jedoch nicht dazu verpflichtet.
COMPANY_PORTAL_REQUIRED Das Konto ist für Intune lizenziert, aber die App kann erst registriert werden, wenn die Unternehmensportal-App auf dem Gerät installiert ist. Das Intune App SDK versucht, den Zugriff auf die App für das angegebene Konto zu blockieren, und weist den Benutzer an, die Unternehmensportal-App zu installieren. Wenn Sie diese Benachrichtigung an die App senden, zeigt das Intune App SDK eine nicht blockierende Benutzeroberfläche über der aktuellen Aktivität an, wenn die Aktivität derzeit für den Benutzer sichtbar ist oder beim nächsten onResume Aufruf erfolgt. Wenn der Benutzer diese nicht blockierende Benutzeroberfläche abbricht, zeigt das Intune App SDK beim nächsten onCreate Aufruf einer Aktivität eine blockierende Benutzeroberfläche an, und die aktuelle Identität wird verwaltet (Einzelheiten zur Problembehandlung finden Sie unten).

Die Protokollierung sollte frühzeitig initialisiert werden, um den größtmöglichen Nutzen aus den protokollierten Daten zu ziehen. Application.onMAMCreate() ist in der Regel der beste Ort, um die Protokollierung zu initialisieren.

Um MAM-Protokolle in Ihrer App zu empfangen, erstellen Sie einen Java-Handler und fügen Sie ihn dem MAMLogHandlerWrapper hinzu. Dadurch wird der Anwendungshandler für jede Protokollnachricht aufgerufen publish() .

/**
 * Global log handler that enables fine grained PII filtering within MAM logs.
 * To start using this you should build your own log handler and add it via
 * MAMComponents.get(MAMLogHandlerWrapper.class).addHandler(myHandler, false);
 * You may also remove the handler entirely via
 * MAMComponents.get(MAMLogHandlerWrapper.class).removeHandler(myHandler);
 */
public interface MAMLogHandlerWrapper {
    /**
     * Add a handler, PII can be toggled.
     * @param handler handler to add.
     * @param wantsPII if PII is desired in the logs.
     */
    void addHandler(final Handler handler, final boolean wantsPII);

    /**
     * Remove a handler.
     * @param handler handler to remove.
     */
    void removeHandler(final Handler handler);
}

Hinweis

PII steht für "Personally Identifiable Information" und kann Daten wie Benutzernamen und UPNs umfassen. Es wird dringend empfohlen, solche persönlichen Informationen in Ihren eigenen Produktionsprotokollen auszuschließen. Weitere Informationen finden Sie in der Microsoft-Datenschutzrichtlinie .

Die Intune-Unternehmensportal-App verfügt über mehrere Optionen zum Sammeln von Diagnoseinformationen. Das Unternehmensportal enthält eine Benutzeroberfläche, die:

  • Ermöglicht Endbenutzern das Sammeln von Unternehmensportal-Protokollen.
  • Zeigt Geräte- und Kontometadaten an.
  • Enthält Informationen zur aktuellen MAM-Richtlinie.

Benutzeroberfläche der Intune Diagnose Intune App-Info

Eine ausführliche Erläuterung der Daten, die in den Unternehmensportal-Protokollen und in der Diagnose-Benutzeroberfläche enthalten sind, finden Sie unter Grundlegendes zu Unternehmensportal-Protokollen im Anhang.

Tipp

Wenn Sie mit einem Konto testen, auf das die MAM-Richtlinie angewendet werden sollte, die Diagnose jedoch keine Richtlinie für den Paketnamen Ihrer App anzeigt, finden Sie weitere Informationen im Abschnitt Problembehandlung weiter unten.

Apps können diese Benutzeroberfläche für die Diagnose starten, indem sie MAMPolicyManager.showDiagnostics(context). Endbenutzer können die Diagnosekonsole des Unternehmensportals auch über Microsoft Edge starten, indem sie Text in die Adressleiste eingebenabout:intunehelp. Hierbei handelt es sich um ein optionales Feature, das beim Debuggen hilfreich sein kann.

Diese Diagnoseinformationen sind nur verfügbar, wenn das Unternehmensportal auf dem Gerät installiert ist. Ein Warndialog wird angezeigt, wenn showDiagnostics ohne installiertes Unternehmensportal aufgerufen wird.

Beendigungskriterien

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

Erster Richtlinienanwendungstest

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

  1. Erstellen Sie eine Android-App-Schutzrichtlinie im Microsoft Intune Admin Center (weitere Informationen finden Sie unter Erstellen einer Android-App-Schutzrichtlinie in Phase 1). Konfigurieren Sie für diesen Test die Richtlinie:
    • Stellen Sie unter Datenschutz "Bildschirmaufnahme und Google Assistant" auf "Blockieren".
    • Lassen Sie unter Zugriffsanforderungen die Standardeinstellungen unverändert. Insbesondere sollte "PIN für Zugriff" mit "Erforderlich" heißen.
  2. Stellen Sie sicher, dass die App-Schutzrichtlinie auf Ihre Anwendung ausgerichtet ist. Wahrscheinlich müssen Sie den Paketnamen im Assistenten zum Erstellen von Richtlinien manuell hinzufügen.
  3. Weisen Sie die App-Schutzrichtlinie einer Benutzergruppe zu, die Ihr Testkonto enthält.
  4. Deinstallieren Sie auf einem Android-Testgerät andere SDK-integrierte Apps wie Microsoft Outlook, Teams, OneDrive und Office. Deinstallieren Sie außerdem die Intune-Unternehmensportal-App und die Microsoft Authenticator-App.
    • Tipp

      Durch die Deinstallation anderer SDK-integrierter Apps wird sichergestellt, dass Sie ausschließlich die Integration Ihrer eigenen App testen.

  5. Installieren Sie Ihre Anwendung.
  6. Melden Sie sich bei Ihrer Anwendung mit Ihrem Testkonto an, das von der App-Schutzrichtlinie adressiert ist.
  7. Vergewissern Sie sich, dass Sie zur Installation des Intune-Unternehmensportals aus Google Play aufgefordert werden.
    • Hinweis

      Wenn Ihr Testgerät nicht über die Google Play Store-App verfügt, vergewissern Sie sich, dass Sie aufgefordert werden, das Intune-Unternehmensportal entweder aus einem anderen App-Store oder einer Microsoft-Website zu installieren.

  8. Installieren Sie das Unternehmensportal. Sie müssen das Unternehmensportal nicht starten oder sich beim Unternehmensportal anmelden.
  9. Kehren Sie zu Ihrer App zurück und melden Sie sich bei Bedarf erneut an.
  10. Bestätigen Sie, dass Sie mit einem Bildschirm "Zugriff abrufen" aufgefordert werden. Dies weist darauf hin, dass das SDK die Richtlinie für dieses Konto erfolgreich abgerufen hat.
  11. Sie sollten aufgefordert werden, eine App-PIN festzulegen. Erstellen Sie eine PIN.
  12. Navigieren Sie in Ihrer Anwendung, und versuchen Sie, Screenshots zu erstellen. Da das SDK über Richtlinien verfügt, sollte dies auf jedem Bildschirm konsistent blockiert werden.
  13. Melden Sie das verwaltete Konto aus Ihrer Anwendung ab.
  14. Navigieren Sie, wenn möglich, ohne sich anzumelden, in Ihrer Anwendung, und versuchen Sie, Screenshots zu erstellen. Nachdem das Konto nun entfernt wurde, sollte es nicht mehr gesperrt werden.

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

Datenschutztests

Die folgenden Tests behandeln bestimmte Datenschutzeinstellungen, die in der App-Schutzrichtlinie konfiguriert sind. Wenn Sie die Einstellungen der App-Schutzrichtlinie im Microsoft Intune Admin Center ändern, wird der Client nicht sofort aktualisiert. Tipps zum Beschleunigen von Tests finden Sie unter Schnelles Testen mit Änderung der Richtlinie .

Für diese Tests:

  1. Installieren Sie Ihre App.
  2. Installieren Sie das Intune-Unternehmensportal.
  3. Installieren Sie eine andere verwaltete App, die dieselbe Richtlinie wie Ihre App gilt und Daten kopieren und einfügen kann (z. B. Microsoft Office).
  4. Installieren (oder wiederverwenden) Sie alle nicht verwalteten Apps, die Daten kopieren und einfügen können.
  5. Melden Sie sich mit dem testverwalteten Konto bei Ihrer App an.
  6. Melden Sie sich bei der anderen verwalteten App mit dem verwalteten Testkonto an.
Szenario Richtlinieneinstellung für App-Schutz Testschritte
Screenshot "Bildschirmaufnahme und Google Assistant" auf "Blockieren" festgelegt 1. Navigieren Sie zu allen Seiten in Ihrer App.
2. Versuchen Sie, auf jeder Seite einen Screenshot zu erstellen.
3. Vergewissern Sie sich, dass Screenshots blockiert wurden oder das gespeicherte Bild vollständig leer ist.
Kopieren von Text "Ausschneiden, Kopieren und Einfügen zwischen anderen Apps einschränken" ist auf "Richtlinienverwaltete Apps" eingestellt 0. Wenn Ihre App keinen Text zum Kopieren hat, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die kopierbaren Text enthalten.
2. Text kopieren.
3. Wechseln Sie zur nicht verwalteten App.
4. Versuchen Sie, die nicht verwaltete App einzufügen.
5. Stellen Sie sicher, dass die Paste blockiert ist.
6. Navigieren Sie zur anderen verwalteten App.
7. Versuchen Sie, die verwaltete App einzufügen.
8. Vergewissern Sie sich, dass das Einfügen zulässig ist.
Text einfügen "Ausschneiden, Kopieren und Einfügen zwischen anderen Apps einschränken" ist auf "Richtlinienverwaltete Apps" eingestellt 0. Wenn Ihre App keine Texteingaben zum Einfügen hat, überspringen Sie.
1. Wechseln Sie zur nicht verwalteten App.
2. Kopieren Sie Text aus der nicht verwalteten App.
3. Navigieren Sie zu allen Seiten in Ihrer App, die Texteingaben enthalten.
5. Versuchen Sie, aus der nicht verwalteten App einzufügen.
5. Stellen Sie sicher, dass die Paste blockiert ist.
6. Wechseln Sie zur anderen verwalteten App.
7. Kopieren Sie Text aus der anderen verwalteten App.
7. Navigieren Sie zu allen Seiten in Ihrer App, die Texteingaben enthalten.
8. Versuchen Sie, aus der anderen verwalteten App einzufügen.
9. Vergewissern Sie sich, dass das Einfügen zulässig ist.
Drucken "Drucken von Organisationsdaten" auf "Block" gesetzt 0. Wenn Ihre App keine Seiten oder Dokumente enthält, die gedruckt werden können, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die die Druckfunktion von Android aufrufen.
2. Versuchen Sie, von jeder Seite aus zu drucken.
3. Vergewissern Sie sich, dass das Drucken blockiert ist.
Einschränkung von Microsoft Edge-Webinhalten "Beschränken der Übertragung von Webinhalten mit anderen Apps" auf "Microsoft Edge" eingestellt 0. Wenn Ihre App Weblinks nicht rendert, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die Weblinks anzeigen oder Texteingaben machen können, die in klickbare Weblinks gerendert werden.
2. Wählen Sie für jede Seite den Weblink aus.
3. Vergewissern Sie sich, dass Sie zur Installation von Microsoft Edge aufgefordert werden und der Weblink nicht in einem anderen Browser geöffnet wird.
Tastatur mit eingeschränkter Tastatur "Genehmigte Tastaturen" auf "Erforderlich" festgelegt
"Tastaturen zur Genehmigung auswählen" nur auf ein Tastaturpaket festgelegt, das derzeit nicht auf Ihrem Gerät installiert ist
0. Wenn Ihre App keine Texteingaben enthält, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die Texteingaben enthalten.
2. Wählen Sie die Texteingabe aus, um die Gerätetastatur anzuzeigen.
3. Vergewissern Sie sich, dass Sie aufgefordert werden, die konfigurierte genehmigte Tastatur zu installieren, und die aktuelle Gerätetastatur nicht geöffnet wird.

Tests zur Datenübertragung

Datenübertragungseinstellungen sind eine Teilmenge der Datenschutzfeatures der App-Schutzrichtlinie, die steuern, welche Daten in verwaltete Apps gelangen und diese verlassen. Die meisten Apps, die das Senden von Daten an oder das Empfangen von Daten von anderen Apps unterstützen, bieten auch die Möglichkeit, Daten in lokalen oder Cloud-Speicher zu speichern und daraus zu öffnen . Wenn Ihre App über diese Funktionen verfügt, müssen Sie zusätzlichen Support implementieren. Weitere Informationen finden Sie unter Richtlinie zum Einschränken der Datenübertragung zwischen Apps und Geräte- oder Cloudspeicherorten .

Ihre App importiert möglicherweise aktiv Daten aus anderen Apps, z. B. aus Microsoft Outlook, das eine Datei aus Microsoft OneDrive anfügt. Ihre App kann auch passiv Daten von anderen Apps empfangen, z. B. beim Öffnen eines Dokuments aus einer Microsoft Outlook-Anlage. Die Richtlinieneinstellung "Daten von anderen Apps empfangen" deckt beide Szenarien ab.

Für diese Tests:

  1. Installieren Sie Ihre App.
  2. Installieren Sie das Intune-Unternehmensportal.
  3. Installieren Sie eine andere verwaltete App, die dieselbe Richtlinie wie Ihre App für das Senden und Empfangen von Daten verwenden kann (z. B. Microsoft Outlook).
  4. Installieren (oder wiederverwenden) Sie alle nicht verwalteten Apps, die Daten senden und empfangen können.
  5. Melden Sie sich mit dem testverwalteten Konto bei Ihrer App an.
  6. Melden Sie sich bei der anderen verwalteten App mit dem verwalteten Testkonto an.
Szenario Richtlinieneinstellung für App-Schutz Testschritte
Senden von Daten an andere Apps "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keine Daten an andere Apps senden kann, überspringen Sie.
1. Navigieren Sie zu dem Ort, an den Ihre App Daten senden kann.
2. Versuchen Sie, Daten zu senden.
3. Vergewissern Sie sich, dass Sie nur Daten an andere verwaltete Apps senden können. Es sollte eine App-Auswahl mit nur verwalteten Apps angezeigt werden.
Importieren von Daten aus anderen Apps "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keine Daten aus anderen Apps importieren kann, überspringen Sie.
1. Navigieren Sie zu dem Ort, an dem Ihre App Daten aus anderen Apps importieren kann.
2. Versuchen Sie, Daten zu importieren.
3. Vergewissern Sie sich, dass Sie nur Daten aus anderen verwalteten Apps importieren können. Es sollte eine App-Auswahl mit nur verwalteten Apps angezeigt werden.
Empfangen von Daten von einer nicht verwalteten App "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keine Daten von anderen Apps empfangen kann, überspringen Sie.
1. Wechseln Sie zur nicht verwalteten App.
2. Navigieren Sie zu dem Ort, an den Daten gesendet werden können.
3. Versuchen Sie, Daten aus der nicht verwalteten App an Ihre App zu senden.
4. Vergewissern Sie sich, dass Ihre App keine Daten von der nicht verwalteten App empfangen kann.
Empfangen von Daten von verwalteter App "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keine Daten von anderen Apps empfangen kann, überspringen Sie.
1. Wechseln Sie zur anderen verwalteten App.
2. Navigieren Sie zu dem Ort, an den Daten gesendet werden können.
3. Versuchen Sie, Daten aus der anderen verwalteten App an Ihre App zu senden.
4. Vergewissern Sie sich, dass Ihre App Daten von der anderen verwalteten App empfangen kann.

Andere Datenschutzeinstellungen

Die folgenden Datenschutzeinstellungen werden erst erzwungen, wenn Ihre App zusätzliche Änderungen vornimmt. Sie müssen diese Einstellungen zu diesem Zeitpunkt nicht testen. Weitere Informationen finden Sie unter Phase 7: App-Teilnahmefeatures .

Szenario Richtlinieneinstellung für App-Schutz Muss Unterstützung implementieren, wenn...
Speichern von Datenkopien Kopien von Organisationsdaten speichern Ihre Anwendung kann Daten in einem lokalen oder Cloudspeicher speichern.
Öffnen von Daten aus dem Speicher Daten in Organisationsdokumenten öffnen Ihre Anwendung kann Daten aus lokalem oder Cloudspeicher öffnen.
Verwalteter Benachrichtigungsinhalt Benachrichtigungen zu Organisationsdaten Ihre App enthält Benutzerdaten in Benachrichtigungen.
Sichern und Wiederherstellen Sichern von Organisationsdaten in Android Sicherungsdienste Ihre App gibt Benutzerdaten für die Sicherungsfunktion von Android frei.

Bedingte Starttests

Einstellungen für bedingten Start sind eine Teilmenge der App-Schutzrichtlinienfeatures, die den Zugriff auf Ihre App basierend auf konfigurierbaren geräteweiten oder App-spezifischen Kriterien einschränken. Diese Einstellungen umfassen sowohl Bedingungen (z. B. "Mindestversion des Betriebssystems") als auch Aktionen (z. B. "Zugriff blockieren"). Bedingte Startaktionen können entweder:

  • Warnung: Der Endbenutzer sieht ein Warndialogfeld, wenn sein Gerät oder seine App die Kriterien nicht erfüllt. Sie haben weiterhin Zugriff auf alle App-Daten.
  • Zugriff blockieren: Dem Endbenutzer wird ein Warndialogfeld angezeigt, wenn sein Gerät oder seine App die Kriterien nicht erfüllt. Sie dürfen die App erst öffnen und auf App-Daten zugreifen, wenn sie entweder die Kriterien erfüllen oder das verwaltete Konto aus der App entfernen.
  • Daten löschen: Alle Unternehmensdaten, die dem verwalteten Konto zugeordnet sind, werden gelöscht, wenn das Gerät oder die App die Kriterien nicht erfüllt. Der Benutzer hat keine Möglichkeit, die Kriterien zu erfüllen, bevor die Daten entfernt werden.

Einige Einstellungen für den bedingten Start können mit mehreren Werten und Aktionen konfiguriert werden. Zum Beispiel:

  • Mindestens BS-Version, Wert "10.0", Aktion auf "Warn" festgelegt.
  • Mindestens BS-Version, Wert "9.0", Aktion auf "Zugriff blockieren" festgelegt
  • Mindestens BS-Version, Wert "8.0", Aktion auf "Daten löschen" festgelegt.

Wenn Sie die Integrationsschritte in dieser Phase ausführen, unterstützt Ihre App jetzt alle Features für bedingten Start. Machen Sie sich mit der Funktionalität für bedingten Start vertraut, indem Sie Richtlinienelemente so ändern, dass Ihr Testgerät:

  • Übernimmt alle konfigurierten Einstellungen für den bedingten Start.
  • Eine konfigurierte Einstellung für den bedingten Start, die auf die Aktion "Warnen" gesetzt ist, schlägt fehl.
  • Bei einer konfigurierten Einstellung für einen bedingten Start, die auf die Aktion "Zugriff blockieren" festgelegt ist, tritt ein Fehler auf.
  • Bei einer konfigurierten Einstellung für einen bedingten Start, die auf die Aktion "Daten löschen" festgelegt ist, tritt ein Fehler auf.

Problembehandlung

Erste Problembehandlung bei Richtlinienanwendungstests

Wenn Sie die obigen Schritte zum Testen der ersten Richtlinienanwendung befolgen, können die folgenden unerwarteten Verhaltensweisen auftreten:

Nach der Anmeldung mit einem verwalteten Konto werde ich nicht aufgefordert, das Unternehmensportal zu installieren (Schritt 7)

Besuchen Sie zunächst das Intune Admin Center, und überprüfen Sie, ob die App-Schutzrichtlinie auf Ihr Testkonto ausgerichtet ist.

Überprüfen Sie als Nächstes Ihren Quellcode auf Aufrufe registerAccountForMAM und Implementierung von MAMServiceAuthenticationCallback. Wenn Ersteres nicht zum richtigen Zeitpunkt aufgerufen wird und/oder Letzteres kein ordnungsgemäßes Token bereitgestellt hat, wird die Eingabeaufforderung im Unternehmensportal nicht angezeigt.

Suchen Sie schließlich entweder in den Protokollen (oder beim Debuggen) nach dem Registrierungsergebniscode, oder rufen Sie das Konto explizit auf getRegisteredAccountStatus . Codes wie NOT_LICENSED können auf Konfigurationsprobleme mit dem Testkonto hinweisen.

Der Bildschirm "Zugriff abrufen" wurde nach der Anmeldung nicht angezeigt (Schritt 10)

Wenn das Unternehmensportal zuvor nicht installiert wurde, müssen Sie Ihre Anwendung möglicherweise fortsetzen oder vollständig neu starten, damit der Bildschirm Zugriff erhalten angezeigt wird und die Richtlinie ordnungsgemäß durchgesetzt wird. Dies ist ein erwartetes Ergebnis, das darauf basiert, wie SDK-integrierte Apps Code innerhalb der Unternehmensportal-App nutzen.

Wenn der Bildschirm "Zugriff erhalten" auch nach dem Neustart Ihrer App und der erneuten Anmeldung immer noch nicht angezeigt wird, kann das SDK möglicherweise weder das Konto registrieren noch die Richtlinie für das Konto abrufen. Überprüfen Sie die Implementierung von MAMServiceAuthenticationCallback.

Ich habe den Bildschirm zum Festlegen oder Eingeben einer App-PIN nach der Anmeldung nicht angezeigt (Schritt 11)

Sind weitere SDK-integrierte Anwendungen auf Ihrem Testgerät vorhanden? Die App-PIN wird von allen verwalteten Apps gemeinsam genutzt, und das SDK verfügt über einen globalen Timer, der verhindert, dass Endbenutzer bei jedem Start oder Fortsetzen einer verwalteten App zur Eingabe der PIN aufgefordert werden.

Überprüfen Sie andernfalls das Intune Admin Center, ob in der App-Schutzrichtlinie die App-PIN aktiviert ist und sie auf Ihr Testkonto ausgerichtet ist.

Durch einen Neustart des Geräts wird als letzte Möglichkeit der PIN-Timer zurückgesetzt. Wenn der PIN-Bildschirm nach dem Neustart Ihres Geräts nicht angezeigt wird, ist er wahrscheinlich in der Richtlinie nicht ordnungsgemäß konfiguriert.

Ich habe den Bildschirm "Zugriff erhalten" gesehen, aber Screenshots sind weiterhin zulässig (Schritt 12)

Während die Richtlinie abgerufen wird, wird die falsche Richtlinie angewendet. Besuchen Sie zunächst das Intune Admin Center, und überprüfen Sie, ob die App-Schutzrichtlinie Screenshots deaktiviert und auf Ihr Testkonto ausgerichtet ist. Verwenden Sie als zweiten Schritt die Diagnosekonsole (siehe oben), um die Richtlinie zu überprüfen, die für Ihre App heruntergezogen wurde. Wenn beide Richtlinien bestätigen, dass Screenshots blockiert werden sollen, überprüfen Sie die Konfiguration Ihres Gradle-Build-Plug-Ins, um sicherzustellen, dass MAM-Ersetzungen vorgenommen werden.

Meine App scheint nach dem Abmelden abzustürzen oder geschlossen zu werden (Schritt 13)

Wenn Sie die Registrierung eines Kontos aufheben, das zuvor registriert war und für das eine Richtlinie erzwungen wurde, werden die diesem Konto zugeordneten Daten vom SDK gelöscht. Das Beenden des App-Prozesses wird erwartet.

Screenshots bleiben auch nach dem Abmelden blockiert (Schritt 14)

Überprüfen Sie Ihren Quellcode auf Aufrufe von unregisterAccountForMAM(). Wenn die Richtlinie nach dem Abmelden weiterhin erzwungen wird, wurde die Registrierung des Kontos und die Registrierung des Kontos wahrscheinlich nicht ordnungsgemäß aufgehoben.

Fehlerbehebung bei Datenschutztests

Wenn Sie die obigen Schritte zum Datenschutz testen , können die folgenden unerwarteten Verhaltensweisen auftreten:

Meine App empfängt oder erzwingt keine Richtlinien

Vergewissern Sie sich zunächst, dass die App-Schutzrichtlinie auf eine Gruppe ausgerichtet ist, die Ihr Testkonto enthält. Weitere Informationen finden Sie unter So überprüfen Sie die Einrichtung Ihrer App-Schutzrichtlinie in Microsoft Intune.

Überprüfen Sie als zweiten Schritt die Diagnoseinformationen des Clients, um zu bestätigen, dass das SDK die konfigurierte Richtlinie erhalten hat. Wenn dies nicht der Fall ist, überprüfen Sie die Implementierung Ihrer App und MAMServiceAuthenticationCallback rufen Sie auf registerAccountForMAM. Überprüfen Sie außerdem die Protokolle, oder debuggen Sie, um die MAMEnrollmentManager.Result.

Meine App kann Daten für eine nicht verwaltete App freigeben

Stellen Sie sicher, dass "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt ist. Überprüfen Sie das Microsoft Intune Admin Center, um sicherzustellen, dass die Richtlinie ordnungsgemäß konfiguriert und ausgerichtet ist. Überprüfen Sie die Diagnoseinformationen des Clients, um sicherzustellen, dass das SDK die konfigurierte Richtlinie erhalten hat.

Wenn die Richtlinie ordnungsgemäß konfiguriert und abgerufen wurde, überprüfen Sie als Nächstes , ob Richtlinien erzwungen werden: Meine App empfängt oder erzwingt keine Richtlinien.

Meine App kann keine Daten für eine andere verwaltete App freigeben

Bestätigen Sie die Einstellungen der App-Schutzrichtlinie, die sowohl auf Ihre App als auch auf die andere verwaltete App ausgerichtet sind. Es wird empfohlen, für beide Apps dieselbe Richtlinie zu verwenden. In der Richtlinie, die auf Ihre App abzielt, sollte "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt sein. Überprüfen Sie die Richtlinie, die auf die andere App abzielt. Wenn "Daten von anderen Apps empfangen" auf "Keine" festgelegt ist, wird dieses Verhalten erwartet.

Meine App kann Daten von einer nicht verwalteten App empfangen

Vergewissern Sie sich, dass "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt ist. Überprüfen Sie das Microsoft Intune Admin Center, um sicherzustellen, dass die Richtlinie ordnungsgemäß konfiguriert und ausgerichtet ist. Überprüfen Sie die Diagnoseinformationen des Clients, um sicherzustellen, dass das SDK die konfigurierte Richtlinie erhalten hat.

Wenn die Richtlinie ordnungsgemäß konfiguriert und abgerufen wurde, überprüfen Sie als Nächstes , ob Richtlinien erzwungen werden: Meine App empfängt oder erzwingt keine Richtlinien.

Meine App kann keine Daten von einer anderen verwalteten App empfangen

Bestätigen Sie die Einstellungen der App-Schutzrichtlinie, die sowohl auf Ihre App als auch auf die andere verwaltete App ausgerichtet sind. Es wird empfohlen, für beide Apps dieselbe Richtlinie zu verwenden. In der Richtlinie, die auf Ihre App abzielt, sollte "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt sein. Überprüfen Sie die Richtlinie, die auf die andere App abzielt. Wenn "Organisationsdaten an andere Apps senden" auf "Keine" festgelegt ist, wird dieses Verhalten erwartet.

Nächste Schritte

Nachdem Sie alle oben genannten Beendigungskriterien erfüllt haben, ist Ihre App jetzt erfolgreich als Einzelidentität integriert und kann alle grundlegenden App-Schutzrichtlinien erzwingen. Die nachfolgenden Abschnitte, Phase 5: Multi-Identity, Phase 6: App Configuration und Phase 7: App-Teilnahme Features sind möglicherweise erforderlich, abhängig von der gewünschten Unterstützung der App-Schutzrichtlinie Ihrer App. Wenn Sie nicht sicher sind, ob einer dieser Abschnitte auf Ihre App zutrifft, lesen Sie erneut die wichtigsten Entscheidungen für die SDK-Integration.