Udostępnij za pośrednictwem


zestaw SDK aplikacji Intune dla systemu Android — podstawowe informacje o integracji z aplikacjami mobilnymi

Zestaw SDK aplikacji Microsoft Intune dla systemu Android umożliwia włączenie Intune zasad ochrony aplikacji (znanych również jako zasady aplikacji lub zarządzania aplikacjami mobilnymi) do natywnej aplikacji Java/Kotlin dla systemu Android. Aplikacja zarządzana Intune jest zintegrowana z zestawem Intune App SDK. Intune administratorzy mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej Intune, gdy Intune aktywnie zarządza aplikacją.

Uwaga

Ten przewodnik jest podzielony na kilka odrębnych etapów. Zacznij od przejrzenia etapu 1. Planowanie integracji.

Etap 4. Essentials integracji zarządzania aplikacjami mobilnymi

Goals etapów

  • Włącz tryb ścisły zarządzania aplikacjami mobilnymi.
  • Zarejestruj się, aby otrzymywać powiadomienia krytyczne z zestawu SDK.
  • Zaimplementuj i zarejestruj wywołanie zwrotne uwierzytelniania, aby udostępnić tokeny Microsoft Entra z biblioteki MSAL do zestawu SDK.
  • Zarejestruj nowe konta do zarządzania aplikacjami mobilnymi po uwierzytelnieniu w usłudze MSAL.
  • Wyrejestrowywanie kont podczas wylogowywanie w celu usunięcia danych firmowych.
  • (Zalecane) Dołączanie logowania mam do aplikacji.
  • (Zalecane) Dowiedz się, jak używać okna dialogowego diagnostyki zestawu SDK.

Tło

Teraz, gdy zestaw Intune App SDK został pobrany, zintegrowany z kompilacją i pomyślnie wykonuje zamiany klas i metod, nadszedł czas, aby wprowadzić istotne zmiany w kodzie, aby rozpocząć wymuszanie ustawień zasad ochrony aplikacji dla kont chronionych przez zarządzanie aplikacjami mobilnymi.

Na tym etapie przedstawiono sposób podłączania do rejestrowania zestawu SDK, wywoływania okna dialogowego diagnostyki, włączania trybu ścisłego zarządzania aplikacjami mobilnymi w celu identyfikowania możliwych usterek integracji, rejestrowania powiadomień z zestawu SDK oraz co najważniejsze, rejestrowania konta dla Intune MAM w celu rozpoczęcia odbierania zasad.

Tryb ścisły zarządzania aplikacjami mobilnymi

Tryb ścisły mam może identyfikować potencjalne usterki w integracji aplikacji z zestawem Intune App SDK. Te błędy integracji mogą powodować błędy prawidłowego stosowania zasad ochrony aplikacji i pozostawienia danych firmowych bez ochrony. W związku z tym wymagane jest użycie trybu ścisłego zarządzania aplikacjami mobilnymi.

Tryb ścisły mam szuka anomalii w użyciu interfejsów API mam aplikacji i interfejsów API platformy z ograniczeniami zarządzania aplikacjami mobilnymi. Luźno wzorzyste po strictmode systemu Android, mam tryb ścisły uruchamia wstępnie zdefiniowany zestaw kontroli, które zgłaszają błędy środowiska uruchomieniowego, gdy nie powiedzie się. Tryb ścisły zarządzania aplikacjami mobilnymi nie ma być włączony w kompilacjach produkcyjnych. Zamiast tego użyj go w wewnętrznych kompilacjach programowania, debugowania i/lub dogfood aplikacji.

Aby włączyć tryb ścisły zarządzania aplikacjami mobilnymi, wywołaj następującą metodę na wczesnym etapie inicjowania aplikacji (na przykład Application.onCreate):

MAMStrictMode.enable();

Gdy sprawdzanie trybu ścisłego zarządzania aplikacjami mobilnymi nie powiedzie się, spróbuj określić, czy jest to prawdziwy problem, który można rozwiązać w aplikacji, czy fałszywie dodatni. Jeśli uważasz, że jest to wynik fałszywie dodatni lub nie masz pewności, poinformuj zespół Intune MAM. Pozwoli nam to upewnić się, że zgadzamy się z fałszywie dodatnim ustaleniem i spróbujemy poprawić wykrywanie przyszłych wydań. Aby pominąć wyniki fałszywie dodatnie, wyłącz sprawdzanie niepowodzenia zgodnie z poniższymi instrukcjami.

Obsługa naruszeń

Gdy sprawdzanie zakończy się niepowodzeniem, zostanie uruchomiony element MAMStrictViolationHandler. Domyślny program obsługi zgłasza Errorobiekt , który ma ulec awarii aplikacji. Ma to sprawić, że błędy będą tak głośne, jak to tylko możliwe i zgodne z intencją, że tryb ścisły nie powinien być włączony w kompilacjach produkcyjnych.

Jeśli aplikacja chce obsługiwać naruszenia w inny sposób, może dostarczyć własny program obsługi, wywołując następującą metodę, w której handler implementuje MAMStrictViolationHandler:

MAMStrictMode.global().setHandler(handler);

Pomijanie kontroli

Jeśli sprawdzanie zakończy się niepowodzeniem w sytuacji, gdy aplikacja nie robi nic nieprawidłowego, zgłoś ją, jak wspomniano powyżej. W międzyczasie może być konieczne wyłączenie sprawdzania napotykającego wynik fałszywie dodatni, przynajmniej podczas oczekiwania na zaktualizowany zestaw SDK. Sprawdzanie, czy nie powiodło się, zostanie wyświetlone w błędzie zgłoszonym przez domyślną procedurę obsługi lub zostanie przekazane do niestandardowej procedury obsługi, jeśli zostanie ustawiona.

Mimo że pomijania można wykonywać globalnie, preferowane jest tymczasowe wyłączenie poszczególnych wątków w określonej lokacji wywołań. W poniższych przykładach przedstawiono różne sposoby wyłączania MAMStrictCheck.IDENTITY_NO_SUCH_FILE (wywoływane, jeśli podjęto próbę ochrony pliku, który nie istnieje).

Per-Thread tymczasowe pomijanie

Jest to preferowany mechanizm pomijania.

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 trwałe pomijanie

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

Pomijania globalne (w całym procesie)

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

Rejestrowanie w celu otrzymywania powiadomień z zestawu SDK

Zestaw Intune App SDK wystawia wiele różnych typów powiadomień, aby informować aplikacje o operacjach zarządzania zależnych od czasu. Aplikacja może zarejestrować się i podjąć działania podczas odbierania dowolnego z tych powiadomień.

Na przykład za każdym razem, gdy administrator IT wydaje polecenie selektywnego czyszczenia dla urządzenia, usługa Intune wysyła powiadomienie do zestawu SDK, które jest przekazywane do aplikacji jako WIPE_USER_DATA. Aplikacja może nasłuchiwać tego powiadomienia i kontrolować, jakie dane zostaną wyczyszczone. lub może polegać na domyślnym zachowaniu czyszczenia zestawu SDK.

Wiele powiadomień jest opcjonalnych. W zależności od funkcji zestawu SDK używanych przez aplikację niektóre powiadomienia mogą być wymagane. Zobacz Rejestrowanie powiadomień z zestawu SDK w sekcji Etap 7: Funkcje uczestnictwa w aplikacji , aby uzyskać szczegółowe informacje na temat rejestrowania w celu otrzymywania powiadomień, powiadomień dostarczanych przez zestaw SDK oraz sposobu obsługi określonych typów powiadomień.

Rejestrowanie na potrzeby zasad ochrony aplikacji

Gdy administratorzy tworzą zasady ochrony aplikacji, są one przeznaczone dla określonych kont w organizacji. Na kliencie zestaw SDK musi wiedzieć, które konto korzysta z aplikacji, aby można było pobrać zasady tego konta i odpowiednio wymusić ustawienia. Twoja aplikacja jest odpowiedzialna za udostępnianie zestawowi SDK informacji o tym koncie. Ten proces jest nazywany rejestracją.

Za każdym razem, gdy aplikacja dodaje nowe konto, musi zarejestrować konto w zestawie SDK, nawet jeśli inne konta są już zarejestrowane. Aplikacja może zarejestrować wiele kont. Obecnie jednak można zarejestrować tylko jedno konto lub zastosować zasady ochrony aplikacji. W systemie Android to ograniczenie pojedynczego konta zarządzanego dotyczy całego urządzenia.

Rejestracja a rejestracja

Rejestracja to proces, w którym aplikacja informuje zestaw SDK, że nowe konto jest używane. Zestaw SDK zawiera funkcje, które aplikacja musi wywołać w celu zarejestrowania i wyrejestrowania kont.

Rejestracja to proces, w którym zestaw SDK rejestruje zarejestrowane konto w usłudze Intune, aby można było zastosować zasady konta. Aplikacja nie musi wywoływać żadnych funkcji na potrzeby rejestracji. Zestaw SDK w pełni obsługuje rejestrację po zarejestrowaniu konta.

Jeśli jedno konto jest już zarejestrowane dla aplikacji, podczas rejestrowania innego konta, nawet jeśli to konto jest objęte zasadami ochrony aplikacji, to drugie konto nie zostanie zarejestrowane i zasady nie zostaną zastosowane.

Uwaga

Termin "rejestracja" może również odnosić się do rejestracji mdm na całym urządzeniu Dowiedz się więcej w dodatku do rejestracji mdm i zarządzania aplikacjami mobilnymi.

Implementowanie rejestracji

Uwaga

Jeśli twoja aplikacja nie integruje biblioteki MSAL (zdecydowanie zalecane), zobacz Rejestracja domyślna w dodatku , zamiast kontynuować tę sekcję.

Aby pomyślnie zarejestrować konto, aplikacja musi wprowadzić trzy zmiany w kodzie:

  1. Aplikacja musi zaimplementować i zarejestrować wystąpienie interfejsu MAMServiceAuthenticationCallback lub MAMServiceAuthenticationCallbackExtended . Wystąpienie wywołania zwrotnego musi być zarejestrowane w onCreate() metodzie (lub onMAMCreate()) podklasy aplikacji.

  2. Po utworzeniu konta i pomyślnym zalogowaniu użytkownika przy użyciu biblioteki MSAL aplikacja musi wywołać polecenie registerAccountForMAM.

  3. Po usunięciu konta aplikacja powinna wywołać polecenie unregisterAccountForMAM, aby usunąć konto z zarządzania Intune.

    Uwaga

    Wywołanie może zainicjować czyszczenie danych w celu całkowitego usunięcia danych firmowych dla konta.

Wszystkie niezbędne interfejsy API uwierzytelniania i rejestracji można znaleźć w interfejsie MAMEnrollmentManager . Odwołanie do elementu MAMEnrollmentManager można uzyskać w następujący sposób:

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

// make use of mgr

Zwrócone MAMEnrollmentManager wystąpienie ma gwarancję, że nie będzie mieć wartości null. Metody interfejsu API dzielą się na dwie kategorie: uwierzytelnianie i rejestracja konta.

MAMEnrollmentManager i uwierzytelnianie

Zestaw SDK często komunikuje się z usługą Intune: w celu rejestrowania zarejestrowanych kont, uzyskiwania aktualizacji ustawień zasad ochrony aplikacji i uzyskiwania oczekujących akcji administratora, takich jak selektywne czyszczenie chronionych danych wewnątrz aplikacji. Aby pomyślnie komunikować się z usługą Intune, zestaw SDK wymaga nowych tokenów dostępu z aplikacji, które mają zintegrowaną usługę MSAL.

Jeśli zestaw SDK nie może pobrać nowego tokenu, nie będzie mógł komunikować się z usługą Intune, co może opóźnić pobieranie i wymuszanie nowych ustawień zasad lub akcji administratora. Niezwykle ważne jest, aby aplikacja ukończyła te kroki, aby zapewnić bezproblemowe wymuszanie zasad.

W etapie 2 zintegrowano usługę MSAL z aplikacją w celu uwierzytelniania i uzyskiwania tokenów dostępu. W tym miejscu zaimplementujesz wywołanie zwrotne uwierzytelniania, aby umożliwić zestawowi SDK żądanie niezbędnych tokenów.

MamEnrollmentManager ma następujące metody uwierzytelniania:

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);

Uwaga

Parametr aadId w tych metodach odnosi się do identyfikatora użytkownika Microsoft Entra, wcześniej znanego jako identyfikator usługi AAD i znanego również jako OID.

  1. Aplikacja musi zaimplementować interfejs MAMServiceAuthenticationCallback lub interfejs MAMServiceAuthenticationCallbackExtended, aby umożliwić zestawowi SDK żądanie tokenu Microsoft Entra dla danego konta i identyfikatora zasobu. Wystąpienie wywołania zwrotnego musi zostać dostarczone do obiektu MAMEnrollmentManager przez wywołanie metody registerAuthenticationCallback . Token może być potrzebny na wczesnym etapie cyklu życia aplikacji na potrzeby ponownych prób rejestracji lub zaewidencjonowania odświeżania zasad ochrony aplikacji, dlatego wywołanie zwrotne musi być zarejestrowane w onCreate() metodzie (lub onMAMCreate()) podklasy Application aplikacji.

  2. Metoda acquireToken powinna uzyskać token dostępu dla żądanego identyfikatora zasobu dla danego konta. Jeśli nie może uzyskać żądanego tokenu, powinien zwrócić wartość null.

    Porada

    Upewnij się, że aplikacja korzysta z przekazanych resourceId parametrów i aadId tak, aby acquireToken() pozyskiwać prawidłowy token. Parametr upn jest przeznaczony tylko do użytku informacyjnego; nie powinien być używany do identyfikowania konta bez uwzględnienia aadIdelementu . Element resourceId powinien służyć do generowania odpowiednich zakresów, a aadId element powinien służyć do przekazywania prawidłowego konta. Jeśli tokeny są zwracane dla niewłaściwego konta i/lub niewłaściwego zasobu, mogą powodować opóźnienia lub błędy podczas rejestrowania aplikacji i pobierania zasad. Jeśli aplikacja potrzebuje urzędu Microsoft Entra, aby uzyskać token poprawnie, zaimplementuj MAMServiceAuthenticationCallbackExtended interfejs.

    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. Jeśli aplikacja nie może podać tokenu podczas wywoływania acquireToken() zestawu SDK — na przykład jeśli uwierzytelnianie dyskretne zakończy się niepowodzeniem i jest to niewygodny czas na wyświetlenie interfejsu użytkownika — aplikacja może dostarczyć token w późniejszym czasie, wywołując metodę updateToken . Ta sama nazwa UPN, Tożsamość Microsoft Entra i identyfikator zasobu żądany przez wcześniejsze wywołanie acquireToken() muszą zostać przekazane do updateToken()programu wraz z tokenem, który został ostatecznie nabyty. Parametr upn służy tylko do celów informacyjnych i jest ogólnie ignorowany przez zestaw SDK zarządzania aplikacjami mobilnymi. Aplikacja powinna wywołać tę metodę tak szybko, jak to możliwe po zwróceniu wartości null z podanego wywołania zwrotnego.

    Ostrzeżenie

    Nie wywoływać updateToken() z poziomu implementacji acquireToken()programu . updateToken() należy użyć w przypadku, gdy acquireToken() nie można uzyskać tokenu.

    Uwaga

    Zestaw SDK będzie okresowo wywoływany acquireToken() w celu uzyskania tokenu, więc wywołanie updateToken() nie jest ściśle wymagane. Jest to jednak zdecydowanie zalecane, ponieważ może pomóc rejestracjom i zaewidencjonowaniu zasad ochrony aplikacji w odpowiednim czasie.

Uwagi dotyczące implementacji uwierzytelniania

  • Aplikacje są zachęcane do uzyskiwania tokenów Microsoft Entra przed wywołaniemmetody registerAccountForMAM. Po zarejestrowaniu konta aplikacje otrzymają wywołanie zwrotne do zarejestrowanej MAMServiceAuthenticationCallbackmetody w acquireToken() innym wątku. Podanie prawidłowego tokenu w tym wywołaniu zwrotnym umożliwia kontynuowanie rejestracji. Aplikacja pobiera wynik rejestracji za pośrednictwem powiadomienia.

  • Jeśli aplikacja nie zwróci prawidłowego tokenu Microsoft Entra, ostatecznym wynikiem próby rejestracji będzie AUTHORIZATION_NEEDED. Jeśli aplikacja otrzyma ten wynik za pośrednictwem powiadomienia, zaleca się przyspieszenie procesu rejestracji przez uzyskanie tokenu dla konta i zasobu wcześniej żądanego od metody acquireToken i wywołanie metody updateToken w celu ponownego zainicjowania procesu rejestracji.

  • Zarejestrowana MAMServiceAuthenticationCallback aplikacja zostanie również wywołana w celu uzyskania tokenu dla okresowych zaewidencjonowania odświeżania zasad ochrony aplikacji. Jeśli aplikacja nie może podać tokenu w przypadku żądania, nie otrzyma powiadomienia, ale powinna podjąć próbę uzyskania tokenu i wywołać updateToken() go w następnym dogodnym czasie, aby przyspieszyć proces ewidencjonowania. Jeśli token nie zostanie podany, wywołanie zwrotne może być nadal wywoływane przy następnej próbie zaewidencjonowania.

  • Obsługa suwerennych chmur wymaga zapewnienia urzędu.

  • Jeśli MAMServiceAuthenticationCallbackExtended interfejs jest implementowany, dziedziczona acquireToken() metoda z MAMServiceAuthenticationCallback nie musi być implementowana, ponieważ MAMServiceAuthenticationCallbackExtended interfejs zapewnia domyślną implementację.

MAMEnrollmentManager i rejestracja

Za każdym razem, gdy aplikacja dodaje konto, musi zarejestrować konto w zestawie SDK. Podobnie za każdym razem, gdy aplikacja usunie konto, należy wyrejestrować to konto, aby wskazać, że aplikacja nie powinna już stosować zasad dla tego konta. Jeśli konto zostało zarejestrowane w usłudze MAM, konto zostanie wyrejestrowane i aplikacja zostanie wyczyszczona.

MamEnrollmentManager ma następujące metody rejestracji konta:

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. Aby zarejestrować konto do zarządzania, aplikacja powinna wywołać polecenie registerAccountForMAM(). Konto jest identyfikowane zarówno przez nazwę UPN, jak i identyfikator użytkownika Microsoft Entra. Identyfikator dzierżawy jest również wymagany do skojarzenia danych rejestracji z dzierżawą Microsoft Entra konta. Można również podać urząd konta, aby umożliwić rejestrację w określonych suwerennych chmurach; Aby uzyskać więcej informacji, zobacz Sovereign Cloud Registration (Rejestracja suwerennej chmury). Zestaw SDK może próbować zarejestrować aplikację dla danego konta w usłudze MAM; Jeśli rejestracja zakończy się niepowodzeniem, będzie okresowo ponawiać próbę rejestracji do momentu pomyślnego zakończenia rejestracji lub wyrejestrowania konta. Okres ponawiania zazwyczaj wynosi 12–24 godziny. Zestaw SDK udostępnia stan prób rejestracji asynchronicznie za pośrednictwem powiadomień.

  2. Najlepszy czas na wywołanie registerAccountForMAM jest po zalogowaniu się użytkownika do aplikacji i pomyślnym uwierzytelnieniu przy użyciu biblioteki MSAL. Identyfikator użytkownika Microsoft Entra konta, identyfikator dzierżawy i urząd są zwracane z wywołania uwierzytelniania MSAL w ramach powiązanego IAccount z IAuthenticationResult.

    • Konto pochodzi z IAuthenticationResult.getAccount() metody i zawiera odpowiednie informacje o koncie.
    • Identyfikator usługi AAD (znany również jako Tożsamość Microsoft Entra lub OID) pochodzi z IAccount.getId() metody .
    • Identyfikator dzierżawy IAccount.getTenantId() pochodzi z metody .
    • Urząd pochodzi z IAccount.getAuthority() metody .
  3. Aby wyrejestrować konto z zarządzania Intune, aplikacja powinna wywołać polecenie unregisterAccountForMAM(). Jeśli konto zostało pomyślnie zarejestrowane i jest zarządzane, zestaw SDK wyrejestruje konto i wyczyści jego dane. Okresowe ponowne próby rejestracji dla konta zostaną zatrzymane. Zestaw SDK udostępnia stan żądań wyrejestrowania asynchronicznie za pośrednictwem powiadomienia.

Informacje o implementacji rejestracji

  • Metody rejestracji są idempotentne. Na przykład funkcja registerAccountForMAM zarejestruje konto i spróbuje zarejestrować aplikację tylko wtedy, gdy konto nie jest jeszcze zarejestrowane, a wyrejestrowanie kontaForMAM spowoduje wyrejestrowanie konta tylko wtedy, gdy jest obecnie zarejestrowane. Kolejne wywołania nie są operacjami, więc wywoływanie tych metod nie jest szkodliwe więcej niż raz.

  • Nie ma gwarancji, że każde wywołanie rejestracji/wyrejestrowania ma odpowiednie powiadomienie o wyniku. Jeśli na przykład registerAccountForMAM() zostanie wywołane konto, które jest już zarejestrowane, powiadomienie może nie zostać wysłane ponownie dla tej tożsamości. Alternatywnie zestaw SDK może wysyłać powiadomienia nawet wtedy, gdy aplikacja nie wywoływała tych metod, ponieważ zestaw SDK może okresowo próbować rejestracji w tle, a wyrejestrowywania mogą być wyzwalane przez żądania czyszczenia odebrane z usługi Intune.

  • Metody rejestracji mogą być wywoływane dla dowolnej liczby różnych kont, ale obecnie tylko jedno konto może zostać pomyślnie zarejestrowane. Jeśli wiele kont z licencją na Intune i objętych zasadami ochrony aplikacji jest zarejestrowanych w tym samym czasie lub w jego pobliżu, nie ma gwarancji, na które z nich wygra wyścig.

  • Możesz wykonać zapytanie mamEnrollmentManager , aby sprawdzić, czy określone konto jest zarejestrowane i uzyskać jego bieżący stan przy użyciu metody getRegisteredAccountStatus . Jeśli podane konto nie jest zarejestrowane, ta metoda zwraca wartość null. Jeśli konto jest zarejestrowane, ta metoda zwraca stan konta jako jeden z elementów członkowskich wyliczenia MAMEnrollmentManager.Result .

Rejestracja suwerennej chmury

Platforma Azure obsługuje wiele chmur izolowanych fizycznie, nazywanych chmurami suwerennymi lub krajowymi. Jeśli twoja aplikacja jest suwerenna w chmurze, musi podać authority parametr do registerAccountForMAM().

Wskazówki dotyczące biblioteki MSAL

W przypadku biblioteki MSAL ustaw wartość multiple_clouds_supportedtrue w pliku konfiguracji MSAL.

{
  "multiple_clouds_supported": true,
}

Kody wyników rejestracji i stanu

Po pierwszym zarejestrowaniu konta rozpoczyna się ono w PENDING stanie wskazującym, że początkowa próba rejestracji usługi MAM jest niekompletna. Po zakończeniu próby rejestracji zostanie wysłane powiadomienie z jednym z kodów wyników w poniższej tabeli. Ponadto metoda getRegisteredAccountStatus zwraca stan konta, aby aplikacja zawsze mogła określić, czy to konto ma wymuszane zasady ochrony aplikacji. Jeśli próba rejestracji zakończy się niepowodzeniem, stan konta może zmieniać się wraz z upływem czasu, ponieważ zestaw SDK ponawia próbę rejestracji w tle.

Kod wyniku Objaśnienie
AUTHORIZATION_NEEDED Ten wynik wskazuje, że token nie został dostarczony przez zarejestrowane wystąpienie MAMServiceAuthenticationCallback aplikacji lub podany token jest nieprawidłowy. Aplikacja powinna uzyskać prawidłowy token i wywołać polecenie updateToken , jeśli to możliwe.
NOT_LICENSED Konto nie ma licencji na Intune lub próba skontaktowania się z usługą zarządzania aplikacjami mobilnymi Intune nie powiodła się. Aplikacja powinna być kontynuowana w stanie niezarządzanym (normalnym), a użytkownik nie powinien być blokowany. Rejestracje będą okresowo ponawiane w przypadku, gdy konto zostanie licencjonowane w przyszłości.
ENROLLMENT_SUCCEEDED Próba rejestracji zakończyła się pomyślnie lub konto zostało już zarejestrowane. W przypadku pomyślnej rejestracji przed tym powiadomieniem jest wysyłane powiadomienie o odświeżeniu zasad. Należy zezwolić na dostęp do danych firmowych.
ENROLLMENT_FAILED Próba rejestracji nie powiodła się. Więcej szczegółów można znaleźć w dziennikach urządzeń. Aplikacja nie powinna zezwalać na dostęp do danych firmowych w tym stanie, ponieważ wcześniej ustalono, że konto ma licencję na Intune. Wszystkie aplikacje powinny mieć pewność, że dostęp do danych firmowych jest nieautoryzowany, dopóki nie ENROLLMENT_SUCCEEDED zostanie uzyskany przez aplikację.
WRONG_USER Tylko jedno konto na urządzenie może zarejestrować aplikację w usłudze MAM. Ten wynik wskazuje, że konto, dla którego ten wynik został dostarczony (drugie konto) jest objęte zasadami zarządzania aplikacjami mobilnymi, ale inne konto jest już zarejestrowane. Ponieważ nie można wymusić zasad zarządzania aplikacjami mobilnymi dla drugiego konta, aplikacja nie może zezwalać na dostęp do danych tego konta (prawdopodobnie przez usunięcie konta z aplikacji), chyba że rejestracja dla tego konta zakończy się pomyślnie w późniejszym czasie. Równocześnie z dostarczaniem tego WRONG_USER wyniku funkcja MAM monituje o usunięcie istniejącego konta. Jeśli użytkownik odpowie twierdząco, wkrótce będzie można zarejestrować drugie konto. Dopóki drugie konto pozostaje zarejestrowane, funkcja MAM okresowo ponawia próbę rejestracji.
UNENROLLMENT_SUCCEEDED Wyrejestrowanie zakończyło się pomyślnie.
UNENROLLMENT_FAILED Żądanie wyrejestrowania nie powiodło się. Więcej szczegółów można znaleźć w dziennikach urządzeń. Ogólnie rzecz biorąc, nie będzie to miało miejsca, dopóki aplikacja przejdzie prawidłową (ani zerową, ani pustą) nazwę UPN. Nie ma bezpośredniego, niezawodnego korygowania, które może podjąć aplikacja. Jeśli ta wartość zostanie odebrana podczas wyrejestrowania prawidłowej nazwy UPN, zgłoś błąd zespołowi Intune MAM.
PENDING Trwa początkowa próba rejestracji konta. Aplikacja może blokować dostęp do danych firmowych, dopóki wynik rejestracji nie będzie znany, ale nie jest do tego wymagany.
COMPANY_PORTAL_REQUIRED Konto jest licencjonowane dla Intune, ale nie można zarejestrować aplikacji, dopóki aplikacja Portal firmy nie zostanie zainstalowana na urządzeniu. Zestaw SDK aplikacji Intune próbuje zablokować dostęp do aplikacji dla danego konta i kieruje użytkownika do zainstalowania aplikacji Portal firmy. Podczas wysyłania tego powiadomienia do aplikacji zestaw SDK aplikacji Intune wyświetli nieblokujący interfejs użytkownika na bieżącej stronie działania, jeśli działanie jest obecnie widoczne dla użytkownika lub następnym razem onResume zostanie wywołane. Jeśli użytkownik anuluje ten nieblokujący interfejs użytkownika, zestaw SDK aplikacji Intune wyświetli blokujący interfejs użytkownika przy onCreate następnym wywołaniu działania i zarządzaniu bieżącą tożsamością (zobacz poniżej, aby uzyskać szczegółowe informacje na temat rozwiązywania problemów).

Rejestrowanie powinno zostać zainicjowane wcześnie, aby uzyskać największą wartość z zarejestrowanych danych. Application.onMAMCreate() Jest to zazwyczaj najlepsze miejsce do inicjowania rejestrowania.

Aby odbierać dzienniki zarządzania aplikacjami mobilnymi w aplikacji, utwórz program obsługi języka Java i dodaj go do obiektu MAMLogHandlerWrapper. Spowoduje to wywołanie publish() programu obsługi aplikacji dla każdego komunikatu dziennika.

/**
 * 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);
}

Uwaga

Identyfikator PII oznacza "dane osobowe" i może zawierać dane, takie jak nazwy użytkowników i nazwy UPN. Zdecydowanie zachęcamy do wykluczania takich danych osobowych we własnych dziennikach produkcyjnych. Aby uzyskać więcej szczegółów, zobacz Zasady zachowania poufności informacji firmy Microsoft.

Aplikacja Intune — Portal firmy ma wiele opcji zbierania informacji diagnostycznych. Portal firmy obejmuje interfejs użytkownika, który:

  • Umożliwia użytkownikom końcowym zbieranie dzienników Portal firmy.
  • Wyświetla metadane urządzenia i konta.
  • Zawiera informacje o bieżących zasadach zarządzania aplikacjami mobilnymi dla aplikacji.

informacje o Intune interfejsie użytkownika diagnostykiIntune aplikacji

Aby uzyskać szczegółowe wyjaśnienie danych zawartych w dziennikach Portal firmy i interfejsie użytkownika diagnostyki, zobacz Opis dzienników Portal firmy w dodatku.

Porada

Jeśli testujesz przy użyciu konta, które powinno mieć zastosowane zasady zarządzania aplikacjami mobilnymi, ale diagnostyka nie wyświetla żadnych zasad dotyczących nazwy pakietu aplikacji, zobacz sekcję Rozwiązywanie problemów poniżej.

Aplikacje mogą uruchomić ten interfejs użytkownika diagnostyki, wywołując polecenie MAMPolicyManager.showDiagnostics(context). Użytkownicy końcowi mogą również uruchomić konsolę diagnostyczną Portal firmy za pośrednictwem przeglądarki Microsoft Edge, wprowadzając about:intunehelp na pasku adresu. Jest to opcjonalna funkcja, która może pomóc w debugowaniu.

Te informacje diagnostyczne są dostępne tylko wtedy, gdy Portal firmy jest zainstalowany na urządzeniu. Okno dialogowe ostrzeżenia zostanie wyświetlone za każdym razemshowDiagnostics, gdy zostanie wywołane bez zainstalowanego Portal firmy.

Kryteria zakończenia

Na tym etapie integracji aplikacja może teraz odbierać i wymuszać zasady ochrony aplikacji. Wykonaj następujące testy, aby zweryfikować integrację.

Pierwszy test aplikacji zasad

Najpierw wykonaj następujący test, aby zapoznać się z pełnym środowiskiem użytkownika końcowego aplikacji zasad w aplikacji:

  1. Utwórz zasady ochrony aplikacji systemu Android w centrum administracyjnym Microsoft Intune (aby uzyskać szczegółowe informacje, zobacz Tworzenie testowych zasad ochrony aplikacji systemu Android na etapie 1). Na potrzeby tego testu skonfiguruj zasady:
    • W obszarze Ochrona danych ustaw wartość "Przechwytywanie ekranu i Asystent Google" na wartość "Blokuj".
    • W obszarze Wymagania dostępu pozostaw ustawienia domyślne. W szczególności "NUMER PIN dla dostępu" powinien mieć wartość "Wymagaj".
  2. Upewnij się, że zasady ochrony aplikacji są przeznaczone dla aplikacji. Prawdopodobnie trzeba będzie ręcznie dodać nazwę pakietu w kreatorze tworzenia zasad.
  3. Przypisz zasady ochrony aplikacji do grupy użytkowników zawierającej konto testowe.
  4. Na testowym urządzeniu z systemem Android odinstaluj inne aplikacje zintegrowane z zestawem SDK, takie jak Microsoft Outlook, Teams, OneDrive i Office. Odinstaluj również aplikację Intune — Portal firmy i aplikację Microsoft Authenticator.
    • Porada

      Odinstalowywanie innych aplikacji zintegrowanych z zestawem SDK pomaga zagwarantować, że wyłącznie testujesz integrację własnej aplikacji.

  5. Zainstaluj aplikację.
  6. Zaloguj się do aplikacji przy użyciu konta testowego, które jest objęte zasadami ochrony aplikacji.
  7. Upewnij się, że zostanie wyświetlony monit o zainstalowanie Intune — Portal firmy z sklepu Google Play.
    • Uwaga

      Jeśli urządzenie testowe nie ma aplikacji ze Sklepu Google Play, upewnij się, że zostanie wyświetlony monit o zainstalowanie Intune — Portal firmy z innego sklepu z aplikacjami lub witryny internetowej firmy Microsoft.

  8. Zainstaluj Portal firmy. Nie musisz uruchamiać Portal firmy ani logować się do Portal firmy.
  9. Wróć do aplikacji i w razie potrzeby zaloguj się ponownie.
  10. Upewnij się, że zostanie wyświetlony monit z ekranem Uzyskiwanie dostępu. Oznacza to, że zestaw SDK pomyślnie pobrać zasady dla tego konta.
  11. Powinien zostać wyświetlony monit o ustawienie numeru PIN aplikacji. Utwórz numer PIN.
  12. Nawiguj po aplikacji i spróbuj wykonać zrzuty ekranu. Biorąc pod uwagę, że zestaw SDK ma zasady, powinno to być stale blokowane na dowolnym ekranie.
  13. Wyloguj konto zarządzane z aplikacji.
  14. Jeśli to możliwe bez logowania, nawiguj po aplikacji i spróbuj wykonać zrzuty ekranu. Po usunięciu konta nie powinno to być blokowane.

Jest to minimalny test potwierdzający, że aplikacja prawidłowo zarejestrowała konto, zarejestrowała wywołanie zwrotne uwierzytelniania i wyrejestrowała konto. Wykonaj następujące testy, aby dokładniej sprawdzić, w jaki sposób inne ustawienia zasad ochrony aplikacji modyfikują zachowanie aplikacji.

Testy ochrony danych

Poniższe testy obejmują określone ustawienia ochrony danych skonfigurowane w zasadach ochrony aplikacji. Po zmianie ustawień zasad ochrony aplikacji w centrum administracyjnym Microsoft Intune klient nie będzie natychmiast aktualizowany. Aby uzyskać wskazówki dotyczące przyspieszania testowania, zobacz Szybkie testowanie przy użyciu zmieniających się zasad .

W przypadku tych testów:

  1. Zainstaluj aplikację.
  2. Zainstaluj Intune — Portal firmy.
  3. Zainstaluj inną zarządzaną aplikację, docelową z tymi samymi zasadami co aplikacja, która może kopiować i wklejać dane (na przykład Microsoft Office).
  4. Zainstaluj (lub ponownie użyj) dowolnej niezarządzanej aplikacji, która może kopiować i wklejać dane.
  5. Zaloguj się do aplikacji przy użyciu konta zarządzanego testowego.
  6. Zaloguj się do innej zarządzanej aplikacji przy użyciu zarządzanego konta testowego.
Scenariusz Ustawienie zasad ochrony aplikacji Kroki testu
Zrzut ekranu Ustawienie "Przechwytywanie ekranu i Asystent Google" ma wartość "Blokuj" 1. Przejdź do wszystkich stron w aplikacji.
2. Spróbuj zrobić zrzut ekranu na każdej stronie.
3. Upewnij się, że zrzuty ekranu są zablokowane lub zapisany obraz jest całkowicie pusty.
Kopiowanie tekstu "Ogranicz wycinanie, kopiowanie i wklejanie między innymi aplikacjami" ustawiony na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie ma tekstu do skopiowania, pomiń.
1. Przejdź do wszystkich stron w aplikacji, które mają tekst do kopiowania.
2. Skopiuj tekst.
3. Przejdź do aplikacji niezarządzanej.
4. Spróbuj wkleić aplikację niezarządzaną.
5. Upewnij się, że wklej jest zablokowany.
6. Przejdź do innej aplikacji zarządzanej.
7. Spróbuj wkleić w aplikacji zarządzanej.
8. Upewnij się, że wklej jest dozwolony.
Wklej tekst "Ogranicz wycinanie, kopiowanie i wklejanie między innymi aplikacjami" ustawiony na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie ma żadnych danych wejściowych tekstowych do wklejenia, pomiń.
1. Przejdź do aplikacji niezarządzanej.
2. Skopiuj tekst z niezarządzanej aplikacji.
3. Przejdź do wszystkich stron w aplikacji, które mają dane wejściowe tekstu.
5. Spróbuj wkleić z niezarządzanej aplikacji.
5. Upewnij się, że wklej jest zablokowany.
6. Przejdź do innej aplikacji zarządzanej.
7. Skopiuj tekst z innej aplikacji zarządzanej.
7. Przejdź do wszystkich stron w aplikacji, które mają dane wejściowe tekstu.
8. Spróbuj wkleić z innej zarządzanej aplikacji.
9. Upewnij się, że wklej jest dozwolony.
Drukarstwo Ustawienie "Drukowanie danych organizacji" na wartość "Blokuj" 0. Jeśli aplikacja nie ma żadnych stron ani dokumentów, które można wydrukować, pomiń.
1. Przejdź do wszystkich stron w aplikacji, które wywołują funkcję drukowania systemu Android.
2. Spróbuj wydrukować z każdej strony.
3. Upewnij się, że drukowanie jest zablokowane.
Zarządzana przeglądarka "Ogranicz transfer zawartości internetowej z innymi aplikacjami" ustawiony na "Microsoft Edge" 0. Jeśli aplikacja nie renderuje linków internetowych, pomiń.
1. Przejdź do wszystkich stron w aplikacji, które mogą wyświetlać linki internetowe lub mieć dane wejściowe tekstu renderowane w klikalnych linkach internetowych.
2. Dla każdej strony wybierz link internetowy.
3. Upewnij się, że zostanie wyświetlony monit o zainstalowanie przeglądarki Microsoft Edge, a link internetowy nie zostanie otwarty w innej przeglądarce.
Klawiatura z ograniczeniami Wartość "Zatwierdzone klawiatury" jest ustawiona na wartość "Wymagane"
Opcja "Wybierz klawiatury do zatwierdzenia" ustawiona na pakiet klawiatury, który nie jest obecnie zainstalowany na urządzeniu
0. Jeśli aplikacja nie ma żadnych danych wejściowych tekstu, pomiń.
1. Przejdź do wszystkich stron w aplikacji, które mają dane wejściowe tekstu.
2. Wybierz dane wejściowe tekstu, aby wyświetlić klawiaturę urządzenia.
3. Upewnij się, że zostanie wyświetlony monit o zainstalowanie skonfigurowanej zatwierdzonej klawiatury, a bieżąca klawiatura urządzenia nie zostanie otwarta.

Testy transferu danych

Ustawienia transferu danych to podzbiór funkcji ochrony danych zasad ochrony aplikacji, które kontrolują wprowadzanie i zamykanie zarządzanych aplikacji przez dane. Większość aplikacji, które obsługują wysyłanie danych do lub odbieranie danych z innych aplikacji, ma również możliwość zapisywania danych i otwierania danych z magazynu lokalnego lub w chmurze. Jeśli aplikacja ma te możliwości, musisz zaimplementować dodatkową pomoc techniczną. Aby uzyskać szczegółowe informacje , zobacz Zasady dotyczące ograniczania transferu danych między aplikacjami i lokalizacjami magazynu urządzeń lub chmury .

Aplikacja może aktywnie importować dane z innych aplikacji, takich jak program Microsoft Outlook dołączający plik z usługi Microsoft OneDrive. Aplikacja może również pasywnie odbierać dane z innych aplikacji, takich jak otwieranie dokumentu z załącznika programu Microsoft Outlook w pakiecie Microsoft Office. Ustawienie zasad "odbieranie danych z innych aplikacji" obejmuje oba scenariusze.

W przypadku tych testów:

  1. Zainstaluj aplikację.
  2. Zainstaluj Intune — Portal firmy.
  3. Zainstaluj inną zarządzaną aplikację, która jest objęta tymi samymi zasadami co aplikacja, która może wysyłać i odbierać dane (na przykład Microsoft Outlook).
  4. Zainstaluj (lub ponownie użyj) dowolnej niezarządzanej aplikacji, która może wysyłać i odbierać dane.
  5. Zaloguj się do aplikacji przy użyciu konta zarządzanego testowego.
  6. Zaloguj się do innej zarządzanej aplikacji przy użyciu zarządzanego konta testowego.
Scenariusz Ustawienie zasad ochrony aplikacji Kroki testu
Wysyłanie danych do innych aplikacji "Wyślij dane organizacji do innych aplikacji" ustawiony na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie może wysyłać danych do innych aplikacji, pomiń.
1. Przejdź do miejsca, w którym aplikacja może wysyłać dane.
2. Spróbuj wysłać dane.
3. Upewnij się, że jesteś ograniczony do wysyłania danych tylko do innych zarządzanych aplikacji. Powinien zostać wyświetlony selektor aplikacji z tylko aplikacjami zarządzanymi.
Importowanie danych z innych aplikacji "Odbieranie danych z innych aplikacji" ustawione na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie może zaimportować danych z innych aplikacji, pomiń.
1. Przejdź do miejsca, w którym aplikacja może importować dane z innych aplikacji.
2. Spróbuj zaimportować dane.
3. Upewnij się, że ograniczasz się do importowania danych tylko z innych zarządzanych aplikacji. Powinien zostać wyświetlony selektor aplikacji z tylko aplikacjami zarządzanymi.
Odbieranie danych z niezarządzanej aplikacji "Odbieranie danych z innych aplikacji" ustawione na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie może odbierać danych z innych aplikacji, pomiń.
1. Przejdź do aplikacji niezarządzanej.
2. Przejdź do miejsca, w którym może wysyłać dane.
3. Spróbuj wysłać dane z niezarządzanej aplikacji do aplikacji.
4. Upewnij się, że aplikacja nie może odbierać danych z aplikacji niezarządzanej.
Odbieranie danych z aplikacji zarządzanej "Odbieranie danych z innych aplikacji" ustawione na "Aplikacje zarządzane przez zasady" 0. Jeśli aplikacja nie może odbierać danych z innych aplikacji, pomiń.
1. Przejdź do innej aplikacji zarządzanej.
2. Przejdź do miejsca, w którym może wysyłać dane.
3. Spróbuj wysłać dane z innej zarządzanej aplikacji do aplikacji.
4. Upewnij się, że aplikacja może odbierać dane z innej aplikacji zarządzanej.

Inne ustawienia ochrony danych

Następujące ustawienia ochrony danych nie zostaną wymuszone, dopóki aplikacja nie wniesie dodatkowych zmian. Na tym etapie nie trzeba testować tych ustawień. Aby uzyskać więcej szczegółów, zobacz Etap 7. Funkcje uczestnictwa w aplikacji .

Scenariusz Ustawienie zasad ochrony aplikacji Musi zaimplementować obsługę, jeśli...
Zapisywanie kopii danych Zapisywanie kopii danych organizacji Aplikacja może zapisywać dane w magazynie lokalnym lub w chmurze.
Otwieranie danych z magazynu Otwieranie danych w dokumentach organizacji Aplikacja może otwierać dane z magazynu lokalnego lub w chmurze.
Zawartość powiadomienia zarządzanego Powiadomienia o danych organizacji Aplikacja zawiera dane użytkownika w powiadomieniach.
Tworzenie kopii zapasowej i przywracanie Tworzenie kopii zapasowych danych organizacji w usługach tworzenia kopii zapasowych systemu Android Aplikacja udostępnia dane użytkownika funkcji tworzenia kopii zapasowej systemu Android.

Testy uruchamiania warunkowego

Ustawienia uruchamiania warunkowego to podzbiór funkcji zasad ochrony aplikacji, które ograniczają dostęp do aplikacji na podstawie konfigurowalnych kryteriów specyficznych dla całego urządzenia lub aplikacji. Te ustawienia obejmują zarówno warunki (takie jak "minimalna wersja systemu operacyjnego") jak i akcje (takie jak "blokowanie dostępu"). Akcje uruchamiania warunkowego mogą być następujące:

  • Ostrzegaj: użytkownik końcowy widzi okno dialogowe ostrzeżenia, gdy jego urządzenie lub aplikacja nie spełnia kryteriów. Nadal będą mieli dostęp do wszystkich danych aplikacji.
  • Blokuj dostęp: użytkownik końcowy widzi okno dialogowe ostrzeżenia, gdy jego urządzenie lub aplikacja nie spełnia kryteriów. Nie będą mogli wprowadzać aplikacji i uzyskiwać dostępu do danych aplikacji, dopóki nie spełnią kryteriów lub nie usunieją konta zarządzanego z aplikacji.
  • Czyszczenie danych: wszystkie dane firmowe skojarzone z kontem zarządzanym zostaną wyczyszczone, gdy urządzenie lub aplikacja nie spełni kryteriów. Użytkownik nie będzie miał możliwości spełnienia kryteriów przed usunięciem danych.

Niektóre ustawienia uruchamiania warunkowego można skonfigurować przy użyciu wielu wartości i akcji. Przykład:

  • Minimalna wersja systemu operacyjnego, wartość "10.0", akcja ustawiona na "Ostrzegaj".
  • Minimalna wersja systemu operacyjnego, wartość "9.0", akcja ustawiona na "Blokuj dostęp"
  • Minimalna wersja systemu operacyjnego, wartość "8.0", akcja ustawiona na "Wyczyść dane".

Wykonując kroki integracji na tym etapie, aplikacja obsługuje teraz wszystkie funkcje uruchamiania warunkowego. Zapoznaj się z funkcją uruchamiania warunkowego, zmieniając elementy zasad, tak aby urządzenie testowe:

  • Przekazuje wszystkie skonfigurowane ustawienia uruchamiania warunkowego.
  • Nie można skonfigurować ustawienia uruchamiania warunkowego ustawionego na akcję "Ostrzegaj".
  • Nie można skonfigurować ustawienia uruchamiania warunkowego ustawionego na akcję "Blokuj dostęp".
  • Nie można skonfigurować ustawienia uruchamiania warunkowego ustawionego na akcję "Wyczyść dane".

Rozwiązywanie problemów

Rozwiązywanie problemów z pierwszym testem aplikacji zasad

Po wykonaniu powyższych kroków pierwszego testu aplikacji zasad można napotkać następujące nieoczekiwane zachowania:

Po zalogowaniu się przy użyciu konta zarządzanego nie jest wyświetlany monit o zainstalowanie Portal firmy (krok 7)

Najpierw odwiedź centrum administracyjne Intune i sprawdź dokładnie, czy zasady ochrony aplikacji są przeznaczone dla Twojego konta testowego.

Po drugie sprawdź dokładnie kod źródłowy pod kątem wywołań i registerAccountForMAM implementacji .MAMServiceAuthenticationCallback Jeśli ten pierwszy element nie jest wywoływany we właściwym czasie i/lub ten ostatni nie dostarczył prawidłowego tokenu, nie zobaczysz Portal firmy monitu.

Na koniec wyszukaj w dziennikach (lub debugowanie) kod wyniku rejestracji lub jawnie wywołaj getRegisteredAccountStatus konto. Kody takie jak NOT_LICENSED mogą wskazywać problemy z konfiguracją konta testowego.

Po zalogowaniu się nie został wyświetlony ekran Uzyskiwanie dostępu (krok 10)

Jeśli Portal firmy nie została wcześniej zainstalowana, może być konieczne wznowienie lub pełne ponowne uruchomienie aplikacji, aby wyświetlić ekran Uzyskiwanie dostępu i prawidłowo wymusić zasady. Jest to oczekiwany wynik oparty na sposobie, w jaki aplikacje zintegrowane z zestawem SDK wykorzystują kod wewnątrz aplikacji Portal firmy.

Jeśli nadal nie widzisz ekranu Uzyskiwanie dostępu, nawet po ponownym uruchomieniu aplikacji i ponownym zalogowaniu się, zestaw SDK może nie zarejestrować konta lub pobrać zasad dla konta. Dokładnie sprawdź implementację kodu źródłowego MAMServiceAuthenticationCallbackelementu .

Nie widzę ekranu do ustawienia lub wprowadzenia numeru PIN aplikacji po zalogowaniu się (krok 11)

Czy na urządzeniu testowym istnieją inne aplikacje zintegrowane z zestawem SDK? Numer PIN aplikacji jest współużytkowany między wszystkimi aplikacjami zarządzanymi, a zestaw SDK ma globalny czasomierz, aby uniemożliwić użytkownikom końcowym monitowanie o podanie numeru PIN przy każdym uruchomieniu lub wznowieniu aplikacji zarządzanej.

W przeciwnym razie odwiedź centrum administracyjne Intune i sprawdź, czy zasady ochrony aplikacji mają włączony numer PIN aplikacji i czy są przeznaczone dla Twojego konta testowego.

W ostateczności ponowne uruchomienie urządzenia spowoduje zresetowanie czasomierza numeru PIN. Jeśli ekran numeru PIN nie jest wyświetlany po ponownym uruchomieniu urządzenia, prawdopodobnie nie jest poprawnie skonfigurowany w zasadach.

Został wyświetlony ekran Uzyskiwanie dostępu, ale zrzuty ekranu są nadal dozwolone (krok 12)

Podczas pobierania zasad stosowane są nieprawidłowe zasady. Najpierw odwiedź centrum administracyjne Intune i sprawdź, czy zasady ochrony aplikacji wyłączają zrzuty ekranu i są przeznaczone dla konta testowego. Po drugie, użyj konsoli diagnostycznej (opisanej powyżej), aby sprawdzić zasady, które zostały wycofane dla aplikacji. Jeśli obie zasady potwierdzą, że zrzuty ekranu powinny być blokowane, sprawdź konfigurację wtyczki kompilacji Narzędzia Gradle, aby upewnić się, że są wykonywane zamiany funkcji MAM.

Moja aplikacja uległa awarii lub została zamknięta po wylogowaniu (krok 13)

Gdy wyrejestrujesz konto, które zostało wcześniej zarejestrowane i zostało wymuszone, dane skojarzone z tym kontem zostaną wyczyszczone przez zestaw SDK. Oczekuje się zakończenia procesu aplikacji.

Zrzuty ekranu są nadal blokowane nawet po wylogowyniu (krok 14)

Dokładnie sprawdź kod źródłowy pod kątem wywołań do unregisterAccountForMAM(). Jeśli zasady są nadal wymuszane po wylogowaniu, prawdopodobnie konto nie zostało prawidłowo wyrejestrowane i wyrejestrowane.

Rozwiązywanie problemów z testem ochrony danych

Po wykonaniu powyższych kroków testów ochrony danych mogą wystąpić następujące nieoczekiwane zachowania:

Moja aplikacja nie odbiera ani nie wymusza żadnych zasad

Najpierw upewnij się, że zasady ochrony aplikacji są przeznaczone dla grupy zawierającej Twoje konto testowe. Aby uzyskać szczegółowe informacje, zobacz How to validate your app protection policy setup in Microsoft Intune (Jak zweryfikować konfigurację zasad ochrony aplikacji w Microsoft Intune).

Po drugie, sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady. Jeśli tak się nie stało, sprawdź implementację MAMServiceAuthenticationCallback aplikacji i wywołaj polecenie registerAccountForMAM. Sprawdź również dzienniki lub debugowanie, aby zweryfikować MAMEnrollmentManager.Resultelement .

Moja aplikacja może udostępniać dane niezarządzanej aplikacji

Upewnij się, że ustawienie "Wyślij dane organizacji do innych aplikacji" ma wartość "Aplikacje zarządzane przez zasady". Sprawdź centrum administracyjne Microsoft Intune, aby upewnić się, że zasady są poprawnie skonfigurowane i ukierunkowane. Sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady.

Następnie, jeśli zasady są poprawnie skonfigurowane i pobierane, sprawdź, czy jakiekolwiek zasady są wymuszane: Moja aplikacja nie otrzymuje ani nie wymusza żadnych zasad.

Moja aplikacja nie może udostępniać danych innej aplikacji zarządzanej

Potwierdź ustawienia zasad ochrony aplikacji przeznaczone zarówno dla aplikacji, jak i innej aplikacji zarządzanej. Zaleca się, aby te same zasady były przeznaczone dla obu aplikacji. Zasady przeznaczone dla aplikacji powinny mieć ustawienie "Wyślij dane organizacji do innych aplikacji" na "Aplikacje zarządzane przez zasady". Sprawdź zasady przeznaczone dla innej aplikacji; Jeśli ma ustawienie "Odbierz dane z innych aplikacji" na wartość "Brak", to zachowanie jest oczekiwane.

Moja aplikacja może odbierać dane z niezarządzanej aplikacji

Upewnij się, że wartość "Odbierz dane z innych aplikacji" jest ustawiona na "Aplikacje zarządzane przez zasady". Sprawdź centrum administracyjne Microsoft Intune, aby upewnić się, że zasady są poprawnie skonfigurowane i ukierunkowane. Sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady.

Następnie, jeśli zasady są poprawnie skonfigurowane i pobierane, sprawdź, czy jakiekolwiek zasady są wymuszane: Moja aplikacja nie otrzymuje ani nie wymusza żadnych zasad.

Moja aplikacja nie może odbierać danych z innej zarządzanej aplikacji

Potwierdź ustawienia zasad ochrony aplikacji przeznaczone zarówno dla aplikacji, jak i innej aplikacji zarządzanej. Zaleca się, aby te same zasady były przeznaczone dla obu aplikacji. Zasady przeznaczone dla aplikacji powinny mieć ustawienie "Odbierz dane z innych aplikacji" na "Aplikacje zarządzane przez zasady". Sprawdź zasady przeznaczone dla innej aplikacji; Jeśli ma ustawienie "Wyślij dane organizacji do innych aplikacji" na wartość "Brak", to zachowanie jest oczekiwane.

Następne kroki

Po zakończeniu wszystkich powyższych kryteriów zakończenia aplikacja została pomyślnie zintegrowana jako pojedyncza tożsamość i może wymusić wszystkie podstawowe zasady ochrony aplikacji. Kolejne sekcje, Etap 5: Wiele tożsamości, Etap 6: App Configuration i Etap 7: Funkcje uczestnictwa w aplikacji mogą być lub nie muszą być wymagane, w zależności od wymaganej obsługi zasad ochrony aplikacji. Jeśli nie masz pewności, czy którakolwiek z tych sekcji ma zastosowanie do twojej aplikacji, ponownie zapoznaj się z kluczowymi decyzjami dotyczącymi integracji zestawu SDK.