Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw SDK aplikacji usługi Microsoft Intune dla systemu Android umożliwia dołączanie zasad ochrony aplikacji usługi Intune (znanych również jako zasady zarządzania aplikacjami mobilnymi) do natywnej aplikacji systemu Android Java/Kotlin. Aplikacja zarządzana przez usługę Intune to aplikacja zintegrowana z zestawem SDK aplikacji usługi Intune. Administratorzy usługi Intune mogą łatwo wdrażać zasady ochrony aplikacji w aplikacji zarządzanej przez usługę Intune, gdy usługa Intune aktywnie zarządza tą aplikacją.
Uwaga
Ten przewodnik jest podzielony na kilka odrębnych etapów. Zacznij od zapoznania się z etapem 1: Planowanie integracji.
Etap 4: MAM Integration Essentials
Cele etapu
- Włącz tryb ścisły zarządzania aplikacjami mobilnymi.
- Zarejestruj się, aby otrzymywać krytyczne powiadomienia z zestawu SDK.
- Zaimplementuj i zarejestruj wywołanie zwrotne uwierzytelniania, aby dostarczyć tokeny usługi Microsoft Entra z biblioteki MSAL do zestawu SDK.
- Zarejestruj nowe konta do zarządzania aplikacjami mobilnymi po uwierzytelnieniu za pomocą biblioteki MSAL.
- Wyrejestrowywanie kont przy wylogowywaniu w celu usunięcia danych firmowych.
- (Zalecane) Dołącz logowanie MAM do aplikacji.
- (Zalecane) Dowiedz się, jak korzystać z okna dialogowego diagnostyki zestawu SDK.
Tło
Po pobraniu zestawu SDK aplikacji usługi Intune, zintegrowaniu go z kompilacją i pomyślnym wykonaniu zamiany klas i metod, nadszedł czas, aby wprowadzić niezbędne zmiany w kodzie, aby rozpocząć wymuszanie ustawień zasad ochrony aplikacji dla kont chronionych za pomocą funkcji zarządzania aplikacjami mobilnymi.
Na tym etapie dowiesz się, jak podłączyć się do rejestrowania zestawu SDK, wywołać okno dialogowe diagnostyki, włączyć tryb ścisły zarządzania aplikacjami mobilnymi w celu zidentyfikowania możliwych błędów integracji, zarejestrować się w celu otrzymywania powiadomień z zestawu SDK oraz, co najważniejsze, jak zarejestrować konto dla zarządzania aplikacjami mobilnymi usługi Intune, aby rozpocząć otrzymywanie zasad.
Tryb ścisły zarządzania aplikacjami mobilnymi
Tryb ścisły zarządzania aplikacjami mobilnymi może identyfikować potencjalne błędy w integracji aplikacji z zestawem SDK aplikacji usługi Intune. Te błędy integracji mogą powodować błędy w prawidłowym stosowaniu zasad ochrony aplikacji i pozostawiać dane firmowe bez ochrony. W związku z tym wymagane jest korzystanie z trybu ścisłego MAM.
Tryb ścisły zarządzania aplikacjami mobilnymi wyszukuje anomalie w użyciu interfejsów API zarządzania aplikacjami mobilnymi i interfejsów API platformy z ograniczeniem funkcji MAM. Luźno wzorowany na StrictMode systemu Android, tryb ścisły MAM uruchamia wstępnie zdefiniowany zestaw testów, które zgłaszają błędy w czasie wykonywania, gdy się nie powiodą. Tryb ścisły zarządzania aplikacjami mobilnymi nie powinien być włączony w kompilacjach produkcyjnych. Zamiast tego używaj go w wewnętrznych kompilacjach programistycznych, debugowania i/lub testowych 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 w trybie ścisłym zarządzania aplikacjami mobilnymi zakończy się niepowodzeniem, spróbuj ustalić, czy jest to rzeczywisty problem, który można rozwiązać w aplikacji, czy wynik fałszywie dodatni. Jeśli uważasz, że jest to wynik fałszywie dodatni lub nie masz pewności, powiadom o tym zespół MAM usługi Intune. Pozwoli nam to upewnić się, że zgadzamy się z wynikiem fałszywie dodatnim i spróbować poprawić wykrywanie w przyszłych wersjach. Aby pominąć wyniki fałszywie dodatnie, wyłącz testy zakończone niepowodzeniem, postępując zgodnie z poniższymi instrukcjami.
Postępowanie w przypadku naruszeń
W przypadku niepowodzenia sprawdzania uruchamiany jest program MAMStrictViolationHandler.
Domyślny program obsługi zgłasza Errorbłąd , co powinno spowodować awarię aplikacji.
Ma to na celu uczynienie awarii tak głośnymi, jak to tylko możliwe i pasuje do intencji, że tryb ścisły nie powinien być włączony w kompilacjach produkcyjnych.
Jeśli aplikacja chciałaby obsługiwać naruszenia w inny sposób, może podać własny program obsługi, wywołując następującą metodę, w której handler implementuje MAMStrictViolationHandler:
MAMStrictMode.global().setHandler(handler);
Pomijanie testów
Jeśli sprawdzanie nie powiedzie się w sytuacji, gdy aplikacja nie robi nic nieprawidłowo, zgłoś to w sposób opisany 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. Sprawdzenie, które zakończyło się niepowodzeniem, będzie wyświetlane w błędzie zgłoszonym przez domyślną procedurę obsługi lub zostanie przekazane do niestandardowej procedury, jeśli została ustawiona.
Chociaż pomijanie można wykonać globalnie, preferowane jest tymczasowe wyłączenie poszczególnych wątków w określonej lokacji wywołania. W poniższych przykładach pokazano różne sposoby wyłączania MAMStrictCheck.IDENTITY_NO_SUCH_FILE (wyświetlanych w przypadku próby zabezpieczenia nieistniejącego pliku).
Per-Thread Tymczasowe tłumienie
Jest to preferowany mechanizm tłumienia.
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 tłumienie
MAMStrictMode.thread().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);
Pomijanie globalne (obejmujące cały proces)
MAMStrictMode.global().disable(MAMStrictCheck.IDENTITY_NO_SUCH_FILE);
Zarejestruj się, aby otrzymywać powiadomienia z zestawu SDK
Zestaw SDK aplikacji usługi Intune generuje wiele różnych typów powiadomień w celu informowania aplikacji o operacjach zarządzania wrażliwych na czas. Twoja aplikacja może zarejestrować się w przypadku każdego z tych powiadomień i podjąć działanie po odebraniu.
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ć, które dane są czyszczone; może też polegać na domyślnym zachowaniu czyszczenia zestawu SDK.
Wiele z tych powiadomień jest opcjonalnych. W zależności od funkcji zestawu SDK używanych przez aplikację, niektóre powiadomienia mogą być wymagane. Aby uzyskać szczegółowe informacje na temat sposobu rejestrowania się w celu otrzymywania powiadomień, powiadomień dostarczanych przez zestaw SDK oraz obsługi określonych typów powiadomień, zobacz Rejestrowanie w celu otrzymywania powiadomień z zestawu SDK w etapie 7: funkcje uczestnictwa w aplikacji .
Rejestrowanie się w celu uzyskania zasad ochrony aplikacji
Gdy administratorzy tworzą zasady ochrony aplikacji, kierują te zasady do określonych kont w organizacji. Na kliencie zestaw SDK musi wiedzieć, które konto korzysta z aplikacji, aby mógł pobrać zasady tego konta i odpowiednio wymusić ustawienia. Twoja aplikacja jest odpowiedzialna za dostarczenie do zestawu SDK tych informacji o koncie. Ten proces nazywa się rejestracją.
Za każdym razem, gdy aplikacja dodaje nowe konto, musi je zarejestrować w zestawie SDK, nawet jeśli inne konta są już zarejestrowane. Aplikacja może rejestrować wiele kont. Jednak obecnie można zarejestrować tylko jedno konto lub zastosować zasady ochrony aplikacji. W systemie Android to ograniczenie dotyczące jednego zarządzanego konta 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 w celu rejestracji. Zestaw SDK w pełni obsługuje rejestrację po zarejestrowaniu konta.
Jeśli jedno konto jest już zarejestrowane dla Twojej 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 dla całego urządzenia Dowiedz się więcej w dodatku na stronie Rejestracja w MDM i MAM.
Implementacja 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:
Aplikacja musi implementować i rejestrować wystąpienie interfejsu MAMServiceAuthenticationCallback lub MAMServiceAuthenticationCallbackExtended . Wystąpienie wywołania zwrotnego musi być zarejestrowane w metodzie
onCreate()(lubonMAMCreate()) podklasy Application.Po utworzeniu konta i pomyślnym zalogowaniu się użytkownika przy użyciu biblioteki MSAL aplikacja musi wywołać metodę registerAccountForMAM.
Po usunięciu konta aplikacja powinna wywołać metodę unregisterAccountForMAM, aby usunąć konto z zarządzania Intune.
Uwaga
Połączenie może zainicjować czyszczenie w celu całkowitego usunięcia danych firmowych z konta.
Wszystkie niezbędne interfejsy API uwierzytelniania i rejestracji można znaleźć w interfejsie MAMEnrollmentManager .
Odniesienie do tego 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 na pewno nie będzie miało wartości null.
Metody API dzielą się na dwie kategorie: uwierzytelnianie i rejestracja konta.
MAMEnrollmentManager i uwierzytelnianie
Zestaw SDK często komunikuje się z usługą Intune: rejestrowaniem zarejestrowanych kont, uzyskiwaniem aktualizacji ustawień zasad ochrony aplikacji i uzyskiwaniem oczekujących akcji administracyjnych, takich jak selektywne wymazywanie 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ą zintegrowane środowisko 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. Wykonanie tych kroków przez aplikację ma kluczowe znaczenie dla zapewnienia bezproblemowego wymuszania zasad.
W etapie 2 zintegrowano bibliotekę MSAL z aplikacją na potrzeby 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 posiada 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 odwołuje się do identyfikatora użytkownika usługi Microsoft Entra, wcześniej znanego jako AAD ID, a także znanego jako OID.
Aplikacja musi implementować interfejs MAMServiceAuthenticationCallback lub interfejs MAMServiceAuthenticationCallbackExtended, aby umożliwić zestawowi SDK żądanie tokenu usługi Microsoft Entra dla danego konta i identyfikatora zasobu. Wystąpienie wywołania zwrotnego musi zostać dostarczone do wywołania
MAMEnrollmentManagerjego registerAuthenticationCallback metody. Token może być potrzebny na wczesnym etapie cyklu życia aplikacji dla ponownych prób rejestracji lub zaewidencjonowania odświeżania zasad ochrony aplikacji, dlatego wywołanie zwrotne musi być zarejestrowane w metodzieonCreate()(lubonMAMCreate()) podklasy aplikacjiApplication.Metoda
acquireTokenpowinna 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 używa i
resourceIdaadIdparametrów przekazywanych doacquireToken(), aby uzyskać prawidłowy token. Tenupnparametr służy wyłącznie do celów informacyjnych; nie powinien być używany do identyfikowania konta bez uwzględnienia również parametruaadId. PowinienresourceIdbyć używany do generowania odpowiednich zakresów iaadIdpowinien być używany do przekazywania poprawnego 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 wymaga urzędu certyfikacji Microsoft Entra do prawidłowego uzyskania tokenu, zaimplementujMAMServiceAuthenticationCallbackExtendedinterfejs.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; } }W przypadku, gdy aplikacja nie jest w stanie dostarczyć 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 główna nazwa użytkownika, identyfikator Microsoft Entra ID i identyfikator zasobu, które zostały zażądane przez wcześniejsze wywołanieacquireToken(), muszą zostać przekazane doupdateToken(), wraz z tokenem, który został ostatecznie uzyskany. Parametrupnsłuży wyłącznie do celów informacyjnych i jest na ogół 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 dzwoń
updateToken()z poziomu implementacjiacquireToken()pliku .updateToken()powinien być używany w przypadku, gdyacquireToken()nie można uzyskać tokena.Uwaga
Zestaw SDK będzie okresowo wywoływał
acquireToken()w celu uzyskania tokenu, więc wywoływanieupdateToken()nie jest ściśle wymagane. Jest to jednak zdecydowanie zalecane, ponieważ może pomóc w terminowym ukończeniu rejestracji i ewidencjonowania zasad ochrony aplikacji.
Uwagi dotyczące implementacji uwierzytelniania
Aplikacje są zachęcane do uzyskiwania tokenów usługi Microsoft Entra przed wywołaniemregisterAccountForMAM. Po zarejestrowaniu konta, aplikacje otrzymają wywołanie
acquireToken()zwrotne do zarejestrowanejMAMServiceAuthenticationCallbackmetody w innym wątku. Podanie prawidłowego tokenu w tym wywołaniu zwrotnym umożliwia kontynuowanie rejestracji. Aplikacja otrzymuje wynik rejestracji za pośrednictwem powiadomienia.Jeśli aplikacja nie zwróci prawidłowego tokenu usługi Microsoft Entra, ostateczny wynik próby rejestracji będzie następujący
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 zażądanego od acquireToken i wywołanie metody updateToken w celu ponownego zainicjowania procesu rejestracji.Zarejestrowana
MAMServiceAuthenticationCallbackaplikacja zostanie również wywołana w celu uzyskania tokenu dla okresowych zaewidencjonowań odświeżania zasad ochrony aplikacji. Jeśli aplikacja nie może dostarczyć tokenu na żądanie, nie otrzyma powiadomienia, ale powinna podjąć próbę uzyskania tokenu i zadzwonićupdateToken()w następnym dogodnym momencie, aby przyspieszyć proces ewidencjonowania. Jeśli token nie zostanie podany, wywołanie zwrotne może nadal zostać wywołane przy następnej próbie zaewidencjonowania.Pomoc techniczna dla suwerennych chmur wymaga zapewnienia odpowiednich uprawnień.
Jeśli
MAMServiceAuthenticationCallbackExtendedinterfejs jest zaimplementowany, dziedziczonaacquireToken()metoda zMAMServiceAuthenticationCallbacknie musi być implementowana, ponieważMAMServiceAuthenticationCallbackExtendedinterfejs zapewnia domyślną implementację.
MAMEnrollmentManager i rejestracja
Za każdym razem, gdy aplikacja dodaje konto, musi je zarejestrować przy użyciu zestawu SDK. Analogicznie, za każdym razem, gdy aplikacja usuwa konto, powinna wyrejestrować to konto, aby wskazać, że aplikacja nie powinna już stosować zasad do tego konta. Jeśli konto zostało zarejestrowane w usłudze zarządzania aplikacjami mobilnymi, zostanie ono wyrejestrowane, a 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);
Aby zarejestrować konto do zarządzania, aplikacja powinna wywołać metodę
registerAccountForMAM(). Konto jest identyfikowane zarówno przez UPN, jak i identyfikator użytkownika usługi Microsoft Entra. Identyfikator dzierżawy jest również wymagany do skojarzenia danych rejestracji z dzierżawą konta usługi Microsoft Entra. Upoważnienie konta może również zostać przyznane w celu umożliwienia rejestracji w określonych suwerennych chmurach; Aby uzyskać więcej informacji, zobacz Rejestracja w usłudze Sovereign Cloud. Zestaw SDK może próbować zarejestrować aplikację dla danego konta w usłudze zarządzania aplikacjami mobilnymi. Jeśli rejestracja zakończy się niepowodzeniem, okresowo będzie ponawiać próbę rejestracji, aż rejestracja zakończy się pomyślnie lub konto zostanie wyrejestrowane. Okres ponawiania próby zwykle wynosi 12–24 godziny. Zestaw SDK udostępnia stan prób rejestracji asynchronicznie za pośrednictwem powiadomień.Najlepszy moment na nawiązanie połączenia
registerAccountForMAMto moment, w którym użytkownik zaloguje się do aplikacji i pomyślnie uwierzytelni się przy użyciu biblioteki MSAL. Identyfikator użytkownika usługi Microsoft Entra konta, identyfikator dzierżawy i upoważnienie są zwracane z wywołaniaIAccountuwierzytelniania MSAL jako część związanych z domenąIAuthenticationResult.- Konto pochodzi z metody
IAuthenticationResult.getAccount()i zawiera odpowiednie informacje o koncie. - Identyfikator AAD (znany również jako Microsoft Entra ID lub OID) pochodzi z
IAccount.getId()metody. - Identyfikator dzierżawy
IAccount.getTenantId()pochodzi z metody. - Autorytet pochodzi z
IAccount.getAuthority()metody.
- Konto pochodzi z metody
Aby wyrejestrować konto z zarządzania usługą Intune, aplikacja powinna wywołać metodę
unregisterAccountForMAM(). Jeśli konto zostało pomyślnie zarejestrowane i jest zarządzane, zestaw SDK wyrejestrowuje konto i czyści z niego dane. Okresowe ponawianie rejestracji dla konta zostanie zatrzymane. Zestaw SDK udostępnia stan żądań wyrejestrowania asynchronicznie za pośrednictwem powiadomień.
Uwagi dotyczące implementacji rejestracji
Metody rejestracji są idempotentne. Na przykład registerAccountForMAM zarejestruje konto i podejmie próbę zarejestrowania aplikacji, jeśli konto nie jest jeszcze zarejestrowane, a unregisterAccountForMAM wyrejestruje konto tylko wtedy, gdy jest obecnie zarejestrowane. Kolejne wywołania są bezoperacyjne, więc nie ma nic złego w wywołaniu tych metod więcej niż raz.
Nie ma gwarancji, że każde wywołanie rejestru/wyrejestrowania ma odpowiednie powiadomienie o wyniku. Jeśli
registerAccountForMAM()na przykład zostanie wywołane dla konta, 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 jeśli aplikacja nie wywołuje tych metod, ponieważ zestaw SDK może okresowo próbować rejestracji w tle, a wyrejestrowywanie może być wyzwalane przez żądania czyszczenia otrzymane z usługi Intune.Metody rejestracji można wywołać dla dowolnej liczby różnych kont, ale obecnie tylko jedno konto może zostać pomyślnie zarejestrowane. Jeśli wiele kont licencjonowanych dla usługi Intune i podlegających zasadom ochrony aplikacji jest zarejestrowanych w tym samym czasie lub w jego pobliżu, nie ma gwarancji, 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 jednego z elementów członkowskich wyliczenia MAMEnrollmentManager.Result .
Rejestracja w usłudze Sovereign Cloud
Platforma Azure obsługuje wiele fizycznie izolowanych chmur, znanych jako suwerenne lub krajowe chmury.
Jeśli aplikacja obsługuje suwerennąauthority chmurę, musi podać parametr .registerAccountForMAM()
Wskazówki dotyczące biblioteki MSAL
W przypadku biblioteki MSAL ustaw multiple_clouds_supported wartość w truepliku konfiguracji MSAL.
{
"multiple_clouds_supported": true,
}
Rejestracja Kody wyników i stanu
Gdy konto jest rejestrowane po raz pierwszy, zaczyna się od PENDING stanu, który wskazuje, że początkowa próba zarejestrowania usługi zarządzania aplikacjami mobilnymi jest nieukończona.
Po zakończeniu próby rejestracji zostanie wysłane powiadomienie z jednym z kodów wyników przedstawionych w poniższej tabeli.
Ponadto metoda getRegisteredAccountStatus zwraca stan konta, dzięki czemu aplikacja zawsze może określić, czy to konto ma wymuszone zasady ochrony aplikacji.
Jeśli próba rejestracji zakończy się niepowodzeniem, stan konta może z czasem ulec zmianie, ponieważ zestaw SDK ponawia próbę rejestracji w tle.
| Kod wynikowy | Objaśnienie |
|---|---|
AUTHORIZATION_NEEDED |
Ten wynik wskazuje, że token nie został dostarczony przez zarejestrowane wystąpienie MAMServiceAuthenticationCallback aplikacji lub podany token był nieprawidłowy. Aplikacja powinna uzyskać prawidłowy token i wywołać updateToken , jeśli to możliwe. |
NOT_LICENSED |
Konto nie ma licencji na usługę Intune lub próba skontaktowania się z usługą MAM usługi Intune nie powiodła się. Aplikacja powinna nadal działać w stanie niezarządzanym (normalnym), a użytkownik nie powinien być blokowany. Okresowo będziemy ponawiać próbę rejestracji, jeśli w przyszłości konto będzie licencjonowane. |
ENROLLMENT_SUCCEEDED |
Próba rejestracji zakończyła się pomyślnie lub konto zostało już zarejestrowane. W przypadku pomyślnej rejestracji powiadomienie o odświeżeniu zasad jest wysyłane przed tym powiadomieniem. Dostęp do danych firmowych powinien być dozwolony. |
ENROLLMENT_FAILED |
Próba rejestracji nie powiodła się. Więcej szczegółów można znaleźć w dziennikach urządzenia. Aplikacja nie powinna zezwalać na dostęp do danych firmowych w tym stanie, ponieważ wcześniej ustalono, że konto jest licencjonowane dla usługi Intune. Wszystkie aplikacje powinny zapewniać, że dostęp do danych firmowych jest nieautoryzowany, dopóki ENROLLMENT_SUCCEEDED nie zostanie uzyskany przez aplikację. |
WRONG_USER |
Tylko jedno konto na urządzeniu 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ż zasad zarządzania aplikacjami mobilnymi nie można wymusić dla drugiego konta, aplikacja nie może zezwalać na dostęp do danych tego konta (na przykład przez usunięcie konta z aplikacji), chyba że rejestracja tego konta zakończy się pomyślnie w późniejszym czasie. Równolegle z dostarczaniem tego WRONG_USER wyniku, zarządzanie aplikacjami mobilnymi monituje użytkownika końcowego o dwie opcje rozwiązania problemu: (1) usunięcie istniejącego zarejestrowanego konta, aby można było zarejestrować drugie konto, lub (2) usunięcie drugiego (próbowanego) konta, aby monit przestał się pojawiać, gdy istniejące konto pozostaje zarejestrowane. Jeśli użytkownik wybierze opcję (1), w niedługim czasie będzie możliwe zarejestrowanie drugiego konta. Jeśli użytkownik wybierze opcję (2), aplikacja zarządzająca aplikacjami mobilnymi wyrejestruje drugie konto lokalnie i zgłosi UNENROLLMENT_SUCCEEDED dla tego konta za pośrednictwem standardowego powiadomienia o wyniku rejestracji; ponieważ drugie konto nigdy nie zostało zarejestrowane, nie jest wykonywane selektywne czyszczenie ani nie jest dostarczane powiadomienie o wyczyszczeniu. Aplikacja zarządzająca aplikacjami mobilnymi zatrzymuje również ponawianie prób rejestracji dla tego konta, więc monit nie będzie się już pojawiać. Dopóki drugie konto pozostaje zarejestrowane (tj. użytkownik nie wybrał opcji (2)), zarządzanie aplikacjami mobilnymi okresowo ponawia próbę rejestracji. |
UNENROLLMENT_SUCCEEDED |
Wyrejestrowywanie zakończyło się pomyślnie. |
UNENROLLMENT_FAILED |
Żądanie wyrejestrowania nie powiodło się. Więcej szczegółów można znaleźć w dziennikach urządzenia. Na ogół tak się nie stanie, o ile aplikacja przekaże prawidłową (ani pustą, ani pustą) nazwę UPN. Nie ma bezpośrednich, niezawodnych działań naprawczych, które aplikacja mogłaby podjąć. Jeśli ta wartość zostanie odebrana podczas wyrejestrowywania prawidłowej głównej nazwy użytkownika, zgłoś błąd do zespołu MAM usługi Intune. |
PENDING |
Pierwsza próba zarejestrowania konta jest w toku. Aplikacja może blokować dostęp do danych firmowych do momentu poznania wyniku rejestracji, ale nie jest to wymagane. |
COMPANY_PORTAL_REQUIRED |
Konto jest licencjonowane dla usługi Intune, ale nie można zarejestrować aplikacji, dopóki na urządzeniu nie zostanie zainstalowana aplikacja Portal firmy. Zestaw SDK aplikacji usługi 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 usługi Intune wyświetli nieblokujący interfejs użytkownika na górze bieżącego 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, przy następnym wywoływaniu onCreate działania w zestawie SDK aplikacji usługi Intune wyświetli blokujący interfejs użytkownika i zarządzanie bieżącą tożsamością (szczegółowe informacje na temat rozwiązywania problemów znajdują się poniżej). |
(Zalecane) Rejestrowanie
Aby jak najlepiej wykorzystać zarejestrowane dane, należy zainicjować rejestrowanie na wczesnym etapie.
Application.onMAMCreate() jest zazwyczaj najlepszym miejscem do zainicjowania rejestrowania.
Aby odbierać dzienniki zarządzania aplikacjami mobilnymi w aplikacji, utwórz program obsługi języka Java i dodaj go do obiektu MAMLogHandlerWrapper.
Wywołuje publish() to program 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
PII to skrót od "danych osobowych umożliwiających identyfikację" i może obejmować dane, takie jak nazwy użytkowników i główne nazwy użytkowników. Zdecydowanie zaleca się wykluczenie takich danych osobowych z własnych dzienników produkcyjnych. Więcej informacji można znaleźć w zasadach ochrony prywatności firmy Microsoft .
(Zalecane) Informacje diagnostyczne
Aplikacja Intune — Portal firmy oferuje wiele opcji zbierania informacji diagnostycznych. Portal firmy zawiera 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 dotyczące poszczególnych aplikacji dotyczące bieżących zasad zarządzania aplikacjami mobilnymi.
Intune 
Aby uzyskać szczegółowe objaśnienie danych zawartych w dziennikach Portal firmy i w 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 dla nazwy pakietu aplikacji, zobacz sekcję Rozwiązywanie problemów poniżej.
Aplikacje mogą uruchomić ten interfejs użytkownika diagnostyki, wywołując MAMPolicyManager.showDiagnostics(context).
Użytkownicy końcowi mogą również uruchomić konsolę diagnostyczną Portal firmy za pomocą przeglądarki Microsoft Edge, wpisując about:intunehelp w pasku adresu.
Jest to opcjonalna funkcja, która może pomóc w debugowaniu.
Te informacje diagnostyczne są dostępne tylko po zainstalowaniu na urządzeniu Portal firmy.
Okno dialogowe ostrzeżenia zostanie wyświetlone po każdym showDiagnostics wywołaniu 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 sprawdzić integrację.
Pierwszy test zastosowania zasad
Najpierw wykonaj poniższy test, aby zapoznać się z pełnym środowiskiem użytkownika końcowego stosowania zasad w aplikacji:
- Utwórz zasady ochrony aplikacji systemu Android w centrum administracyjnym usługi Microsoft Intune (zobacz Tworzenie testowych zasad ochrony aplikacji systemu Android w etapie 1, aby uzyskać szczegółowe informacje). Na potrzeby tego testu skonfiguruj zasady:
- W obszarze Ochrona danych ustaw "Przechwytywanie ekranu i Asystent Google" na wartość "Blokuj".
- W obszarze Wymagania dotyczące dostępu pozostaw ustawienia domyślne. Warto zauważyć, że "Numer PIN dla dostępu" powinno mieć wartość "Wymagaj".
- Upewnij się, że zasady ochrony aplikacji są ukierunkowane na Twoją aplikację. Prawdopodobnie będzie konieczne ręczne dodanie nazwy pakietu w kreatorze tworzenia zasad.
- Przypisz zasady ochrony aplikacji do grupy użytkowników zawierającej konto testowe.
- Na testowym urządzeniu z systemem Android odinstaluj inne aplikacje zintegrowane z zestawem SDK, takie jak Microsoft Outlook, Teams, OneDrive i pakiet Office. Odinstaluj również aplikację Intune — Portal firmy i aplikację Microsoft Authenticator.
-
Porada
Odinstalowanie innych aplikacji zintegrowanych z zestawem SDK pomaga zapewnić, że testujesz wyłącznie integrację własnej aplikacji.
-
- Zainstaluj aplikację.
- Zaloguj się do aplikacji przy użyciu konta testowego przeznaczonego do zasad ochrony aplikacji.
- Upewnij się, że został wyświetlony monit o zainstalowanie dodatku Intune — Portal firmy ze sklepu Google Play.
-
Uwaga
Jeśli Twoje urządzenie testowe nie ma aplikacji Sklep Google Play, upewnij się, że jest wyświetlany monit o zainstalowanie aplikacji Portal firmy Intune — Portal firmy z innego sklepu z aplikacjami lub witryny internetowej firmy Microsoft.
-
- Zainstaluj Portal firmy. Nie musisz uruchamiać portalu firmy ani logować się do portalu firmy.
- Wróć do aplikacji i w razie potrzeby zaloguj się ponownie.
- Upewnij się, że jest wyświetlany monit na ekranie Uzyskaj dostęp. Oznacza to, że zestaw SDK pomyślnie pobrał zasady dla tego konta.
- Powinien zostać wyświetlony monit o ustawienie kodu PIN aplikacji. Utwórz numer PIN.
- Poruszaj się po aplikacji i spróbuj zrobić zrzuty ekranu. Biorąc pod uwagę, że zestaw SDK ma zasady, powinny one być konsekwentnie blokowane na każdym ekranie.
- Wyloguj konto zarządzane z aplikacji.
- Jeśli to możliwe bez logowania, nawiguj po aplikacji i spróbuj zrobić zrzuty ekranu. Teraz, gdy konto zostało usunięte, nie powinno ono być zablokowane.
Jest to minimalny test pozwalający potwierdzić, że aplikacja poprawnie zarejestrowała konto, zarejestrowała wywołanie zwrotne uwierzytelniania i wyrejestrowała konto. Wykonaj poniższe testy, aby dokładniej sprawdzić, jak inne ustawienia zasad ochrony aplikacji modyfikują zachowanie aplikacji.
Testy ochrony danych
Poniższe testy obejmują określone ustawienia ochrony danych skonfigurowane w ramach zasad ochrony aplikacji. Po zmianie ustawień zasad ochrony aplikacji w centrum administracyjnym usługi Microsoft Intune klient nie zostanie natychmiast zaktualizowany. Zobacz Szybkie testowanie przy zmieniających się zasadach , aby uzyskać porady dotyczące przyspieszania testowania.
W przypadku tych testów:
- Zainstaluj aplikację.
- Zainstaluj aplikację Intune — Portal firmy.
- Zainstaluj inną aplikację zarządzaną podlegającą tym samym zasadom co Twoja aplikacja, która może kopiować i wklejać dane (np. pakiet Microsoft Office).
- Zainstaluj (lub użyj ponownie) dowolnej niezarządzanej aplikacji, która może kopiować i wklejać dane.
- Zaloguj się do aplikacji przy użyciu testowego konta zarządzanego.
- Zaloguj się do innej zarządzanej aplikacji przy użyciu zarządzanego konta testowego.
| Scenariusz | Ustawienie zasad ochrony aplikacji | Kroki testowe |
|---|---|---|
| Zrzut ekranu | "Przechwytywanie ekranu i Asystent Google" ustawione na 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" ustawione na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie ma żadnego tekstu do skopiowania, pomiń. 1. Przejdź do wszystkich stron w aplikacji, które zawierają tekst do skopiowania. 2. Skopiuj tekst. 3. Przełącz się do aplikacji niezarządzanej. 4. Spróbuj wkleić w aplikacji niezarządzanej. 5. Upewnij się, że pasta jest zablokowana. 6. Przejdź do innej zarządzanej aplikacji. 7. Spróbuj wkleić w aplikacji zarządzanej. 8. Upewnij się, że wklejanie jest dozwolone. |
| Wklejenie tekstu | "Ogranicz wycinanie, kopiowanie i wklejanie między innymi aplikacjami" ustawione na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie ma żadnych danych wejściowych tekstu do wklejenia, pomiń. 1. Przełącz się do aplikacji niezarządzanej. 2. Skopiuj tekst z aplikacji niezarządzanej. 3. Przejdź do wszystkich stron w aplikacji, które obsługują wprowadzanie tekstu. 5. Spróbuj wkleić z aplikacji niezarządzanej. 5. Upewnij się, że pasta jest zablokowana. 6. Przełącz się do innej zarządzanej aplikacji. 7. Skopiuj tekst z innej zarządzanej aplikacji. 7. Przejdź do wszystkich stron w aplikacji, które mają wprowadzany tekst. 8. Spróbuj wkleić z innej zarządzanej aplikacji. 9. Upewnij się, że wklejanie jest dozwolone. |
| Drukowanie | "Drukowanie danych organizacji" ustawione na wartość "Blok" | 0. Jeśli aplikacja nie zawiera ż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ć od każdej strony. 3. Upewnij się, że drukowanie jest zablokowane. |
| Ograniczenia dotyczące zawartości internetowej w przeglądarce Microsoft Edge | "Ogranicz transfer zawartości internetowej za pomocą innych aplikacji" ustawione na "Microsoft Edge" | 0. Jeśli Twoja aplikacja nie renderuje łączy internetowych, pomiń. 1. Przejdź do wszystkich stron w aplikacji, które mogą wyświetlać linki internetowe lub wprowadzać tekst, który jest renderowany jako klikalne łącza internetowe. 2. Dla każdej strony zaznacz link internetowy. 3. Upewnij się, że jest wyświetlany monit o zainstalowanie Microsoft Edge, a link internetowy nie otwiera się w innej przeglądarce. |
| Klawiatura z ograniczeniami | "Zatwierdzone klawiatury" ustawione na wartość "Wymagane" "Select keyboards to approve" set to tylko pakiet klawiatur, który nie jest aktualnie zainstalowany na urządzeniu |
0. Jeśli aplikacja nie zawiera żadnych danych wejściowych tekstu, pomiń. 1. Przejdź do wszystkich stron w aplikacji, które mają wprowadzany tekst. 2. Wybierz wejście tekstowe, aby wyświetlić klawiaturę urządzenia. 3. Upewnij się, że jest wyświetlany monit o zainstalowanie skonfigurowanej zatwierdzonej klawiatury, a klawiatura bieżącego urządzenia nie otwiera się. |
Testy transferu danych
Ustawienia transferu danych to podzbiór funkcji ochrony danych zasad ochrony aplikacji, które kontrolują dane wprowadzane i wychodzące z aplikacji zarządzanych. Większość aplikacji, które obsługują wysyłanie 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 funkcje, musisz zaimplementować dodatkową obsługę. Aby uzyskać szczegółowe informacje, zobacz Zasady dotyczące ograniczania transferu danych między aplikacjami a lokalizacjami przechowywania urządzenia lub w chmurze .
Aplikacja może aktywnie importować dane z innych aplikacji, takich jak program Microsoft Outlook, dołączając plik z usługi Microsoft OneDrive. Aplikacja może również pasywnie odbierać dane z innych aplikacji, na przykład otwierać dokument 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:
- Zainstaluj aplikację.
- Zainstaluj aplikację Intune — Portal firmy.
- Zainstaluj inną aplikację zarządzaną podlegającą tym samym zasadom co Twoja aplikacja, która może wysyłać i odbierać dane (na przykład Microsoft Outlook).
- Zainstaluj (lub użyj ponownie) dowolnej aplikacji niezarządzanej, która może wysyłać i odbierać dane.
- Zaloguj się do aplikacji przy użyciu testowego konta zarządzanego.
- Zaloguj się do innej zarządzanej aplikacji przy użyciu zarządzanego konta testowego.
| Scenariusz | Ustawienie zasad ochrony aplikacji | Kroki testowe |
|---|---|---|
| Wysyłanie danych do innych aplikacji | "Wyślij dane organizacji do innych aplikacji" ustawione na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie może wysyłać danych do innych aplikacji, pomiń. 1. Przejdź do lokalizacji, do której aplikacja może wysyłać dane. 2. Spróbuj wysłać dane. 3. Upewnij się, że jest ograniczone wysyłanie danych tylko do innych zarządzanych aplikacji. Powinien zostać wyświetlony selektor aplikacji zawierający tylko aplikacje zarządzane. |
| Importowanie danych z innych aplikacji | Pozycja "Odbieraj dane z innych aplikacji" ustawiona na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie może importować danych z innych aplikacji, pomiń. 1. Przejdź do lokalizacji, w której aplikacja może importować dane z innych aplikacji. 2. Spróbuj zaimportować dane. 3. Upewnij się, że importowanie danych jest ograniczone tylko z innych zarządzanych aplikacji. Powinien zostać wyświetlony selektor aplikacji zawierający tylko aplikacje zarządzane. |
| Odbieranie danych z aplikacji niezarządzanej | Pozycja "Odbieraj dane z innych aplikacji" ustawiona na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie może odbierać danych z innych aplikacji, pomiń. 1. Przełącz się do aplikacji niezarządzanej. 2. Przejdź do lokalizacji, do której może wysyłać dane. 3. Spróbuj wysłać dane z aplikacji niezarządzanej do swojej aplikacji. 4. Upewnij się, że aplikacja nie może odbierać danych z aplikacji niezarządzanej. |
| Odbieranie danych z aplikacji zarządzanej | Pozycja "Odbieraj dane z innych aplikacji" ustawiona na wartość "Aplikacje zarządzane przez zasady" | 0. Jeśli Twoja aplikacja nie może odbierać danych z innych aplikacji, pomiń. 1. Przełącz się do innej zarządzanej aplikacji. 2. Przejdź do lokalizacji, do której może wysyłać dane. 3. Spróbuj wysłać dane z innej zarządzanej aplikacji do Twojej aplikacji. 4. Upewnij się, że aplikacja może odbierać dane z innej zarządzanej aplikacji. |
Inne ustawienia ochrony danych
Poniższe ustawienia ochrony danych nie będą wymuszane, dopóki w aplikacji nie zostaną wprowadzone dodatkowe zmiany. Na tym etapie nie musisz testować tych ustawień. Aby uzyskać więcej szczegółów , zobacz etap 7: funkcje uczestnictwa w aplikacji .
| Scenariusz | Ustawienie zasad ochrony aplikacji | Musi wdrożyć wsparcie, 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. |
| Zarządzana zawartość powiadomień | Powiadomienia dotyczące danych organizacji | Aplikacja uwzględnia dane użytkownika w powiadomieniach. |
| Kopia zapasowa i przywracanie | Utwórz kopię zapasową danych organizacji w usługach tworzenia kopii zapasowych dla systemu Android | Twoja aplikacja udostępnia dane użytkownika funkcji tworzenia kopii zapasowych systemu Android. |
Warunkowe testy uruchamiania
Ustawienia uruchamiania warunkowego to podzestaw funkcji zasad ochrony aplikacji, które ograniczają dostęp do aplikacji na podstawie konfigurowalnych kryteriów dla całego urządzenia lub specyficznych dla 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ć:
- Ostrzeżenie: użytkownik końcowy widzi okno dialogowe z ostrzeżeniem, gdy jego urządzenie lub aplikacja nie spełnia kryteriów. Nadal będzie mieć dostęp do wszystkich danych aplikacji.
- Blokowanie dostępu: gdy urządzenie lub aplikacja nie spełnia kryteriów, użytkownik końcowy widzi okno dialogowe z ostrzeżeniem. Nie będą mogli wejść do aplikacji ani uzyskać dostępu do jej danych, dopóki nie spełnią kryteriów lub nie usuną zarządzanego konta z aplikacji.
- Wyczyść dane: wszystkie dane firmowe skojarzone z zarządzanym kontem 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, zanim dane zostaną usunięte.
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 wartość "Ostrzegaj".
- Minimalna wersja systemu operacyjnego, wartość "9.0", akcja ustawiona na wartość "Zablokuj dostęp"
- Minimalna wersja systemu operacyjnego, wartość "8.0", ustawiona akcja to "Wyczyść dane".
Po wykonaniu kroków integracji na tym etapie aplikacja obsługuje teraz wszystkie funkcje uruchamiania warunkowego. Zapoznaj się z funkcją uruchamiania warunkowego, zmieniając elementy zasad w taki sposób, aby urządzenie testowe:
- Spełnia wszystkie skonfigurowane ustawienia uruchamiania warunkowego.
- Błąd skonfigurowanego ustawienia uruchamiania warunkowego ustawionego na akcję "Ostrzegaj".
- Błąd skonfigurowanego ustawienia uruchamiania warunkowego ustawionego na akcję "Blokuj dostęp".
- Niepowodzenie skonfigurowanego ustawienia uruchamiania warunkowego ustawionego na akcję "Wyczyść dane".
Rozwiązywanie problemów
Rozwiązywanie problemów z testem aplikacji opartych na pierwszych zasadach
Po wykonaniu powyższych kroków pierwszego testu aplikacji zasad możesz napotkać następujące nieoczekiwane zachowania:
Po zalogowaniu się przy użyciu konta zarządzanego nie jest wyświetlany monit o zainstalowanie aplikacji Portal firmy (krok 7)
Najpierw odwiedź centrum administracyjne usługi Intune i dokładnie sprawdź, czy zasady ochrony aplikacji są przeznaczone dla konta testowego.
Po drugie, dokładnie sprawdź kod źródłowy pod kątem wywołań registerAccountForMAM i implementacji MAMServiceAuthenticationCallbackpliku .
Jeśli ten pierwszy nie zostanie wywołany we właściwym czasie i/lub drugi nie dostarczy prawidłowego tokenu, nie zostanie wyświetlony monit Portal firmy.
Na koniec poszukaj w dziennikach (lub debugowaniu) kodu wyniku rejestracji lub jawnie wywołaj getRegisteredAccountStatus konto.
Kody takie jak NOT_LICENSED mogą wskazywać na problemy z konfiguracją konta testowego.
Po zalogowaniu się nie widać ekranu uzyskiwania dostępu (krok 10)
Jeśli Portal firmy nie został wcześniej zainstalowany, może być konieczne wznowienie lub pełne ponowne uruchomienie aplikacji w celu wyświetlenia ekranu Uzyskaj dostęp i prawidłowego wymuszenia zasad. Jest to oczekiwany wynik oparty na tym, jak aplikacje zintegrowane z zestawem SDK wykorzystują kod wewnątrz aplikacji Portal firmy.
Jeśli nadal nie widzisz ekranu Uzyskaj dostęp (nawet po ponownym uruchomieniu aplikacji i zalogowaniu się), być może zestaw SDK nie może zarejestrować konta lub pobrać zasad dla konta.
Dokładnie sprawdź implementację pliku .MAMServiceAuthenticationCallback
Nie widzę ekranu do ustawiania lub wprowadzania numeru PIN aplikacji po zalogowaniu się (krok 11)
Czy na urządzeniu testowym są inne aplikacje zintegrowane z zestawem SDK? Numer PIN aplikacji jest współużytkowany przez wszystkie zarządzane aplikacje, a zestaw SDK ma globalny czasomierz, aby zapobiec monitowaniu użytkowników końcowych o podanie numeru PIN przy każdym uruchomieniu lub wznowieniu aplikacji zarządzanej.
W przeciwnym razie odwiedź centrum administracyjne usługi Intune i dokładnie sprawdź, czy zasady ochrony aplikacji mają włączony numer PIN aplikacji i są przeznaczone dla konta testowego.
W ostateczności ponowne uruchomienie urządzenia spowoduje zresetowanie czasomierza kodu PIN. Jeśli po ponownym uruchomieniu urządzenia ekran numeru PIN nie jest wyświetlany, prawdopodobnie nie jest on poprawnie skonfigurowany w zasadach.
Udało mi się wyświetlić ekran uzyskiwania dostępu, ale zrzuty ekranu są nadal dozwolone (krok 12)
Podczas pobierania zasad są stosowane niewłaściwe zasady. Najpierw odwiedź centrum administracyjne usługi Intune i dokładnie sprawdź, czy zasady ochrony aplikacji wyłączają zrzuty ekranu i są przeznaczone dla konta testowego. Następnie za pomocą konsoli diagnostycznej (opisanej powyżej) sprawdź zasady, które zostały ściągnięte dla Twojej aplikacji. Jeśli obie zasady potwierdzą, że zrzuty ekranu powinny być blokowane, sprawdź konfigurację wtyczki kompilacji Gradle, aby upewnić się, że dokonywane są wymiany MAM.
Moja aplikacja uległa awarii lub została zamknięta po wylogowaniu (krok 13)
Po wyrejestrowaniu konta, które zostało wcześniej zarejestrowane i miało wymuszone zasady, dane skojarzone z tym kontem zostaną wyczyszczone przez zestaw SDK. Oczekiwane jest zakończenie procesu aplikacji.
Zrzuty ekranu są nadal blokowane nawet po wylogowaniu (krok 14)
Dokładnie sprawdź kod źródłowy pod kątem wywołań programu 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 możesz napotkać następujące nieoczekiwane zachowania:
Moja aplikacja nie otrzymuje ani nie wymusza żadnych zasad
Najpierw potwierdź, że zasady ochrony aplikacji są przeznaczone dla grupy zawierającej konto testowe. Aby uzyskać szczegółowe informacje, zobacz Jak sprawdzić poprawność konfiguracji zasad ochrony aplikacji w usłudze Microsoft Intune.
Najpierw sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady.
Jeśli nie, sprawdź implementację aplikacji i wywołania MAMServiceAuthenticationCallback do registerAccountForMAM.
Sprawdź również dzienniki lub debuguj, aby zweryfikować MAMEnrollmentManager.Result.
Moja aplikacja może udostępniać dane aplikacji niezarządzanej.
Upewnij się, że ustawienie "Wyślij dane organizacji do innych aplikacji" ma wartość "Aplikacje zarządzane przez zasady". Sprawdź w centrum administracyjnym usługi Microsoft Intune, czy zasady są poprawnie skonfigurowane i ukierunkowane. Sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady.
Następnie, jeśli zasady są skonfigurowane i pobrane poprawnie, sprawdź, czy są wymuszane jakiekolwiek zasady: Moja aplikacja nie otrzymuje ani nie wymusza żadnych zasad.
Moja aplikacja nie może udostępniać danych innej zarządzanej aplikacji
Potwierdź ustawienia zasad ochrony aplikacji przeznaczone zarówno dla Twojej aplikacji , jak i dla innej aplikacji zarządzanej. Zaleca się, aby obie aplikacje miały te same zasady docelowe. Zasady dotyczące aplikacji powinny mieć ustawienie "Wyślij dane organizacji do innych aplikacji" na wartość "Aplikacje zarządzane przez zasady". Sprawdź zasady dotyczące innej aplikacji; jeśli opcja "Odbieraj dane z innych aplikacji" jest ustawiona na wartość "Brak", takie zachowanie jest oczekiwane.
Moja aplikacja może odbierać dane z aplikacji niezarządzanej
Upewnij się, że opcja "Odbieraj dane z innych aplikacji" jest ustawiona na wartość "Aplikacje zarządzane przez zasady". Sprawdź w centrum administracyjnym usługi Microsoft Intune, czy zasady są poprawnie skonfigurowane i ukierunkowane. Sprawdź informacje diagnostyczne klienta, aby potwierdzić, że zestaw SDK otrzymał skonfigurowane zasady.
Następnie, jeśli zasady są skonfigurowane i pobrane poprawnie, sprawdź, czy są wymuszane jakiekolwiek zasady: 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 Twojej aplikacji , jak i dla innej aplikacji zarządzanej. Zaleca się, aby obie aplikacje miały te same zasady docelowe. Zasady dotyczące aplikacji powinny mieć ustawienie "Odbieraj dane z innych aplikacji" na wartość "Aplikacje zarządzane przez zasady". Sprawdź zasady dotyczące innej aplikacji; jeśli opcja "Wyślij dane organizacji do innych aplikacji" jest ustawiona na wartość "Brak", takie zachowanie jest oczekiwane.
Następne kroki
Po spełnieniu wszystkich powyższych kryteriów zakończenia Twoja aplikacja jest teraz pomyślnie zintegrowana jako pojedyncza tożsamość i może wymuszać wszystkie podstawowe zasady ochrony aplikacji. Kolejne sekcje, etap 5: Wiele tożsamości, etap 6: konfiguracja aplikacji i etap 7: uczestnictwo w aplikacji Funkcje mogą, ale nie muszą być wymagane, w zależności od żądanej obsługi zasad ochrony aplikacji aplikacji. Jeśli nie masz pewności, czy którakolwiek z tych sekcji dotyczy Twojej aplikacji, wróć do tematu Kluczowe decyzje dotyczące integracji z zestawem SDK.