Intune App SDK für Android – Mam-Integration essentials

Mit dem Microsoft Intune App SDK für Android können Sie Intune-App-Schutzrichtlinien (auch als APP- oder MAM-Richtlinien bezeichnet) 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 ganz einfach für Ihre von Intune verwaltete App bereitstellen, wenn Intune die App aktiv verwaltet.

Hinweis

Dieser Leitfaden ist in mehrere unterschiedliche Phasen unterteilt. Sehen Sie sich zunächst Phase 1: Planen der Integration an.

Phase 4: MAM Integration Essentials

Stage Goals

  • Aktivieren Sie den MAM Strict-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 nach der Authentifizierung bei MSAL neue Konten für die MAM-Verwaltung.
  • 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 nun 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 dem Erzwingen von App-Schutzrichtlinieneinstellungen für MAM-geschützte Konten zu beginnen.

In dieser Phase erfahren Sie, wie Sie sich mit der Protokollierung des SDK verbinden, ein Diagnose-Dialogfeld aufrufen, den MAM Strict-Modus aktivieren, um mögliche Integrationsfehler zu identifizieren, sich für Benachrichtigungen vom SDK zu registrieren und vor allem, wie Sie ein Konto für Intune MAM registrieren, um die Richtlinie zu erhalten.

MAM Strict Mode

Mam Strict Mode kann potenzielle Fehler bei der Integration des Intune App SDK in Ihrer Anwendung identifizieren. Diese Integrationsfehler können zu Fehlern bei der ordnungsgemäßen Anwendung der App-Schutzrichtlinie führen und Unternehmensdaten ungeschützt lassen. Daher ist die Verwendung des MAM Strict-Modus erforderlich.

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

Rufen Sie auf, um den MAM Strict-Modus zu aktivieren.

MAMStrictMode.enable();

früh bei der Anwendungsinitialisierung (z. B Application.onCreate. ).

Wenn bei einer MAM Strict Mode-Überprüfung ein Fehler auftritt, versuchen Sie zu ermitteln, ob es sich um ein echtes Problem handelt, das in Ihrer App behoben werden kann, oder ob es sich um ein falsch positives Problem handelt. Wenn Sie der Meinung sind, dass es sich um ein falsch positives Ergebnis handelt oder Sie sich nicht sicher sind, informieren Sie das Intune MAM-Team. Auf diese Weise können wir sicherstellen, dass wir mit der falsch positiven Feststellung einverstanden sind und versuchen, die Erkennung für zukünftige Releases zu verbessern. Um falsch positive Ergebnisse zu unterdrücken, deaktivieren Sie die fehlerhafte Überprüfung gemäß den folgenden Anweisungen.

Behandeln von Verstößen

Wenn eine Überprüfung fehlschlägt, wird ein MAMStrictViolationHandler ausgeführt. Der Standardhandler löst einen Erroraus, der die App abstürzen soll. Dies ist, um Fehler so laut wie möglich zu machen, und passt in die Absicht, dass der strict-Modus in Produktionsbuilds nicht aktiviert werden sollte.

Wenn Ihre App Verstöße anders behandeln möchte, kann sie einen eigenen Handler bereitstellen, indem sie aufruft:

MAMStrictMode.global().setHandler(handler);

wobei handler implementiert MAMStrictViolationHandler.

Unterdrücken von Überprüfungen

Wenn eine Überprüfung in einer Situation fehlschlägt, in der Ihre App nichts falsch ausführt, melden Sie sie wie oben erwähnt. In der Zwischenzeit kann es erforderlich sein, die Überprüfung zu deaktivieren, die auf ein falsch positives Ergebnis stößt, zumindest während sie auf ein aktualisiertes SDK warten. Die Überprüfung, bei der ein Fehler aufgetreten ist, wird in dem fehler angezeigt, der vom Standardhandler ausgelöst wird, oder wird an einen benutzerdefinierten Handler übergeben, falls festgelegt.

Obwohl Unterdrückungen global erfolgen können, wird die vorübergehende Deaktivierung pro Thread an der bestimmten Aufrufwebsite bevorzugt. Die folgenden Beispiele zeigen verschiedene Möglichkeiten, MAMStrictCheck.IDENTITY_NO_SUCH_FILE zu deaktivieren (wird 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 permanente 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 aus dem 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 empfangen.

Wenn beispielsweise ein IT-Administrator einen Befehl zum selektiven Zurücksetzen für ein Gerät ausgibt, sendet der Intune-Dienst eine Benachrichtigung an das SDK, die als WIPE_USER_DATAan Ihre Anwendung übergeben wird. Ihre Anwendung kann auf diese Benachrichtigung lauschen und steuern, welche Daten zurückgesetzt werden. oder es kann sich auf das Standardzurücksetzungsverhalten des SDK verlassen.

Viele der Benachrichtigungen sind optional. Abhängig von den SDK-Features, die Ihre Anwendung verwendet, sind möglicherweise einige Benachrichtigungen erforderlich. Unter Registrieren für Benachrichtigungen aus dem SDK in Phase 7: Features für die App-Teilnahme finden Sie Details dazu, wie Sie sich für Benachrichtigungen registrieren, welche Benachrichtigungen das SDK übermittelt und wie sie bestimmte Benachrichtigungstypen behandeln.

Registrieren für App-Schutzrichtlinie

Wenn Administratoren App-Schutzrichtlinien erstellen, richten sie diese Richtlinien auf bestimmte Konten in ihren 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 für die Bereitstellung dieser Kontoinformationen für das SDK verantwortlich. Dieser Vorgang wird als Registrierung bezeichnet.

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 eine App-Schutzrichtlinie angewendet werden. Unter Android gilt diese Einschränkung für ein einzelnes verwaltetes Konto geräteweit.

Registrierung im Vergleich zu Registrierung

Die 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.

Bei der Registrierung zeichnet das SDK das registrierte Konto beim Intune-Dienst auf, damit die Richtlinie des Kontos angewendet werden kann. Ihre App muss keine Funktionen für die Registrierung aufrufen. Das SDK verarbeitet die Registrierung nach der Registrierung eines Kontos vollständig.

Wenn ein Konto bereits für Ihre Anwendung registriert ist und ein anderes Konto registriert wird, wird dieses zweite Konto nicht registriert, und die Richtlinie wird nicht angewendet, selbst wenn dieses Konto auf App-Schutzrichtlinien abzielt.

Hinweis

Der Begriff "Registrierung" kann sich auch auf die geräteweite MDM-Registrierung beziehen. Weitere Informationen finden Sie 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 registrieren zu können:

  1. Die App muss eine instance der MAMServiceAuthenticationCallback-Schnittstelle implementieren und registrieren. Der Rückruf instance muss in der onCreate() -Methode (oder onMAMCreate()) 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 initiieren, 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 abgerufen 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: zum Registrieren registrierter Konten, zum Abrufen von Updates für App-Schutzrichtlinie-Einstellungen und zum Abrufen ausstehender Administratoraktionen, z. B. selektives Löschen geschützter Daten innerhalb Ihrer App. Für die erfolgreiche Kommunikation mit dem Intune-Dienst benötigt das SDK neue Zugriffstoken von Apps, die MSAL integriert haben.

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

In Phase 2 haben Sie MSAL für die Authentifizierung und das Abrufen von Zugriffstoken in Ihre Anwendung integriert. Hier implementieren Sie einen Authentifizierungsrückruf, damit das SDK die erforderlichen 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);
  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 Ressourcen-ID anfordern kann. Der Rückruf instance muss durch Aufrufen der MAMEnrollmentManagerregisterAuthenticationCallback-Methode bereitgestellt werden. Ein Token kann zu einem frühen Zeitpunkt im App-Lebenszyklus für Registrierungswiederholungen oder Eincheckvorgänge zur Aktualisierung der App-Schutzrichtlinie erforderlich sein, sodass der Rückruf in der onCreate() -Methode (oder onMAMCreate()) der Application App-Unterklasse registriert werden muss.

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

    Tipp

    Stellen Sie sicher, dass Ihre App die resourceId Parameter und verwendet, die aadId an acquireToken() übergeben werden, damit das richtige Token abgerufen wird. Sollte resourceId verwendet werden, um die richtigen Bereiche zu generieren, und der aadId sollte verwendet werden, um das richtige Konto zu übergeben. Wenn Ihre App die Microsoft Entra-Autorität benötigt, um das Token ordnungsgemäß abzurufen, implementieren Sie die MAMServiceAuthenticationCallbackExtended -Schnittstelle.

    class MAMAuthCallback implements MAMServiceAuthenticationCallback {
        public String acquireToken(String upn, String aadId, String resourceId) {
            final String[] scopes = {resourceId + "/.default"};
    
            final IAccount account = getAccount(aadId);
            if (account == null) {
                callback.onError(
                        new MsalUiRequiredException(MsalUiRequiredException.NO_ACCOUNT_FOUND, "no account found for " + aadId));
                return;
            }
    
            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 kein Token bereitstellen kann, wenn das SDK aufruft acquireToken() (z. B. wenn die automatische Authentifizierung fehlschlägt und die Anzeige einer Benutzeroberfläche unpraktisch ist), kann die App zu einem späteren Zeitpunkt ein Token bereitstellen, indem die updateToken-Methode aufgerufen wird. Der gleiche UPN, Microsoft Entra-ID und dieselbe Ressourcen-ID, die vom vorherigen Aufruf acquireToken() von angefordert wurden, müssen zusammen mit dem Token, das schließlich abgerufen wurde, an updateToken()übergeben werden. Die App sollte diese Methode so schnell wie möglich aufrufen, nachdem null aus dem bereitgestellten Rückruf zurückgegeben wurde.

    Warnung

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

    Hinweis

    Das SDK ruft in regelmäßigen Abständen auf acquireToken() , um das Token zu erhalten, sodass ein Aufruf updateToken() nicht unbedingt erforderlich ist. Es wird jedoch dringend empfohlen, da dies dazu beitragen kann, dass Registrierungen und App-Schutzrichtlinie-Check-Ins rechtzeitig abgeschlossen werden.

Hinweise zur Authentifizierungsimplementierung

  • Apps werden empfohlen, vor dem Aufrufen von registerAccountForMAM Microsoft Entra Token abzurufen. Nach der Registrierung eines Kontos erhalten Apps einen Rückruf der registrierten MAMServiceAuthenticationCallback- acquireToken() Methode in einem anderen Thread. Wenn Sie in diesem Rückruf ein gültiges Token angeben, kann die Registrierung fortgesetzt werden. Die App erhält das Registrierungsergebnis per Benachrichtigung.

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

  • Die registrierten MAMServiceAuthenticationCallback Apps werden auch aufgerufen, um ein Token für regelmäßige Aktualisierungen der App-Schutzrichtlinie abzurufen. Wenn die App bei der Anforderung kein Token bereitstellen kann, wird keine Benachrichtigung angezeigt, aber sie sollte versuchen, ein Token abzurufen und zum nächsten geeigneten Zeitpunkt aufzurufen updateToken() , um den Eincheckvorgang zu beschleunigen. Wenn kein Token bereitgestellt wird, wird der Rückruf möglicherweise beim nächsten Eincheckversuch trotzdem aufgerufen.

  • Die Unterstützung für Sovereign Clouds erfordert die Bereitstellung der Autorität.

  • 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

Wenn die App ein Konto hinzufügt, muss sie das Konto beim SDK registrieren. Ebenso sollte die Registrierung dieses Kontos, wenn die App ein Konto entfernt, aufheben, um anzugeben, dass die App keine Richtlinie mehr für dieses Konto anwenden soll. Wenn das Konto beim MAM-Dienst registriert wurde, wird die Registrierung des Kontos aufgehoben, und die App wird zurückgesetzt.

MAMEnrollmentManager verfügt über die folgenden Kontoregistrierungsmethoden:

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 aufrufen 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 bei bestimmten 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 die status von Registrierungsversuchen asynchron über Benachrichtigungen bereit.

  2. Der beste Zeitpunkt für den Aufruf registerAccountForMAM ist, nachdem sich der Benutzer bei der App angemeldet und erfolgreich mit MSAL authentifiziert wurde. Die Microsoft Entra Benutzer-ID des Kontos und die Mandanten-ID werden vom MSAL-Authentifizierungsaufruf als Teil der zurückgegeben, die IAccount sich auf den IAuthenticationResultbezieht.

    • Das Konto stammt aus der IAuthenticationResult.getAccount() -Methode und enthält die entsprechenden Kontoinformationen.
    • Die AAD-ID stammt aus der IAccount.getId() -Methode.
    • Die Mandanten-ID stammt aus der IAccount.getTenantId() -Methode.
    • Die Autorität stammt aus der IAccount.getAuthority() -Methode.
  3. Um die Registrierung eines Kontos bei der Intune-Verwaltung aufzuheben, sollte die App aufrufen unregisterAccountForMAM(). Wenn das Konto erfolgreich registriert wurde und verwaltet wird, hebt das SDK die Registrierung des Kontos auf und setzt seine Daten zurück. Regelmäßige Registrierungsversuche für das Konto werden beendet. Das SDK stellt die status von Registrierungsaufhebungsanforderungen asynchron über Benachrichtigungen bereit.

Hinweise zur Implementierung der Registrierung

  • Die Registrierungsmethoden sind idempotent. Beispielsweise registriert registerAccountForMAM nur ein Konto und versucht, die App zu registrieren, wenn das Konto noch nicht registriert ist. UnregisterAccountForMAM hebt die Registrierung eines Kontos nur auf, wenn es derzeit registriert ist. Nachfolgende Aufrufe sind no-ops, sodass es nicht schadet, diese Methoden mehrmals aufzurufen.

  • Es gibt keine Garantie dafür, dass jeder Registrierungs-/Aufhebungsaufruf über eine entsprechende Ergebnisbenachrichtigung verfügt. Wenn beispielsweise für ein Konto aufgerufen wird, registerAccountForMAM() das bereits registriert ist, wird die Benachrichtigung möglicherweise nicht erneut für diese Identität gesendet. Alternativ kann das SDK Benachrichtigungen senden, auch wenn Ihre App diese Methoden nicht aufgerufen hat, da das SDK in regelmäßigen Abständen versucht, registrierungen im Hintergrund durchzuführen und die Aufhebung der Registrierung durch Zurücksetzungsanforderungen ausgelöst werden kann, die vom Intune-Dienst empfangen werden.

  • Die Registrierungsmethoden können für eine beliebige Anzahl unterschiedlicher Konten aufgerufen werden, aber derzeit kann nur ein Konto erfolgreich registriert werden. Wenn mehrere Konten, die für Intune lizenziert sind und für die eine App-Schutzrichtlinie gilt, gleichzeitig oder fast gleichzeitig registriert werden, gibt es keine Garantie dafür, welches Konto das Rennen gewinnt.

  • Sie können MAMEnrollmentManager abfragen, um zu ermitteln, ob ein bestimmtes Konto registriert ist, und die aktuelle 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 die status des Kontos als eines der Member 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 Sovereign Cloud-fähig ist, muss sie den authority Parameter für registerAccountForMAM()bereitstellen.

MSAL-Leitfaden

Legen Sie für MSAL in der MSAL-Konfigurationsdatei auf true festmultiple_clouds_supported.

{
  "multiple_clouds_supported": true,
}

Registrierungsergebnis und status Codes

Wenn ein Konto zum ersten Mal registriert wird, beginnt es mit dem PENDING Status, der angibt, dass der erste Registrierungsversuch des MAM-Diensts 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 die status des Kontos zurück, sodass die App immer ermitteln kann, ob für dieses Konto App-Schutzrichtlinien erzwungen werden. Wenn der Registrierungsversuch fehlschlägt, kann sich die status des Kontos im Laufe der Zeit ändern, wenn das SDK die Registrierung im Hintergrund wiederholt.

Ergebniscode Erklärung
AUTHORIZATION_NEEDED Dieses Ergebnis gibt an, dass ein Token nicht von der registrierten MAMServiceAuthenticationCallback-instance der App bereitgestellt wurde oder das bereitgestellte Token ungültig war. Die App sollte ein gültiges Token abrufen und nach Möglichkeit updateToken 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. Registrierungen werden 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 Richtlinienaktualisierungsbenachrichtigung gesendet. Der Zugriff auf Unternehmensdaten sollte zulässig sein.
ENROLLMENT_FAILED Fehler beim Registrierungsversuch. Weitere Informationen finden Sie in den Geräteprotokollen. Die App sollte den Zugriff auf Unternehmensdaten in diesem Zustand nicht 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 ihre App sie erhält.
WRONG_USER Nur ein Konto pro Gerät kann eine App beim MAM-Dienst registrieren. Dieses Ergebnis gibt an, dass für das Konto, für das dieses Ergebnis übermittelt wurde (das zweite Konto), die MAM-Richtlinie gilt, aber bereits ein anderes Konto registriert ist. Da die MAM-Richtlinie für das zweite Konto nicht erzwungen werden kann, darf Ihre App den Zugriff auf die Daten dieses Kontos (möglicherweise durch Entfernen des Kontos aus Ihrer App) nur zulassen, wenn die Registrierung für dieses Konto zu einem späteren Zeitpunkt erfolgreich ist. Gleichzeitig mit der Übermittlung dieses Ergebnisses WRONG_USER fordert MAM mit der Option zum Entfernen des vorhandenen Kontos auf. Wenn der menschliche Benutzer mit Bejahung antworte, ist es in der Tat möglich, das zweite Konto kurze Zeit später zu registrieren. Solange das zweite Konto registriert bleibt, wiederholt MAM die Registrierung in regelmäßigen Abständen.
UNENROLLMENT_SUCCEEDED Die Registrierung wurde erfolgreich aufgehoben.
UNENROLLMENT_FAILED Fehler bei der Aufhebung der Registrierung. Weitere Informationen finden Sie in den Geräteprotokollen. Im Allgemeinen tritt dies nicht auf, solange die App einen gültigen UPN (weder NULL noch leer) übergibt. Es gibt keine direkte, zuverlässige Korrektur, die die App durchführen kann. Wenn dieser Wert beim Aufheben der Registrierung eines gültigen UPN empfangen wird, melden Sie als Fehler an das Intune MAM-Team.
PENDING Der erste Registrierungsversuch für das Konto wird ausgeführt. Die App kann den Zugriff auf Unternehmensdaten blockieren, bis das Registrierungsergebnis bekannt ist, aber dafür nicht erforderlich ist.
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 es anzuweisen, die Unternehmensportal App zu installieren. Beim Senden dieser Benachrichtigung an die App zeigt das Intune App SDK eine nicht blockierende Benutzeroberfläche über der aktuellen Aktivität an, wenn die Aktivität für den Benutzer aktuell sichtbar ist oder das nächste Mal onResume aufgerufen wird. Wenn der Benutzer diese nicht blockierende Benutzeroberfläche abbricht, zeigt das Intune App SDK eine blockierende Benutzeroberfläche an, wenn das nächste Mal onCreate für eine Aktivität aufgerufen wird und die aktuelle Identität verwaltet wird (Details zur Problembehandlung finden Sie unten).

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

Um MAM-Protokolle in Ihrer App zu empfangen, erstellen Sie einen Java-Handler , und fügen Sie ihn dem MAMLogHandlerWrapper hinzu. Dadurch wird für den Anwendungshandler für jede Protokollmeldung 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 "personenbezogene Informationen" und kann Daten wie Benutzernamen und UPNs enthalten. Es wird dringend empfohlen, solche personenbezogenen Daten 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. Die Unternehmensportal enthält eine Benutzeroberfläche, die Folgendes umfasst:

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

Informationen zur Intune-Diagnose-Benutzeroberflächein Intune-App

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

Tipp

Wenn Sie mit einem Konto testen, für das die MAM-Richtlinie angewendet werden soll, die Diagnose jedoch keine Richtlinie für den Paketnamen Ihrer App anzeigen, lesen Sie den Abschnitt Problembehandlung weiter unten.

Apps können diese Diagnose Ui durch Aufrufen MAMPolicyManager.showDiagnostics(context)von starten. Endbenutzer können die Diagnosekonsole des Unternehmensportal auch über Microsoft Edge starten, indem sie in die Adressleiste eingebenabout:intunehelp. Dies ist ein optionales Feature, das beim Debuggen hilfreich sein kann.

Diese Diagnose Informationen sind nur verfügbar, wenn die Unternehmensportal auf dem Gerät installiert ist. Ein Warndialogfeld wird angezeigt, wenn showDiagnostics aufgerufen wird, ohne dass die Unternehmensportal installiert ist.

Exitkriterien

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

First Policy Application Test

Führen Sie zuerst 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 (ausführliche Informationen finden Sie unter Erstellen einer Android-Test-App-Schutzrichtlinie in Phase 1). Konfigurieren Sie für diesen Test die Richtlinie:
    • Legen Sie unter Datenschutz "Bildschirmaufnahme und Google Assistant" auf "Blockieren" fest.
    • Behalten Sie unter Zugriffsanforderungen die Standardeinstellungen bei. Insbesondere sollte "PIN für Den Zugriff" "Erforderlich" sein.
  2. Stellen Sie sicher, dass die App-Schutzrichtlinie für Ihre Anwendung gilt. Sie müssen den Paketnamen wahrscheinlich manuell im Richtlinienerstellungs-Assistenten 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

      Wenn Sie andere SDK-integrierte Apps deinstallieren, können Sie sicherstellen, 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, für das die App-Schutzrichtlinie gilt.
  7. Vergewissern Sie sich, dass Sie aufgefordert werden, die Intune-Unternehmensportal von Google Play zu installieren.
    • Hinweis

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

  8. Installieren Sie die Unternehmensportal. Sie müssen die 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. Vergewissern Sie sich, dass Sie mit einem Bildschirm "Zugriff abrufen" aufgefordert werden. Dies gibt an, 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 eine Richtlinie verfügt, sollte dies auf jedem Bildschirm immer blockiert werden.
  13. Melden Sie das verwaltete Konto von Ihrer Anwendung ab.
  14. Navigieren Sie nach Möglichkeit ohne Anmeldung in Ihrer Anwendung, und versuchen Sie, Screenshots zu erstellen. Nachdem das Konto entfernt wurde, sollte dies nicht blockiert werden.

Dies ist ein absoluter Mindesttest , 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 App-Schutzrichtlinie-Einstellungen das Verhalten Ihrer Anwendung ändern.

Datenschutztests

Die folgenden Tests decken bestimmte Datenschutzeinstellungen ab, 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 ändernder Richtlinie .

Für diese Tests:

  1. Installieren Sie Ihre App.
  2. Installieren Sie die Intune-Unternehmensportal.
  3. Installieren Sie eine weitere verwaltete App mit der gleichen Richtlinie wie Ihre App, die Daten kopieren und einfügen kann (z. B. Microsoft Office).
  4. Installieren (oder wiederverwenden) alle nicht verwalteten Apps, die Daten kopieren und einfügen können.
  5. Melden Sie sich mit dem verwalteten Testkonto bei Ihrer App an.
  6. Melden Sie sich mit dem verwalteten Testkonto bei der anderen verwalteten App an.
Szenario App-Schutzrichtlinieneinstellung 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 oder das gespeicherte Bild vollständig leer ist.
Text kopieren "Ausschneiden, Kopieren und Einfügen zwischen anderen Apps einschränken" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keinen Text zum Kopieren enthält, überspringen Sie diese Option.
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. Vergewissern Sie sich, dass das Einfügen 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.
Einfügen von Text "Ausschneiden, Kopieren und Einfügen zwischen anderen Apps einschränken" auf "Richtlinienverwaltete Apps" festgelegt 0. Wenn Ihre App keine Texteingaben zum Einfügen enthält, ü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. Vergewissern Sie sich, dass das Einfügen 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 "Blockieren" festgelegt 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.
Managed Browser "Webinhaltsübertragung mit anderen Apps einschränken" auf "Microsoft Edge" festgelegt 0. Wenn Ihre App keine Weblinks rendert, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die Weblinks oder Texteingaben anzeigen können, die in klickbare Weblinks gerendert werden.
2. Wählen Sie für jede Seite den Weblink aus.
3. Bestätigen Sie, dass Sie aufgefordert werden, Microsoft Edge zu installieren und der Weblink nicht in einem anderen Browser geöffnet wird.
Eingeschränkte Tastatur "Genehmigte Tastaturen" auf "Erforderlich" festgelegt
"Zu genehmigende Tastaturen auswählen" wird nur auf ein Tastaturpaket festgelegt, das auf Ihrem Gerät derzeit nicht installiert ist
0. Wenn Ihre App über keine Texteingaben verfügt, überspringen Sie.
1. Navigieren Sie zu allen Seiten in Ihrer App, die Texteingaben enthalten.
2. Wählen Sie die Texteingabe aus, um die Gerätetastaturen anzuzeigen.
3. Vergewissern Sie sich, dass Sie aufgefordert werden, die konfigurierte genehmigte Tastatur zu installieren und die aktuelle Gerätetastatur nicht geöffnet wird.

Datenübertragungstests

Datenübertragungseinstellungen sind eine Teilmenge der Datenschutzfeatures der App-Schutzrichtlinie, die das Ein- und Beenden verwalteter Apps steuern. Die meisten Apps, die das Senden oder Empfangen von Daten von anderen Apps unterstützen, haben auch die Möglichkeit, Daten im lokalen oder Cloudspeicher zu speichern und zu öffnen . Wenn Ihre App über diese Funktionen verfügt, müssen Sie zusätzliche Unterstützung implementieren. Weitere Informationen finden Sie unter Richtlinie zum Einschränken der Datenübertragung zwischen Apps und Geräten oder Cloudspeicherorten .

Ihre App importiert möglicherweise aktiv Daten aus anderen Apps, z. B. microsoft Outlook beim Anfügen einer Datei aus Microsoft OneDrive. Ihre App kann auch passiv Daten von anderen Apps empfangen, z. B. von Microsoft Office beim Öffnen eines Dokuments aus einer Microsoft Outlook-Anlage. Die Einstellung für die Empfangs-App-Schutzrichtlinie deckt beide Szenarien ab.

Für diese Tests:

  1. Installieren Sie Ihre App.
  2. Installieren Sie die Intune-Unternehmensportal.
  3. Installieren Sie eine weitere verwaltete App mit der gleichen Richtlinie wie Ihre App, die Daten senden und empfangen kann (z. B. Microsoft Outlook).
  4. Installieren (oder wiederverwenden) sie jede nicht verwaltete App, die Daten senden und empfangen kann.
  5. Melden Sie sich mit dem verwalteten Testkonto bei Ihrer App an.
  6. Melden Sie sich mit dem verwalteten Testkonto bei der anderen verwalteten App an.
Szenario App-Schutzrichtlinieneinstellung Testschritte
Senden von Daten an andere Apps "Senden von Organisationsdaten an andere Apps" 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 auf das Senden von Daten nur an andere verwaltete Apps beschränkt sind. Es sollte eine App-Auswahl mit nur verwalteten Apps angezeigt werden.
Importieren von Daten aus anderen Apps "Empfangen von Daten von anderen Apps" 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. Versuch, 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 "Empfangen von Daten von anderen Apps" 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 aus einer verwalteten App "Empfangen von Daten von anderen Apps" 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: Features für die App-Teilnahme .

Szenario App-Schutzrichtlinieneinstellung Unterstützung muss implementiert werden, wenn...
Speichern von Kopien von Daten Kopien von Organisationsdaten speichern Ihre Anwendung kann Daten im lokalen oder Cloudspeicher speichern.
Öffnen von Daten aus dem Speicher Daten in Organisationsdokumenten öffnen Ihre Anwendung kann Daten aus lokalem oder Cloudspeicher öffnen.
Inhalt verwalteter Benachrichtigungen Benachrichtigungen zu Organisationsdaten Ihre App enthält Benutzerdaten in Benachrichtigungen.
Sichern und Wiederherstellen Sichern von Organisationsdaten in Android-Sicherungsdiensten Ihre App teilt Benutzerdaten mit dem Sicherungsfeature von Android.

Tests für bedingten Start

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

  • Warnung: Dem Endbenutzer wird ein Warndialogfeld angezeigt, 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 eingeben und auf App-Daten zugreifen, wenn sie entweder die Kriterien erfüllen oder das verwaltete Konto aus der App entfernen.
  • Daten zurücksetzen: Alle Unternehmensdaten, die dem verwalteten Konto zugeordnet sind, werden zurückgesetzt, 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 bedingten Start können mit mehreren Werten und Aktionen konfiguriert werden. Zum Beispiel:

  • Mindestversion des Betriebssystems, Wert von "10.0", Aktion auf "Warn" festgelegt.
  • Mindestversion des Betriebssystems, Wert von "9.0", Aktion auf "Zugriff blockieren" festgelegt
  • Mindestversion des Betriebssystems, Wert von "8.0", Aktion auf "Daten zurücksetzen" festgelegt.

Durch Ausführen der Integrationsschritte in dieser Phase 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:

  • Übergibt alle konfigurierten Einstellungen für bedingten Start.
  • Schlägt bei einer konfigurierten Einstellung für bedingten Start fehl, die auf die Aktion "Warn" festgelegt ist.
  • Eine konfigurierte Einstellung für bedingten Start schlägt fehl, die auf die Aktion "Zugriff blockieren" festgelegt ist.
  • Schlägt bei einer konfigurierten Einstellung für bedingten Start fehl, die auf die Aktion "Daten zurücksetzen" festgelegt ist.

Problembehandlung

Problembehandlung bei First Policy Application Test

Nach den oben beschriebenen Schritten zum Ersten Richtlinienanwendungstest können die folgenden unerwarteten Verhaltensweisen auftreten:

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

Besuchen Sie zunächst das Intune Admin Center, und überprüfen Sie, ob die App-Schutzrichtlinie für Ihr Testkonto gilt.

Überprüfen Sie anschließend Ihren Quellcode auf Aufrufe registerAccountForMAM von und die Implementierung von MAMServiceAuthenticationCallback. Wenn ersteres nicht zum richtigen Zeitpunkt aufgerufen wird und/oder letzteres nicht ordnungsgemäß ein gültiges Token bereitgestellt hat, wird die Unternehmensportal Aufforderung nicht angezeigt.

Schließlich suchen Sie entweder in den Protokollen (oder debuggen) nach dem Registrierungsergebniscode, oder rufen Sie explizit für das Konto 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 die Unternehmensportal nicht zuvor installiert wurde, müssen Sie Ihre Anwendung möglicherweise fortsetzen oder vollständig neu starten, um den Bildschirm "Zugriff abrufen" anzuzeigen und die Richtlinie ordnungsgemäß zu erzwischen. Dies ist ein erwartetes Ergebnis basierend darauf, wie SDK-integrierte Apps Code innerhalb der Unternehmensportal-App nutzen.

Wenn der Bildschirm "Zugriff abrufen" auch nach dem Neustart ihrer App und der erneuten Anmeldung immer noch nicht angezeigt wird, kann das SDK das Konto nicht registrieren oder die Richtlinie für das Konto abrufen. Überprüfen Sie die Implementierung des -Quellcodes von MAMServiceAuthenticationCallback.

Der Bildschirm zum Festlegen oder Eingeben einer App-PIN wurde nach der Anmeldung nicht angezeigt (Schritt 11)

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

Besuchen Sie andernfalls das Intune Admin Center, und überprüfen Sie, ob die App-Schutzrichtlinie die App-PIN aktiviert hat und für Ihr Testkonto gilt.

Als letztes Mittel wird beim Neustart Ihres Geräts der PIN-Timer zurückgesetzt. Wenn der PIN-Bildschirm nach dem Neustart ihres Geräts nicht angezeigt wird, ist er wahrscheinlich nicht ordnungsgemäß in der Richtlinie konfiguriert.

Der Bildschirm "Zugriff abrufen" wurde angezeigt, 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 für Ihr Testkonto bestimmt ist. Verwenden Sie anschließend die Diagnosekonsole (oben beschrieben), um die Richtlinie zu überprüfen, die für Ihre App abgerufen wurde. Wenn beide Richtlinien bestätigen, dass Screenshots blockiert werden sollen, überprüfen Sie ihre Gradle-Build-Plug-In-Konfiguration, um sicherzustellen, dass MAM-Ersetzungen vorgenommen werden.

Meine App stürzte nach dem Abmelden ab oder wurde geschlossen (Schritt 13)

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

Screenshots sind auch nach dem Abmelden weiterhin blockiert (Schritt 14)

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

Problembehandlung beim Datenschutztest

Nach den obigen Schritten für Datenschutztests 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 Überprüfen der Einrichtung ihrer App-Schutzrichtlinie in Microsoft Intune.

Überprüfen Sie anschließend die Clientdiagnoseinformationen , um zu bestätigen, dass das SDK die konfigurierte Richtlinie erhalten hat. Wenn dies nicht der Fall ist, überprüfen Sie die Implementierung von MAMServiceAuthenticationCallback und aufruft ihre registerAccountForMAMApp. Überprüfen Sie auch protokolle oder debuggen, um zu überprüfen MAMEnrollmentManager.Result.

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

Vergewissern Sie sich, dass "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt ist. Überprüfen Sie das Microsoft Intune Admin Center, um sicherzustellen, dass die Richtlinie richtig konfiguriert und als Ziel verwendet wird. Überprüfen Sie die Clientdiagnoseinformationen , um zu bestätigen, dass das SDK die konfigurierte Richtlinie erhalten hat.

Wenn die Richtlinie ordnungsgemäß konfiguriert und abgerufen wird, ü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 für Ihre App und die andere verwaltete App. Es wird empfohlen, die gleiche Richtlinie für beide Apps zu verwenden. Für die Richtlinie für Ihre App sollte "Organisationsdaten an andere Apps senden" auf "Richtlinienverwaltete Apps" festgelegt sein. Überprüfen Sie die Richtlinie für die andere App. Wenn "Daten von anderen Apps empfangen" auf "None" 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 richtig konfiguriert und als Ziel verwendet wird. Überprüfen Sie die Clientdiagnoseinformationen , um zu bestätigen, dass das SDK die konfigurierte Richtlinie erhalten hat.

Wenn die Richtlinie ordnungsgemäß konfiguriert und abgerufen wird, ü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 für Ihre App und die andere verwaltete App. Es wird empfohlen, die gleiche Richtlinie für beide Apps zu verwenden. Für die Richtlinie für Ihre App sollte "Daten von anderen Apps empfangen" auf "Richtlinienverwaltete Apps" festgelegt sein. Überprüfen Sie die Richtlinie für die andere App. Wenn "Organisationsdaten an andere Apps senden" auf "Keine" festgelegt ist, wird dieses Verhalten erwartet.

Nächste Schritte

Nachdem Sie alle oben genannten Exitkriterien erfüllt haben, ist Ihre App nun erfolgreich als einzelidentitätsbasierte Integration möglich und kann alle grundlegenden App-Schutzrichtlinien erzwingen. Die nachfolgenden Abschnitte Phase 5: Mehrere Identitäten, Phase 6: App Configuration und Phase 7: Features für die App-Teilnahme sind abhängig von der unterstützung der gewünschten App-Schutzrichtlinie möglicherweise erforderlich. Wenn Sie nicht sicher sind, ob einer dieser Abschnitte für Ihre App gilt, lesen Sie die wichtigsten Entscheidungen für die SDK-Integration erneut.