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 integruje się 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 przejrzenia Planowanie integracji.
Etap 7. Funkcje uczestnictwa w aplikacji
Cele etapu
- Informacje na temat funkcji uczestnictwa w aplikacjach oferowanych przez zestaw SDK aplikacji usługi Intune.
- Integrowanie funkcji uczestnictwa w aplikacji istotnych dla Twojej aplikacji i użytkowników.
- Przetestuj integrację tych funkcji.
Co to są "funkcje uczestnictwa w aplikacji"?
Ten proces integracji zestawu SDK próbuje zminimalizować ilość kodu specyficznego dla aplikacji, który deweloperzy muszą napisać. Po pomyślnym wykonaniu wcześniejszych etapów integracji z zestawem SDK aplikacja wymusza teraz większość ustawień zasad ochrony aplikacji, takich jak szyfrowanie plików, ograniczenia kopiowania i wklejania, blokowanie zrzutów ekranu i ograniczenia transferu danych.
Jednak niektóre ustawienia wymagają kodu specyficznego dla aplikacji do prawidłowego wymuszenia. Te ustawienia są nazywane funkcjami uczestnictwa w aplikacji. Zazwyczaj zestaw SDK nie ma wystarczającego kontekstu dotyczącego kodu aplikacji lub scenariusza użytkownika końcowego, aby automatycznie wymusić te ustawienia, dlatego polega na deweloperach, aby odpowiednio wywołać interfejsy API zestawu SDK.
Funkcje uczestnictwa w aplikacji nie muszą być opcjonalne. W zależności od istniejących funkcji aplikacji te funkcje mogą być wymagane. Aby uzyskać szczegółowe informacje, zobacz Kluczowe decyzje dotyczące integracji z zestawem SDK .
Poprzednie etapy tego przewodnika opisywały już kilka funkcji uczestnictwa w aplikacji:
- Wielotożsamość opisana w Etapie 5: Wielotożsamość.
- Konfiguracja aplikacji opisana na etapie 6: Konfiguracja aplikacji.
W pozostałej części tego przewodnika opisano pozostały zestaw funkcji uczestnictwa w aplikacji:
- Wymuszaj zasady ograniczające zapisywanie lub otwieranie plików z magazynu lokalnego lub w chmurze.
- Wymuszaj zasady ograniczające zawartość w powiadomieniach.
- Wymuszaj zasady chroniące dane kopii zapasowej.
- Wymuszaj zasady ograniczające przechwytywanie ekranu (jeśli aplikacja ma niestandardowy kod przechwytywania ekranu).
- Obsługa urzędu certyfikacji ochrony aplikacji.
- Zarejestruj się, aby otrzymywać powiadomienia z zestawu SDK.
- Stosowanie niestandardowych motywów aplikacji.
- Użyj zaufanych certyfikatów z usługi Intune, aby zapewnić łańcuch zaufania do lokalnych punktów końcowych.
Uczestnictwo w aplikacji — podstawowe informacje o funkcjach
Interfejs AppPolicy zawiera wiele metod, które informują aplikację, czy określone akcje są dozwolone.
Większość funkcji uczestnictwa w aplikacji obejmuje:
- Wskazanie odpowiedniego miejsca w kodzie aplikacji, aby sprawdzić, czy akcja jest dozwolona.
- Wywoływanie
AppPolicymetody w celu sprawdzenia, czy akcja jest dozwolona, na podstawie aktualnie skonfigurowanych zasad. - W zależności od wyniku, zezwolenie na zakończenie akcji lub zmodyfikowanie zachowania aplikacji, gdy akcja jest zablokowana.
Aby pobrać wystąpienie AppPolicy , użyj jednej z metod MAMPolicyManager , takich jak getPolicy(final Context context) lub getPolicyForIdentityOID(final String oid).
Metody informacyjne w AppPolicy
Nie każda metoda jest AppPolicy powiązana z funkcją uczestnictwa w aplikacji.
Niektóre metody mają charakter informacyjny i dostarczają aplikacji danych, dla których zasady są obecnie skonfigurowane, nawet jeśli te zasady są automatycznie wymuszane przez zestaw SDK.
Te metody istnieją po to, aby umożliwić aplikacji prezentowanie niestandardowych środowisk użytkownika po skonfigurowaniu określonych zasad.
Przykład: określanie, czy zrzuty ekranu są zablokowane
Jeśli aplikacja ma kontrolkę, która umożliwia użytkownikowi wykonanie zrzutu ekranu, rozważ wyłączenie lub ukrycie tej kontrolki, jeśli zasady ochrony aplikacji blokują zrzuty ekranu.
Aplikacja może to sprawdzić, wywołując MAMPolicyManager.getPolicy(currentActivity).getIsScreenCaptureAllowed().
Zasady ograniczania transferu danych między aplikacjami a lokalizacjami przechowywania urządzenia lub w chmurze
Wiele aplikacji umożliwia użytkownikowi końcowemu zapisywanie lub otwieranie danych z lokalnego magazynu plików lub usług magazynu w chmurze. Zestaw SDK aplikacji usługi Intune umożliwia administratorom IT ochronę przed wejściem i wyciekiem danych przez ograniczenie lokalizacji, w których aplikacje mogą zapisywać dane i z których mogą otwierać dane.
Uwaga
Jeśli aplikacja umożliwia zapisywanie w lokalizacjach osobistych lub w chmurze bezpośrednio z poziomu aplikacji albo pozwala na otwieranie danych bezpośrednio w aplikacji, należy zaimplementować tę funkcję uczestnictwa w aplikacji zestawu SDK aplikacji usługi Intune**, aby umożliwić administratorom IT blokowanie zapisywania i otwierania.
Zapisywanie na urządzeniu lub w chmurze
Interfejs getIsSaveToLocationAllowedForOID API informuje aplikację, czy zapisywanie w określonych lokalizacjach jest dozwolone dla danej tożsamości, na podstawie skonfigurowanych zasad:
MAMPolicyManager.getPolicy(currentActivity).getIsSaveToLocationAllowedForOID(
SaveLocation service, String oid);
Aby określić, czy aplikacja powinna implementować getIsSaveToLocationAllowedForOID kontrolę, sprawdź, czy aplikacja obsługuje wyprowadzanie danych, przeglądając poniższą tabelę:
service Parametr: SaveLocation Wartość wyliczenia |
Przypadek użycia | Skojarzony identyfikator OID |
|---|---|---|
ONEDRIVE |
Aplikacja zapisuje dane w usłudze OneDrive. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
SHAREPOINT |
Aplikacja zapisuje dane w programie SharePoint. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
BOX |
Aplikacja zapisuje dane w usłudze Box. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
LOCAL |
Aplikacja zapisuje dane w zewnętrznej lokalizacji pamięci na urządzeniu, która nie jest prywatnym magazynem aplikacji. | Ta lokalizacja przechowywania nie jest uznawana za usługę w chmurze i powinna być zawsze używana z parametrem null OID. |
PHOTO_LIBRARY |
Aplikacja zapisuje dane do lokalnego magazynu zdjęć Androida. | Lokalny magazyn zdjęć nie jest uznawany za usługę w chmurze i zawsze powinien być używany z parametrem null OID. |
IMANAGE |
Aplikacja zapisuje dane w usłudze iManage. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
EGNYTE |
Aplikacja zapisuje dane do Egnyte. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
ACCOUNT_DOCUMENT |
Aplikacja zapisuje dane w lokalizacji skojarzonej z kontem w aplikacji i nie jest żadną z konkretnych lokalizacji w chmurze w tej tabeli. Użyj tej lokalizacji, aby określić, czy dane mogą być przekazywane między kontami w aplikacji obsługującej wiele tożsamości. |
OID dla konta używanego do uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
OTHER |
Aplikacja zapisuje dane w lokalizacji nieokreślonej w tej tabeli, która nie spełnia kryteriów ACCOUNT_DOCUMENT. |
Nie oid jest obliczany dla tej lokalizacji, a powinien być null. |
Pliki Files umieszczone w prywatnym magazynie aplikacji, które są niezbędne do działania aplikacji lub pobrane tymczasowo do wyświetlenia, są zawsze dozwolone; nie trzeba ich sprawdzaćgetIsSaveToLocationAllowedForOID.
Sprawdź SaveLocation.LOCAL
- Files zapisywane poza prywatnym magazynem aplikacji.
- Files pobierane do prywatnego magazynu aplikacji, które nie są niezbędne do działania aplikacji (na przykład, gdy użytkownik jawnie zdecyduje się na pobranie na urządzenie).
Uwaga
Podczas sprawdzania zasad oid zapisywania powinien być identyfikatorem OID konta skojarzonego z usługą w chmurze, na którym jest zapisywany (to konto nie musi być takie samo jak konto właściciela zapisywanego dokumentu).
Otwieranie danych z lokalizacji magazynu lokalnego lub w chmurze
Interfejs getIsOpenFromLocationAllowedForOID API informuje aplikację, czy otwieranie z określonych lokalizacji jest dozwolone dla danej tożsamości, na podstawie skonfigurowanych zasad:
MAMPolicyManager.getPolicy(currentActivity).getIsOpenFromLocationAllowedForOID(
OpenLocation location, String oid);
Aby określić, czy aplikacja powinna zaimplementować kontrolę getIsOpenFromLocationAllowedForOID , sprawdź, czy aplikacja obsługuje ruch przychodzący danych, przeglądając poniższą tabelę:
location Parametr: OpenLocation Wartość wyliczenia |
Przypadek użycia | Skojarzony identyfikator OID |
|---|---|---|
ONEDRIVE_FOR_BUSINESS |
Aplikacja otwiera dane z usługi OneDrive. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
SHAREPOINT |
Aplikacja otwiera dane z programu SharePoint. | OID dla konta używanego zarówno do uwierzytelniania usług w chmurze, jak i uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
CAMERA |
Aplikacja otwiera dane z aparatu urządzenia. | Wartość null , ponieważ aparat urządzenia nie jest usługą w chmurze. |
LOCAL |
Aplikacja otwiera dane z zewnętrznej lokalizacji pamięci na urządzeniu, która nie jest prywatnym magazynem aplikacji. | Chociaż magazyn zewnętrzny nie jest usługą w chmurze, parametr jest oczekiwany, oid ponieważ wskazuje własność.* W przypadku plików oznaczonych tagami tożsamości: oid powinna być tożsamością właściciela pliku.* W przypadku plików bez identyfikatora: oid powinno być null. |
PHOTO_LIBRARY |
Aplikacja otwiera dane z lokalnego magazynu zdjęć systemu Android. | Lokalny magazyn zdjęć nie jest uznawany za usługę w chmurze i zawsze powinien być używany z parametrem null OID. |
ACCOUNT_DOCUMENT |
Aplikacja otwiera dane z lokalizacji skojarzonej z kontem w aplikacji i nie jest żadną z konkretnych lokalizacji w chmurze w tej tabeli. Użyj tej lokalizacji, aby określić, czy dane mogą być przekazywane między kontami w aplikacji obsługującej wiele tożsamości. |
OID dla konta używanego do uwierzytelniania usługi Microsoft Entra. Jeśli to konto nie istnieje lub identyfikator OID nie jest znany, użyj .null |
OTHER |
Aplikacja otwiera dane z lokalizacji nieokreślonej w tej tabeli, która nie spełnia kryteriów .ACCOUNT_DOCUMENT |
Nie oid jest obliczany dla tej lokalizacji, a powinien być null. |
Uwaga
Podczas sprawdzania otwartych zasad powinien to być identyfikator OID konta skojarzonego z plikiem lub usługą w chmurze, z którego jest otwierany plik (niekoniecznie taki sam jak konto, oid które otwiera dokument).
Porada
Dla wygody zestaw SDK udostępnia metodę AppPolicy.isOpenFromLocalStorageAllowed , która przyjmuje File parametr dla pliku w magazynie lokalnym.
W przypadku wymuszania zasad ta metoda jest funkcjonalnie identyczna z wywoływaniemAppPolicy.getIsOpenFromLocationAllowedForOID(OpenLocation.LOCAL, oid), z wyjątkiem tego, że obsługuje analizowanie właściciela oid pliku z .File
Okno dialogowe Zablokowano udostępnianie
Zestaw SDK udostępnia okno dialogowe powiadamiające użytkownika, gdy zasady zarządzania aplikacjami mobilnymi blokują akcję transferu danych.
Okno dialogowe powinno być wyświetlane użytkownikowi za każdym razem, gdy wywołanie getIsSaveToLocationAllowedForOID interfejsu API lub getIsOpenFromLocationAllowedForOID spowoduje zablokowanie akcji zapisywania/otwierania.
W oknie dialogowym jest wyświetlany ogólny komunikat, a po odrzuceniu powracamy do wywołania Activity .
Aby wyświetlić okno dialogowe, dodaj następujący kod:
MAMUIHelper.showSharingBlockedDialog(currentActivity)
Zezwalaj na udostępnianie plików
Jeśli zapisywanie w publicznych lokalizacjach przechowywania nie jest dozwolone, aplikacja powinna nadal umożliwiać użytkownikowi wyświetlanie plików przez pobranie ich do prywatnego magazynu aplikacji , a następnie otwarcie ich za pomocą selektora systemu.
Zasady ograniczania zawartości w powiadomieniach
W przypadku aplikacji z pojedynczą tożsamością domyślne zachowanie zestawu SDK aplikacji usługi Intune próbuje zablokować wszystkie powiadomienia, gdy zasady ochrony aplikacji ograniczają powiadomienia.
Domyślne zachowanie zestawu SDK jest ograniczone. Zestaw SDK nie może automatycznie honorować wartości "Zablokuj dane organizacji", która jest przeznaczona do usuwania z powiadomień tylko zawartości zarządzanej. W przypadku aplikacji obsługujących wiele tożsamości zestaw SDK nie może określić, które powiadomienia zawierają zawartość zarządzaną.
Jeśli aplikacja wyświetla powiadomienia i obsługuje wiele tożsamości i/lub musi honorować wartość "Zablokuj dane organizacji", musi sprawdzić zasady ograniczeń powiadomień dla konta skojarzonego z powiadomieniem przed wyświetleniem powiadomienia.
Aby określić, czy zasady są wymuszane, wykonaj następujące wywołanie:
NotificationRestriction notificationRestriction =
MAMPolicyManager.getPolicyForIdentityOID(notificationIdentityOid).getNotificationRestriction();
Zwracane NotificationRestriction wyliczenie ma następujące wartości:
NotificationRestriction Wyliczenie |
Oczekiwane zachowanie aplikacji |
|---|---|
BLOCKED |
Aplikacja nie może wyświetlać żadnych powiadomień dotyczących konta skojarzonego z tą zasadą. W przypadku aplikacji z pojedynczą tożsamością zestaw SDK aplikacji usługi Intune automatycznie blokuje wszystkie powiadomienia i nie jest wymagany żaden dodatkowy kod. |
BLOCK_ORG_DATA |
Aplikacja musi wyświetlać zmodyfikowane powiadomienie, które nie zawiera danych organizacji. |
UNRESTRICTED |
W aplikacji powinny być wyświetlane wszystkie powiadomienia. |
Jeśli aplikacja nie jest poprawnie wywoływana getNotificationRestriction, zestaw SDK zarządzania aplikacjami mobilnymi dokłada wszelkich starań, aby automatycznie ograniczyć powiadomienia tylko dla aplikacji z pojedynczą tożsamością.
W takim przypadku BLOCK_ORG_DATA jest traktowany tak samo jak BLOCKED i powiadomienie nie jest w ogóle wyświetlane.
Aby uzyskać bardziej szczegółową kontrolę, sprawdź wartość getNotificationRestriction i odpowiednio zmodyfikuj powiadomienia aplikacji.
Zasady ochrony danych kopii zapasowej
Zestaw SDK aplikacji usługi Intune może blokować przekazywanie danych do wbudowanej funkcji tworzenia kopii zapasowych i przywracania systemu Android. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowych i przywracania w systemie Android, zapoznaj się z przewodnikiem po interfejsie API systemu Android i zmianami wprowadzonymi w systemie Android S / 12 w Zmień na kopię zapasową i przywracanie.
Automatyczna kopia zapasowa aplikacji
Począwszy od Androida M, Android zapewnia automatyczne pełne kopie zapasowe w usłudze Dysk Google dla aplikacji, niezależnie od docelowego interfejsu API aplikacji.
Usługa Intune umożliwia korzystanie ze wszystkich funkcji automatycznego tworzenia kopii zapasowych dostępnych w systemie Android, w tym możliwości definiowania reguł niestandardowych w języku XML, wraz ze szczegółowymi wskazówkami dotyczącymi integracji z usługą Intune w celu zapewnienia ochrony danych.
Konfigurowanie zachowania kopii zapasowej w manifeście aplikacji
Domyślnie jest ustawiona na wartość true, android:allowBackup zgodnie z opisem w temacie Włączanie i wyłączanie kopii zapasowej.
Jeśli aplikacja nie wymaga pełnej funkcjonalności kopii zapasowej i przywracania, ustaw android:allowBackup wartość false.
W takim przypadku nie trzeba wykonywać żadnych dalszych czynności, a dane firmowe pozostają w aplikacji.
Jeśli aplikacja wymaga pełnej funkcjonalności kopii zapasowej i przywracania, ustaw android:allowBackup wartość true i wykonaj następujące czynności:
Jeśli aplikacja nie używa własnego niestandardowego
BackupAgent, użyj domyślnego składnika MAMBackupAgent, aby włączyć automatyczne pełne kopie zapasowe, które są zgodne z zasadami usługi Intune. W manifeście aplikacji umieść następujące informacje:<application ... android:fullBackupOnly="true" android:backupAgent="com.microsoft.intune.mam.client.app.backup.MAMDefaultBackupAgent" ...> </application>Opcjonalnie. W przypadku wdrożenia niestandardowego
BackupAgentnależy użyć elementu MAMBackupAgent lub MAMBackupAgentHelper. Zobacz poniższe sekcje. Rozważ przełączenie się na MAMDefaultBackupAgent usługi Intune, opisaną w kroku 1, która zapewnia łatwą kopię zapasową w systemie Android M i nowszych.Decydując, jaki typ pełnej kopii zapasowej powinna otrzymać aplikacja (niefiltrowana, filtrowana lub brak), ustaw atrybut
android:fullBackupContentnatrue,falselub zasób XML w aplikacji.Następnie należy skopiować wartość do
android:fullBackupContenttagucom.microsoft.intune.mam.FullBackupContentmetadanych, a w przypadku aplikacji obsługujących format konfiguracji XML dodany w API 31 do tagucom.microsoft.intune.mam.DataExtractionRulesmetadanych.Przykład 1: Jeśli chcesz, aby Twoja aplikacja miała pełne kopie zapasowe bez wykluczeń, musisz ustawić tagi atrybutów i metadanych na wartość true:
<application ... android:fullBackupContent="true" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="true" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="true" />Przykład 2: Jeśli chcesz, aby aplikacja używała niestandardowych
BackupAgentkopii zapasowych i zrezygnowała z pełnych, zgodnych z zasadami usługi Intune, automatycznych kopii zapasowych, musisz ustawić atrybuty i tagi metadanych na wartość false:<application ... android:fullBackupContent="false" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:value="false" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:value="false" />Przykład 3: Jeśli chcesz, aby Twoja aplikacja miała pełne kopie zapasowe zgodnie z regułami niestandardowymi zdefiniowanymi w pliku XML, ustaw tag atrybutu i metadanych na ten sam zasób XML:
<application ... android:fullBackupContent="@xml/my_full_backup_content_scheme" android:dataExtractionRules="@xml/my_data_extraction_rules_scheme" ...> </application> ... <meta-data android:name="com.microsoft.intune.mam.FullBackupContent" android:resource="@xml/my_full_backup_content_scheme" /> <meta-data android:name="com.microsoft.intune.mam.DataExtractionRules" android:resource="@xml/my_data_extraction_rules_scheme" />
Kopia zapasowa kluczy/wartości
Opcja kopii zapasowej klucza/wartości jest dostępna dla wszystkich interfejsów API 8+ i przesyła dane aplikacji do usługi tworzenia kopii zapasowych systemu Android. Ilość danych dla każdej aplikacji jest ograniczona do 5 MB. Jeśli używasz kopii zapasowej kluczy/wartości, musisz użyć BackupAgentHelper lub BackupAgent.
BackupAgentHelper
BackupAgentHelper jest łatwiejszy do wdrożenia niż BackupAgent zarówno pod względem natywnej funkcjonalności systemu Android, jak i integracji z MAM w usłudze Intune.
BackupAgentHelper umożliwia deweloperowi rejestrowanie całych plików i udostępnionych preferencji do i FileBackupHelperSharedPreferencesBackupHelper (odpowiednio), które są następnie dodawane do BackupAgentHelper po utworzeniu.
Wykonaj następujące kroki, aby użyć składnika BackupAgentHelper z funkcją zarządzania aplikacjami mobilnymi usługi Intune:
Aby korzystać z kopii zapasowej wielu tożsamości za pomocą , postępuj zgodnie z przewodnikiem
BackupAgentHelpersystemu Android po rozszerzaniu BackupAgentHelper.Poproś klasę o rozszerzenie odpowiednika zarządzania aplikacjami mobilnymi BackupAgentHelper, FileBackupHelper i SharedPreferencesBackupHelper.
| Zajęcia systemu Android | Odpowiednik MAM |
|---|---|
BackupAgentHelper |
MAMBackupAgentHelper |
FileBackupHelper |
MAMFileBackupHelper |
SharedPreferencesBackupHelper |
MAMSharedPreferencesBackupHelper |
Przestrzeganie tych wytycznych umożliwia pomyślne wykonywanie kopii zapasowych i przywracanie wielu tożsamości.
Agent kopii zapasowej
BackupAgent pozwala znacznie bardziej wyraźnie określić, jakie dane są tworzone w kopii zapasowej. Ponieważ deweloper jest odpowiedzialny za implementację, wymagane jest wykonanie dalszych kroków w celu zapewnienia odpowiedniej ochrony danych z usługi Intune. Ponieważ większość pracy spoczywa na Tobie jako deweloperze, integracja z usługą Intune jest nieco bardziej zaangażowana.
Integrowanie zarządzania aplikacjami mobilnymi:
Uważnie przeczytaj przewodnik systemu Android dotyczący tworzenia kopii zapasowych kluczy/wartości, a w szczególności rozszerzania programu BackupAgent , aby upewnić się, że implementacja agenta kopii zapasowej jest zgodna z wytycznymi systemu Android.
Poproś klasę o rozszerzenie MAMBackupAgent.
Kopia zapasowa wielu tożsamości:
Przed rozpoczęciem tworzenia kopii zapasowej sprawdź, czy administrator IT zezwolił na tworzenie kopii zapasowych plików lub buforów danych, których kopię zapasową chcesz utworzyć w scenariuszach z wieloma tożsamościami. Użyj
isBackupAllowedw MAMFileProtectionManager i MAMDataProtectionManager, aby określić to zachowanie. Jeśli nie można utworzyć kopii zapasowej pliku lub bufora danych, nie należy uwzględniać go w kopii zapasowej.Jeśli chcesz utworzyć kopię zapasową tożsamości plików zaewidencjonowanych w kroku 1, na którymś momencie tworzenia kopii zapasowej musisz zadzwonić
backupMAMFileIdentity(BackupDataOutput data, File … files)z plikami, z których zamierzasz wyodrębnić dane. Ta metoda automatycznie tworzy nowe encje kopii zapasowej i zapisujeBackupDataOutputje dla Ciebie. Te jednostki są automatycznie zużywane podczas przywracania.
Przywracanie wielu tożsamości: Przewodnik Kopia zapasowa danych określa ogólny algorytm przywracania danych aplikacji i udostępnia przykładowy kod w sekcji Extending BackupAgent . Aby pomyślnie przywrócić wiele tożsamości, należy postępować zgodnie z ogólną strukturą podaną w tym przykładzie kodu, zwracając szczególną uwagę na następujące punkty:
Musisz użyć pętli
while(data.readNextHeader())*, aby przejść przez encje kopii zapasowej.Musisz zadzwonić
data.skipEntityData(), jeślidata.getKey()nie pasuje do klucza, który wpisałeś wonBackup. Bez tego kroku przywracanie może zakończyć się niepowodzeniem.Unikaj powrotu podczas zużywania jednostek zapasowych w
while(data.readNextHeader())konstrukcji *, ponieważ wszystkie jednostki, które automatycznie zapisujemy, są w tym przypadku tracone.
- Gdzie
datato nazwa zmiennej lokalnej dla parametru MAMBackupDataInput odbieranego przez aplikację podczas przywracania.
Niestandardowe ograniczenia rejestratora ekranu
Jeśli aplikacja zawiera niestandardową funkcję przechwytywania ekranu, która omija ograniczenia systemu FLAG_SECURE AndroidWindow, musisz sprawdzić zasady tworzenia zrzutów ekranu przed zezwoleniem na pełny dostęp do tej funkcji.
Jeśli na przykład aplikacja używa niestandardowego aparatu renderowania w celu renderowania bieżącego widoku do pliku PNG, musisz najpierw sprawdzić AppPolicy.getIsScreenCaptureAllowed().
Uwaga
Jeśli aplikacja nie zawiera żadnych niestandardowych lub innych funkcji przechwytywania ekranu, nie jest wymagane podejmowanie żadnych działań w celu ograniczenia przechwytywania ekranu.
Zasady tworzenia zrzutów ekranu są automatycznie wymuszane na Window poziomie wszystkich zintegrowanych aplikacji MAM.
Wszelkie próby przechwycenia pliku Window w aplikacji przez system operacyjny lub inną aplikację są blokowane jako wymagane.
Jeśli na przykład użytkownik próbuje przechwycić ekran aplikacji za pomocą wbudowanych w system Android funkcji zrzutów ekranu lub nagrywania ekranu, przechwytywanie jest automatycznie ograniczone bez udziału aplikacji.
Obsługa urzędu certyfikacji ochrony aplikacji
Urząd certyfikacji ochrony aplikacji (dostęp warunkowy), nazywany również urzędem certyfikacji opartym na aplikacji, ogranicza dostęp do zasobów. Zasady ochrony aplikacji usługi Intune muszą zarządzać aplikacją, zanim będzie mogła uzyskać dostęp do tych zasobów. Usługa Microsoft Entra ID wymusza tę zasadę, wymagając zarejestrowania aplikacji w zasadach ochrony aplikacji usługi Intune i zarządzania nimi przed udzieleniem tokenu w celu uzyskania dostępu do zasobu chronionego dostępem warunkowym.
Uwaga
Obsługa urzędu certyfikacji ochrony aplikacji wymaga biblioteki Microsoft Authentication Library (MSAL) w wersji 1.0.0 lub nowszej.
Obsługa niezgodności z biblioteką MSAL
Gdy aplikacja uzyskuje token dla konta, biblioteka MSAL może zwrócić lub zgłosić MsalIntuneAppProtectionPolicyRequiredException komunikat wskazujący niezgodność z zarządzaniem zasadami ochrony aplikacji.
Z wyjątku można wyodrębnić więcej parametrów do użycia podczas korygowania zgodności (zobacz MAMComplianceManager).
Po pomyślnym wykonaniu korekty aplikacja może ponownie spróbować nabyć token za pośrednictwem biblioteki MSAL.
MAMComplianceManager
Interfejs MAMComplianceManager jest używany, gdy z biblioteki MSAL zostanie odebrany błąd wymagany przez zasady.
Zawiera metodę [remediateCompliance], którą należy wywołać, aby spróbować wprowadzić aplikację w stan zgodności.
Można uzyskać odniesienie do następujących elementów MAMComplianceManager :
MAMComplianceManager mgr = MAMComponents.get(MAMComplianceManager.class);
// make use of mgr
Zwrócone MAMComplianceManager wystąpienie na pewno nie będzie null.
package com.microsoft.intune.mam.policy;
public interface MAMComplianceManager {
void remediateCompliance(String upn, String aadId, String tenantId, String authority, boolean showUX);
}
Metoda remediateCompliance() próbuje oddać aplikację pod zarządzanie w celu spełnienia warunków przyznania żądanego tokenu przez usługę Microsoft Entra ID.
Pierwsze cztery parametry można wyodrębnić z wyjątku otrzymywanego przez metodę MSAL AuthenticationCallback.onError() .
Ostatni parametr jest wartością logiczną, która określa, czy środowisko użytkownika jest wyświetlane podczas próby zgodności.
remediateCompliance Wyświetla proste okno dialogowe postępu blokowania, dzięki czemu aplikacje nie muszą pokazywać dostosowanego środowiska podczas tej operacji.
To okno dialogowe jest wyświetlane tylko podczas korygowania zgodności. Nie wyświetla końcowego wyniku.
Aplikacja może zarejestrować odbiorcę COMPLIANCE_STATUS powiadomienia w celu obsługi powodzenia lub niepowodzenia próby skorygowania zgodności.
Aby uzyskać więcej informacji, zobacz Powiadomienia o stanie zgodności .
remediateCompliance() może zainicjować rejestrację zarządzania aplikacjami mobilnymi w ramach ustanawiania zgodności.
Aplikacja może otrzymać powiadomienie o rejestracji, jeśli zarejestrowała odbiornik powiadomień dla powiadomień o rejestracji.
Zarejestrowana MAMServiceAuthenticationCallback aplikacja ma wywoływaną metodę acquireToken() w celu uzyskania tokenu do rejestracji.
acquireToken() jest wywoływana, zanim aplikacja uzyska swój własny token. Wszelkie zadania księgowe lub tworzenia konta, które aplikacja wykonuje po pomyślnym nabyciu tokenu, mogły jeszcze nie zostać wykonane.
W tym przypadku wywołanie zwrotne musi być w stanie uzyskać token.
Jeśli nie można zwrócić tokenu z acquireToken(), próba skorygowania zgodności kończy się niepowodzeniem.
Jeśli wywołasz updateToken później z prawidłowym tokenem dla żądanego zasobu, korygowanie zgodności zostanie natychmiast wznowione z podanym tokenem.
Uwaga
Dyskretne nabywanie tokenów jest nadal możliwe, acquireToken() ponieważ użytkownik został już poinstruowany, aby zainstalować brokera i zarejestrować urządzenie przed wystąpieniem wyjątku MsalIntuneAppProtectionPolicyRequiredException .
W wyniku tego procesu broker ma w pamięci podręcznej prawidłowy token odświeżania, co pozwala brokerowi uzyskać żądany token w trybie dyskretnym.
Oto przykład, który odbiera błąd wymagany przez zasady w metodzie AuthenticationCallback.onError() i wywołuje metodę MAMComplianceManager w celu obsługi błędu.
public void onError(@Nullable MsalException exc) {
if (exc instanceof MsalIntuneAppProtectionPolicyRequiredException) {
final MsalIntuneAppProtectionPolicyRequiredException policyRequiredException =
(MsalIntuneAppProtectionPolicyRequiredException) ex;
final String upn = policyRequiredException.getAccountUpn();
final String aadId = policyRequiredException.getAccountUserId();
final String tenantId = policyRequiredException.getTenantId();
final String authority = policyRequiredException.getAuthorityURL();
MAMComplianceManager complianceManager = MAMComponents.get(MAMComplianceManager.class);
complianceManager.remediateCompliance(upn, aadId, tenantId, authority, showUX);
}
}
Powiadomienia o stanie zgodności
Jeśli aplikacja zarejestruje się w celu uzyskania powiadomień typu COMPLIANCE_STATUS, system wysyła a MAMComplianceNotification w celu poinformowania aplikacji o ostatecznym stanie próby skorygowania zgodności.
Aby uzyskać szczegółowe informacje na temat rejestrowania, zobacz Zarejestruj się, aby otrzymywać powiadomienia z zestawu SDK .
public interface MAMComplianceNotification extends MAMUserNotification {
MAMCAComplianceStatus getComplianceStatus();
String getComplianceErrorTitle();
String getComplianceErrorMessage();
}
Metoda getComplianceStatus() zwraca wynik próby skorygowania zgodności jako wartość z wyliczenia [MAMCAComplianceStatus].
| Kod stanu | Objaśnienie |
|---|---|
UNKNOWN |
Status jest nieznany. Ten stan może wskazywać na nieoczekiwaną przyczynę błędu. Więcej informacji można znaleźć w dziennikach Portal firmy. |
COMPLIANT |
Korygowanie zgodności zakończyło się pomyślnie i aplikacja jest teraz zgodna z zasadami. Należy ponowić próbę nabycia tokenu MSAL. |
NOT_COMPLIANT |
Próba skorygowania zgodności nie powiodła się. Aplikacja nie jest zgodna i nie należy ponawiać próby pozyskania tokenu MSAL do czasu poprawienia warunku błędu. Zawiera MAMComplianceNotification on dodatkowe informacje o błędach. |
SERVICE_FAILURE |
Wystąpił błąd podczas próby pobrania danych zgodności z usługi Intune. Więcej informacji można znaleźć w dziennikach Portal firmy. |
NETWORK_FAILURE |
Wystąpił błąd podczas łączenia się z usługą Intune. Aplikacja powinna ponowić próbę pozyskania tokenu po przywróceniu połączenia sieciowego. |
CLIENT_ERROR |
Próba skorygowania zgodności nie powiodła się z powodu problemu związanego z klientem, takiego jak brakujący lub niepoprawny token użytkownika. Zawiera MAMComplianceNotification więcej informacji o błędach. |
PENDING |
Próba skorygowania zgodności kończy się niepowodzeniem, ponieważ usługa nie wysyła odpowiedzi o stanie przed upływem limitu czasu. Aplikacja powinna później ponowić próbę pozyskania tokenu. |
COMPANY_PORTAL_REQUIRED |
Aby można było pomyślnie przeprowadzić korygowanie zgodności, na urządzeniu musi być zainstalowana aplikacja Portal firmy. Jeśli aplikacja jest już zainstalowana, należy ją ponownie uruchomić. Zostanie wyświetlone okno dialogowe z monitem o ponowne uruchomienie aplikacji. |
Jeśli stan zgodności to MAMCAComplianceStatus.COMPLIANT, aplikacja powinna ponownie zainicjować pozyskiwanie tokenu pierwotnego (dla własnego zasobu).
Jeśli próba skorygowania zgodności nie powiedzie się getComplianceErrorTitle() , metody and getComplianceErrorMessage() zwracają zlokalizowane ciągi, które aplikacja może wyświetlić użytkownikowi końcowemu, jeśli tak zdecyduje.
Ta aplikacja nie potrafi rozwiązać większości przypadków błędów. Ogólnie rzecz biorąc, tworzenie konta lub logowanie kończy się niepowodzeniem i użytkownik może spróbować ponownie później.
Jeśli błąd jest trwały, dzienniki Portal firmy mogą pomóc w ustaleniu przyczyny. Użytkownik końcowy może przesłać dzienniki. Aby uzyskać więcej informacji, zobacz Przekazywanie i dzienniki poczty e-mail.
Oto przykład rejestrowania odbiornika przy użyciu klasy anonimowej w celu zaimplementowania interfejsu MAMNotificationReceiver :
final MAMNotificationReceiverRegistry notificationRegistry = MAMComponents.get(MAMNotificationReceiverRegistry.class);
// create a receiver
final MAMNotificationReceiver receiver = new MAMNotificationReceiver() {
public boolean onReceive(MAMNotification notification) {
if (notification.getType() == MAMNotificationType.COMPLIANCE_STATUS) {
MAMComplianceNotification complianceNotification = (MAMComplianceNotification) notification;
// take appropriate action based on complianceNotification.getComplianceStatus()
// unregister this receiver if no longer needed
notificationRegistry.unregisterReceiver(this, MAMNotificationType.COMPLIANCE_STATUS);
}
return true;
}
};
// register the receiver
notificationRegistry.registerReceiver(receiver, MAMNotificationType.COMPLIANCE_STATUS);
Uwaga
Musisz zarejestrować odbiorcę powiadomień przed wywołaniem remediateCompliance() , aby uniknąć sytuacji wyścigu, która mogłaby spowodować pominięcie powiadomienia.
Deklarowanie obsługi urzędu certyfikacji ochrony aplikacji
Gdy aplikacja będzie gotowa do obsługi korygowania urzędu certyfikacji aplikacji, możesz poinformować usługę Microsoft Identity, że Twoja aplikacja jest gotowa do użycia w usłudze App CA. Aby to zrobić w aplikacji MSAL, skompiluj klienta publicznego z możliwościami klienta "protapp"
{
"client_id" : "[YOUR_CLIENT_ID]",
"authorization_user_agent" : "DEFAULT",
"redirect_uri" : "[YOUR_REDIRECT_URI]",
"multiple_clouds_supported":true,
"broker_redirect_uri_registered": true,
"account_mode": "MULTIPLE",
"client_capabilities": "protapp",
"authorities" : [
{
"type": "AAD",
"audience": {
"type": "AzureADandPersonalMicrosoftAccount"
}
}
]
}
Po zakończeniu tych kroków przejdź do sprawdzania poprawności urzędu certyfikacji ochrony aplikacji.
Uwagi dotyczące implementacji
Uwaga
Metoda aplikacji MAMServiceAuthenticationCallback.acquireToken() powinna przekazać wartość false , aby flaga została oznaczona forceRefresh jako acquireTokenSilentAsync().
AcquireTokenSilentParameters acquireTokenSilentParameters =
builder.withScopes(Arrays.asList(scopes))
.forceRefresh(false)
.build();
acquireTokenSilentAsync(acquireTokenSilentParameters);
Uwaga
Jeśli chcesz wyświetlić niestandardowe blokujące środowisko użytkownika podczas próby naprawy, przekaż parametr showUX do .remediateCompliance()
Przed zadzwonieniem remediateCompliance()musisz upewnić się, że pokazujesz swój UX i rejestrujesz odbiornik powiadomień.
Zapobiega to sytuacji, w której szybkie niepowodzenie może spowodować remediateCompliance() przeoczenie powiadomienia.
Na przykład metoda or onMAMCreate() podklasy Activity jest idealnym miejscem do zarejestrowania odbiornika powiadomień, onCreate() a następnie wywołania remediateCompliance().
Parametry dla remediateCompliance() mogą być przekazywane do środowiska użytkownika jako dodatki intencji.
Po otrzymaniu powiadomienia o stanie zgodności można wyświetlić wynik lub zakończyć działanie.
Uwaga
remediateCompliance() Rejestruje konto i podejmuje próbę rejestracji. Po zdobyciu głównego tokena sprawdzanie registerAccountForMAM() nie jest konieczne, ale nie ma w tym nic złego.
Z drugiej strony, jeśli aplikacja nie może uzyskać tokenu i chce usunąć konto użytkownika, musi wywołać metodę unregisterAccountForMAM() usunięcia konta i zapobiec ponownemu rejestrowaniu w tle.
Zarejestruj się, aby otrzymywać powiadomienia z zestawu SDK
Przewodnik zestawu SDK aplikacji usługi Intune opisuje kilka scenariuszy, w których aplikacja może być wymagana do zarejestrowania się w celu otrzymywania powiadomień z zestawu SDK, takich jak:
- Obsługa
WRONG_USERaplikacji z wieloma tożsamościami (zobacz Tożsamości zarządzane i niezarządzane) - Obsługa
MANAGEMENT_REMOVEDwielu aplikacji tożsamości (zobacz Data Buffer Protection). - Obsługa
WIPE_USER_DATAwielu aplikacji tożsamości lubWIPE_USER_AUXILIARY_DATA(zobacz Czyszczenie selektywne). - Aplikacje, które implementują obsługę
REFRESH_APP_CONFIGkonfiguracji aplikacji (zobacz Pobieranie konfiguracji aplikacji z zestawu SDK).
W tej sekcji opisano każdy typ powiadomienia, które może wysłać zestaw SDK, kiedy i dlaczego aplikacja chce go nasłuchiwać oraz jak zaimplementować odbiornik powiadomień.
Typy powiadomień
Wszystkie powiadomienia zestawu SDK implementują interfejs MAMNotification , który ma pojedynczą funkcję getType(), która zwraca wyliczenie MAMNotificationType .
Większość powiadomień to instancje MAMUserNotification , które dostarczają informacji specyficznych dla pojedynczej tożsamości. Identyfikator OID tożsamości można pobrać za pośrednictwem getUserOid() funkcji, a główną nazwę użytkownika tożsamości można pobrać za pośrednictwem getUserIdentity().
MAMEnrollmentNotification i MAMComplianceNotification dodatkowo rozszerzają MAMUserNotification, co zawiera wyniki odpowiednio dla prób zarejestrowania użytkownika lub urządzenia w usłudze zarządzania aplikacjami mobilnymi oraz wyniki prób skorygowania zgodności dla urzędu certyfikacji ochrony aplikacji.
| Typ powiadomienia | Klasa powiadomienia | Powód powiadomienia | Zastosowanie | Wskazówki dotyczące obsługi | Informacje o wątku |
|---|---|---|---|---|---|
COMPLIANCE_STATUS |
MAMComplianceNotification |
Zwraca wynik próby skorygowania zgodności. | Aplikacje, które implementują urząd certyfikacji ochrony aplikacji, muszą to obsługiwać. | – | Niedeterministyczne |
MAM_ENROLLMENT_RESULT |
MAMEnrollmentNotification |
Zwraca wynik próby rejestracji. | Wszystkie aplikacje otrzymują te informacje. | – | Niedeterministyczne |
MANAGEMENT_REMOVED |
MAMUserNotification |
Aplikacja wkrótce nie będzie zarządzana. | Aplikacje, które używają MAMDataProtectionManager , muszą sobie z tym poradzić. |
Zobacz MANAGEMENT_REMOVED. | Nigdy w wątku interfejsu użytkownika |
REFRESH_APP_CONFIG |
MAMUserNotification |
Wartości konfiguracji aplikacji mogły ulec zmianie. | Aplikacje, które implementują konfigurację aplikacji i buforują dane konfiguracji aplikacji, muszą to obsługiwać. | Aplikacje muszą unieważnić i odświeżyć wszelkie buforowane dane konfiguracyjne aplikacji. | Niedeterministyczne |
REFRESH_POLICY |
MAMUserNotification |
Zasady dotyczące ochrony aplikacji mogły zostać zmienione. | Aplikacje, które buforują zasady ochrony aplikacji, muszą to obsłużyć. | Aplikacje muszą unieważniać i aktualizować buforowane dane zasad ochrony aplikacji. | Niedeterministyczne |
WIPE_USER_DATA |
MAMUserNotification |
Niedługo nastąpi czyszczenie (*). | Aplikacje, które używają MAMDataProtectionManager , muszą obsługiwać to LUBWIPE_USER_AUXILIARY_DATA. |
Patrz Czyszczenie selektywne. | Nigdy w wątku interfejsu użytkownika |
WIPE_USER_AUXILIARY_DATA |
MAMUserNotification |
Niedługo nastąpi czyszczenie (*). | Otrzymują je tylko aplikacje obsługujące wiele tożsamości. Aplikacje, które używają MAMDataProtectionManager , muszą obsługiwać to LUBWIPE_USER_DATA. |
Patrz Czyszczenie selektywne. | Nigdy w wątku interfejsu użytkownika |
WIPE_COMPLETED |
MAMUserNotification |
Czyszczenie zostało ukończone. | Opcjonalne dla wszystkich aplikacji. | Dostarczone po WIPE_USER_DATA lub WIPE_USER_AUXILIARY_DATA.Jeśli aplikacja zgłosi błąd z programu obsługi czyszczenia, to powiadomienie nie zostanie wysłane. |
Nigdy w wątku interfejsu użytkownika |
(*) Chusteczki mogą występować z wielu powodów, na przykład:
- Aplikacja o nazwie unregisterAccountForMAM.
- Administrator IT zainicjował zdalne czyszczenie.
- Zasady dostępu warunkowego wymagane przez Administracja nie zostały spełnione.
Ostrzeżenie
Aplikacja nigdy nie powinna rejestrować się zarówno dla powiadomień WIPE_USER_DATA , jak i WIPE_USER_AUXILIARY_DATA .
MANAGEMENT_REMOVED
Powiadomienie MANAGEMENT_REMOVED informuje aplikację, że konto, które wcześniej było zarządzane przez zasady, wkrótce stanie się niezarządzane.
Po odłączeniu się od zarządzania kontem aplikacja nie może odczytywać zaszyfrowanych plików tego konta, odczytywać zaszyfrowanych MAMDataProtectionManagerdanych konta, wchodzić w interakcje z zaszyfrowanym schowkiem ani w inny sposób uczestniczyć w ekosystemie aplikacji zarządzanych.
Nie wymaga to czyszczenia danych użytkownika ani wylogowywania użytkownika (gdyby wymagane było czyszczenie, powiadomienie zostałoby wysłane WIPE_USER_DATA ).
Wiele aplikacji może nie potrzebować obsługi tego powiadomienia, ale aplikacje, które używają MAMDataProtectionManager tej funkcji, muszą sobie z tym poradzić.
Zobacz Ochrona buforu danych , aby uzyskać szczegółowe informacje.
Gdy zestaw SDK wywołuje odbiornik aplikacji MANAGEMENT_REMOVED , prawdziwe są następujące informacje:
Zestaw SDK odszyfrował już wcześniej zaszyfrowane pliki (ale nie chronione bufory danych) należące do aplikacji. Foldery Files w miejscach publicznych na karcie SD, które nie należą bezpośrednio do aplikacji (na przykład foldery Dokumenty lub Pobrane), nie są odszyfrowywane.
Żadne nowe pliki lub chronione bufory danych tworzone przez metodę odbiornika (lub jakikolwiek inny kod uruchamiany po uruchomieniu odbiornika) nie są szyfrowane.
Aplikacja nadal ma dostęp do kluczy szyfrowania, więc operacje, takie jak odszyfrowywanie buforów danych, kończą się powodzeniem.
Po powrocie odbiornik aplikacji nie ma już dostępu do kluczy szyfrowania.
Implementowanie MAMNotificationReceiver
Aby zarejestrować się w celu otrzymywania powiadomień z zestawu SDK, aplikacja musi utworzyć element MAMNotificationReceiver i zarejestrować go w rejestrze MAMNotificationReceiverRegistry.
Aby zarejestrować odbiorcę, zadzwoń registerReceiver z odbiornikiem i żądanym typem powiadomienia w swojej Application.onCreate metodzie:
@Override
public void onCreate() {
super.onCreate();
MAMComponents.get(MAMNotificationReceiverRegistry.class)
.registerReceiver(
new ToastNotificationReceiver(),
MAMNotificationType.WIPE_USER_DATA);
}
Implementacja MAMNotificationReceiver aplikacji musi zawierać metodę onReceive(MAMNotification notification) .
Ta metoda jest wywoływana osobno dla każdego odebranego powiadomienia i musi zwrócić plik boolean.
Ogólnie rzecz biorąc, ta metoda powinna zawsze zwracać true, chyba że aplikacja napotkała błąd odpowiadający na powiadomienie.
Podobnie jak w przypadku innych typów odbiorników systemu Android, aplikacja ma elastyczność w zakresie obsługi powiadomień:
- Może tworzyć odrębne implementacje MAMNotificationReceiver dla różnych typów powiadomień. W takim przypadku upewnij się, że zarejestrowano każdą implementację i każdy typ powiadomienia osobno.
- Może użyć pojedynczej implementacji MAMNotificationReceiver , która zawiera logikę odpowiadania na wiele różnych typów powiadomień. W takim przypadku musi być zarejestrowany dla każdego typu powiadomienia, na które może odpowiadać.
- Może tworzyć wiele implementacji MAMNotificationReceiver , z których każda odpowiada na ten sam typ powiadomienia. W takim przypadku oba muszą być zarejestrowane dla tego samego typu powiadomienia.
Porada
Można bezpiecznie zablokować MAMNotificationReceiver.onReceive , ponieważ jego wywołanie zwrotne nie działa w wątku interfejsu użytkownika.
Motywy niestandardowe
Do zestawu SDK aplikacji usługi Intune można dodać motyw niestandardowy; ten motyw niestandardowy ma zastosowanie do wszystkich ekranów i okien dialogowych zestawu SDK. W przypadku braku motywu zostanie użyty domyślny motyw zestawu SDK.
Udostępnianie motywu niestandardowego
Aby udostępnić motyw, dodaj następujący wiersz kodu w metodzie Application.onMAMCreate :
MAMThemeManager.setAppTheme(R.style.AppTheme);
W tym przykładzie zastąp R.style.AppTheme motyw stylu, który ma być zastosowany przez zestaw SDK.
Zarządzanie zaufanymi certyfikatami głównymi
Jeśli aplikacja wymaga certyfikatów SSL/TLS wystawionych przez lokalny lub prywatny urząd certyfikacji w celu zapewnienia bezpiecznego dostępu do wewnętrznych witryn i aplikacji, w zestawie SDK aplikacji usługi Intune dodano obsługę zarządzania zaufaniem certyfikatów za pomocą klas interfejsu API MAMTrustedRootCertsManager i MAMCertTrustWebViewClient.
Uwaga
Rozwiązanie MAMCertTrustWebViewClient obsługuje system Android 10 lub nowszy.
Zarządzanie zaufanymi certyfikatami głównymi zapewnia obsługę następujących funkcji:
- SSLContext
- SSLSocketFactory
- Menedżer zaufania
- Widok sieci Web
Wymagania
- Zarządzanie zaufanymi certyfikatami głównymi wymaga licencji aplikacji Microsoft Tunnel do zarządzania aplikacjami mobilnymi. Aby dowiedzieć się więcej, odwiedź stronę: Microsoft Tunnel z zarządzaniem aplikacjami mobilnymi.
- Skonfiguruj zasady Intune App Configuration, aby dostarczać zaufane certyfikaty główne do aplikacji biznesowych i przeglądarki Microsoft Edge w systemie Android. Zobacz: Użyj usługi Microsoft Tunnel VPN w przypadku urządzeń z systemem Android, które nie zarejestrowały się w usłudze Microsoft Intune.
Uwaga
Zarządzanie zaufanymi certyfikatami głównymi może być używane niezależnie od usługi Microsoft Tunnel VPN Gateway, ale musisz uzyskać licencję na korzystanie z tunelu Microsoft MAM Tunnel.
Ustanawianie kotwic zaufania przy użyciu zaufanych certyfikatów głównych z usługi Intune
Zarządzanie zaufanymi certyfikatami głównymi umożliwia aplikacji korzystanie z zaufanych certyfikatów głównych z usługi Intune w połączeniu z certyfikatami z urządzenia.
Klasy interfejsu API MAMTrustedRootCertsManager i MAMCertTrustWebViewClient używają Intune zaufanych certyfikatów głównych dostarczanych za pośrednictwem App Configuration Policy jako opcji rezerwowej, jeśli zaufane główne magazyny certyfikatów urządzenia nie zawierają zaufanych certyfikatów głównych wymaganych do nawiązania bezpiecznego połączenia z zasobami lokalnymi. Dzięki temu aplikacja może używać certyfikatów urządzenia i certyfikatów usługi Intune w celu weryfikacji bezpiecznych połączeń i komunikacji z zaufanymi źródłami.
Aby rozszerzyć ustawienia zabezpieczeń sieciowych, aplikacja może użyć pliku XML konfiguracji zabezpieczeń sieciowych. Zarządzanie zaufanymi certyfikatami głównymi uwzględnia te dodatkowe zabezpieczenia, sprawdzając, czy plik XML konfiguracji zabezpieczeń sieci aplikacji ma dowolną z następujących funkcji:
- Niestandardowe kotwice zaufania z dodatkowymi urzędami certyfikacji, takimi jak certyfikaty z podpisem własnym.
- Reguły specyficzne dla domeny służące do ograniczania zaufanych urzędów certyfikacji.
- Zestawy numerów PIN dla certyfikatów dla określonych domen.
Uwaga
Aby uzyskać więcej informacji na temat konfiguracji zabezpieczeń sieci Android, zobacz Konfiguracja zabezpieczeń sieci.
Jeśli którakolwiek z tych sytuacji dotyczy domeny, która jest sprawdzana pod kątem zaufania, funkcja zarządzania zaufanymi certyfikatami głównymi pomija niestandardowe sprawdzanie zaufania dla tej domeny i zezwala na wykonywanie kontroli tylko domyślnym menedżerom zaufania platformy.
Class MAMTrustedRootCertsManager
Ta klasa udostępnia następujące interfejsy API:
-
createSSLContextForOID(String oid, String protocol): tworzy obiekt używający zaufanychSSLContextcertyfikatów głównych dla określonej tożsamości i określonego protokołu SSL/TLS. ZwróconySSLContextobiekt z tej klasy jest już poprawnie zainicjowany zX509TrustManagerobiektami używającymi połączonych zaufanych certyfikatów głównych z urządzenia i usługi zarządzania aplikacjami mobilnymi. -
createSSLSocketFactoryForOID(String oid, String protocol): tworzy obiekt używający zaufanychSSLSocketFactorycertyfikatów głównych dla określonej tożsamości i określonego protokołu SSL/TLS. ZwracanySSLSocketFactoryobiekt jest odwołany z tego samegoSSLContextobiektu w tej klasie. -
createX509TrustManagersForOID(String oid): tworzy tablicę obiektów, które używają połączonych zaufanych certyfikatówX509TrustManagergłównych z urządzenia i usługi MAM dla określonej tożsamości.
Uwaga
Należy oid oczekiwać, że parametrem będzie identyfikator użytkownika usługi Microsoft Entra (OID) dla konkretnego użytkownika, który uruchamia aplikację. Jeśli identyfikator użytkownika jest wcześniej nieznany, można przekazać wartość null , a zarządzanie aplikacjami mobilnymi próbuje odnaleźć poprawną tożsamość z wątku lub procesu, w którym te interfejsy API są wywoływane. Tożsamość musi być poprawnie ustawiona w procesie lub wątku, aby funkcja zarządzania aplikacjami mobilnymi mogła odnaleźć tożsamość. Aby uzyskać więcej informacji na temat ustawiania tożsamości aktywnej w procesie lub wątku, zobacz Etap 5: Wiele tożsamości.
Uwaga
protocol Jeśli parametr nie jest podany, platforma używa najwyższego obsługiwanego protokołu SSL/TLS.
Oto kilka przykładów użycia tej klasy.
Przykład użycia protokołu HttpsUrlConnection
// Create an SSL socket factory using supplying the optional parameters identity and protocol
SSLSocketFactory sslSocketFactory = MAMTrustedRootCertsManager.createSSLSocketFactoryForOID(oid, "TLSv1.3");
// Create a URL object for the desired endpoint
URL url = new URL("https://example.com");
// Open a connection using the URL object
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
// Set the SSL socket factory for the connection
httpsURLConnection.setSSLSocketFactory(sslSocketFactory);
// Perform any other configuration or operations on the connection as needed
...
Przykład użycia OkHttpClient
// Get the TrustManager instances for an identity from the SDK
TrustManager[] trustManagers = MAMTrustedRootCertsManager.createX509TrustManagersForOID(oid);
// Get SSLContext from the platform
SSLContext sslContext = SSLContext.getInstance("TLSv1.3");
// Initialize the SSLContext with the trust managers from the Intune App SDK
sslContext.init(null, trustManagers, null);
// Create an OkHttpClient.Builder object
OkHttpClient.Builder builder = new OkHttpClient.Builder();
// Set the SSLSocketFactory and the trust managers from the SDK
builder.sslSocketFactory(sslContext.socketFactory, trustManagers[0] as X509TrustManager).build();
// Build an OkHttpClient object from the builder
OkHttpClient okHttpClient = builder.build();
// Create a Request object for the desired endpoint
Request request = new Request.Builder().url("https://example.com").build();
// Execute the request using the OkHttpClient object and get a Response object
Response response = okHttpClient.newCall(request).execute();
// Perform any other operations on the response as needed
...
Class MAMCertTrustWebViewClient
Ta klasa zapewnia niestandardową implementację klasy android.webkit.WebViewClientAndroid . Klasa zapewnia sposób obsługi błędu android.net.http.SslError.SSL_UNTRUSTED SSL w WebView.
Podczas obsługi błędu klasa używa zaufanych certyfikatów głównych skonfigurowanych przez usługę Intune i udostępnianych przez usługę zarządzania aplikacjami mobilnymi. Ta metoda sprawdza wiarygodność hosta z docelowego adresu URL, który wygenerował błąd SSL w WebView. Jeśli implementacja niestandardowa nie obsługuje błędu SSL, system wywołuje domyślne zachowanie odziedziczone po nadklasie.
Gdy używasz tej klasy, utwórz jej wystąpienie, a następnie wywołaj WebView.setWebViewClient(WebViewClient) , aby zarejestrować je w wystąpieniu WebView .
Oto przykład użycia tej klasy.
Przykład użycia widoku sieci Web
// Get the MAM implementation of WebViewClient from the Intune App SDK
MAMCertTrustWebViewClient mamCertTrustWebViewClient = new MAMCertTrustWebViewClient();
// Set the MAM WebViewClient from the SDK as the current handler on the instance of WebView
webView.setWebViewClient(mamCertTrustWebViewClient);
// Perform any other operations on WebView
...
Zgodność z przepisami dotyczącymi prywatności w chińskim sklepie App Store
Niektóre sklepy z aplikacjami w Chinach wymagają, aby aplikacje wyświetlały użytkownikom okno dialogowe zgody na zasady prywatności przed wykonaniem operacji, które wchodzą w interakcję z innymi aplikacjami na urządzeniu. Obejmuje to rejestrowanie odbiorników emisji, które nasłuchują w poszukiwaniu zdarzeń instalacji/odinstalowania pakietu. Zestaw MAM SDK robi to, aby nasłuchiwać obecności Portal firmy, w którym znajduje się większość logiki MAM.
Jeśli aplikacja jest dystrybuowana za pośrednictwem sklepów z aplikacjami w Chinach, które mają to wymaganie, użyj następującej integracji, aby odroczyć operacje uruchamiania w trybie offline do momentu uzyskania zgody na zachowanie prywatności.
1. Dodawanie flagi manifestu
Dodaj następujące metadane do aplikacji AndroidManifest.xml:
<application>
<meta-data
android:name="com.microsoft.intune.mam.OfflineStartupDeferredUntilAppSignal"
android:value="true"/>
</application>
Uwaga
Ta flaga powinna być dodawana tylko do plików APK rozpowszechnianych za pośrednictwem chińskich sklepów z aplikacjami, które wymagają zgody na ochronę prywatności przed interakcją z innymi aplikacjami. W przypadku plików APK rozpowszechnianych przez inne sklepy ta flaga nie powinna być uwzględniana.
2. Gotowość do sygnalizowania po otwarciu okna dialogowego prywatności
Gdy użytkownik zaakceptuje okno dialogowe zgody na zasady prywatności, wywołaj zestaw SDK, aby zasygnalizować, że można kontynuować uruchamianie w trybie offline:
// After user accepts privacy dialog
MAMComponents.get(DeferredStartupManager::class.java)
.setOfflineStartupReady()
Lub w Javie:
// After user accepts privacy dialog
MAMComponents.get(DeferredStartupManager.class)
.setOfflineStartupReady();
Zachowanie
Stan gotowości jest zachowywany we wszystkich uruchomieniach aplikacji. Po setOfflineStartupReady() wywołaniu, kolejne uruchomienia zarejestrują odbiornik natychmiast podczas inicjalizacji aplikacji.
Uwagi
- Metoda
setOfflineStartupReady()jest idempotentna; wywołanie jej wielokrotne wywołanie jest bezpieczne. - Jeśli Portal firmy jest już zainstalowany (tryb online), połączenie
setOfflineStartupReady()nie ma znaczenia, ponieważ odbiornik nie jest potrzebny. -
Ważne: zawsze należy zadzwonić
setOfflineStartupReady()po zaakceptowaniu Twojego okna dialogowego dotyczącego prywatności.
Kryteria zakończenia
Aby uzyskać więcej informacji, zobacz Szybkie testowanie ze zmieniającymi się zasadami w celu ułatwienia testowania.
Weryfikowanie ograniczeń zapisywania w i otwierania z
Pomiń tę sekcję, jeśli nie zaimplementowano zasad dotyczących ograniczania transferu danych między aplikacjami a lokalizacjami przechowywania urządzeń lub w chmurze.
Zapoznaj się ponownie z każdym scenariuszem, w którym aplikacja może zapisywać dane w usługach w chmurze lub dane lokalne oraz otwierać dane z usług w chmurze lub dane lokalne.
Dla uproszczenia w tych testach założono, że Twoja aplikacja obsługuje tylko zapisywanie i otwieranie danych z usługi OneDrive z jednej lokalizacji w aplikacji. Należy jednak zweryfikować każdą kombinację: każdą obsługiwaną lokalizację zapisu dla każdego miejsca, w którym aplikacja zezwala na zapisywanie danych, oraz każdą obsługiwaną otwartą lokalizację względem każdego miejsca, w którym aplikacja umożliwia otwieranie danych.
W przypadku tych testów zainstaluj aplikację i portal firmy Intune — Portal firmy; zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu. Ponadto:
- Ustaw zasady konta zarządzanego jako:
- "Wyślij dane organizacji do innych aplikacji" ustawione na wartość "Aplikacje zarządzane przez zasady".
- Opcja "Odbieraj dane z innych aplikacji" ustawiona na wartość "Aplikacje zarządzane przez zasady".
| Scenariusz | Warunki wstępne | Kroki |
|---|---|---|
| Zapisywanie, w pełni dozwolone | Zasady "Zapisuj kopie danych organizacji" ustawione na wartość Zezwalaj | - Przejdź do części aplikacji, w której może zapisywać dane w usłudze OneDrive. - Spróbuj zapisać dokument w usłudze OneDrive przy użyciu tego samego zarządzanego konta, które jest zalogowane do aplikacji. - Upewnij się, że zapis jest dozwolony. |
| Zapisz w, wykluczone | - Zasady "Zapisuj kopie danych organizacji" ustawione na wartość Blokuj - Zasada "Zezwalaj użytkownikowi na zapisywanie kopii w wybranych usługach" ustawiona tylko na usługę OneDrive |
- Przejdź do części aplikacji, w której może zapisywać dane w usłudze OneDrive. - Spróbuj zapisać dokument w usłudze OneDrive przy użyciu tego samego zarządzanego konta, które jest zalogowane do aplikacji. - Upewnij się, że zapis jest dozwolony. - Jeśli aplikacja na to zezwala, spróbuj zapisać plik w innej lokalizacji przechowywania w chmurze i potwierdź, że jest zablokowany. |
| Zapisywanie w, zablokowane | Zasady "Zapisuj kopie danych organizacji" ustawione na wartość Blokuj | - Przejdź do części aplikacji, w której może zapisywać dane w usłudze OneDrive. - Spróbuj zapisać dokument w usłudze OneDrive przy użyciu tego samego zarządzanego konta, które jest zalogowane do aplikacji. - Upewnij się, że zapisywanie jest zablokowane. - Jeśli aplikacja na to zezwala, spróbuj zapisać plik w innej lokalizacji przechowywania w chmurze i potwierdź, że jest zablokowany. |
| Otwarty od, w pełni dozwolony | Zasady "Otwieranie danych w dokumentach organizacji" ustawione na wartość Zezwalaj | - Przejdź do części aplikacji, w której może otwierać dane z usługi OneDrive. - Spróbuj otworzyć dokument z usługi OneDrive przy użyciu tego samego zarządzanego konta, które zalogowano się do magazynu aplikacji. - Upewnij się, że otwieranie jest dozwolone. |
| Otwarte od, wyłączone | - Zasady "Otwieranie danych w dokumentach organizacji" ustawione na wartość Blokuj - Zasady "Zezwalaj użytkownikom na otwieranie danych z wybranych usług" ustawione tylko na usługę OneDrive |
- Przejdź do części aplikacji, w której może otwierać dane z usługi OneDrive. - Spróbuj otworzyć dokument z usługi OneDrive przy użyciu tego samego zarządzanego konta, które zalogowano się do magazynu aplikacji. - Upewnij się, że otwieranie jest dozwolone. - Jeśli aplikacja na to zezwala, spróbuj otworzyć inny plik z innej lokalizacji przechowywania w chmurze i potwierdź, że jest zablokowany. |
| Otwarty od, zablokowany | Zasady "Otwieranie danych w dokumentach organizacji" ustawione na wartość Blokuj | - Przejdź do części aplikacji, w której może otwierać dane z usługi OneDrive. - Spróbuj otworzyć dokument z usługi OneDrive przy użyciu tego samego zarządzanego konta, które zalogowano się do magazynu aplikacji. - Upewnij się, że otwarcie jest zablokowane. - Jeśli aplikacja na to zezwala, spróbuj otworzyć inny plik z innej lokalizacji przechowywania w chmurze i potwierdź, że jest zablokowany. |
Weryfikowanie ograniczeń powiadomień
Pomiń tę sekcję, jeśli nie zostały zaimplementowane zasady dotyczące ograniczania zawartości w powiadomieniach.
Jeśli chodzi o zasady ochrony aplikacji, aplikacja może uruchamiać trzy różne typy powiadomień:
- Powiadomienia, które nie zawierają żadnych danych konta.
- Powiadomienia zawierające dane należące do zarządzanego konta.
- Powiadomienia zawierające dane konta niezarządzanego.
Jeśli aplikacja jest pojedynczą tożsamością, tylko dwie pierwsze są istotne, ponieważ żadne zabezpieczenia nie są stosowane, jeśli jedyne konto nie jest zarządzane.
Możesz sprawdzić ograniczenia powiadomień, wyzwalając wszystkie trzy typy powiadomień z różnymi skonfigurowanymi wartościami zasad.
W przypadku tych testów zainstaluj aplikację i portal firmy Intune — Portal firmy; zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu. Jeśli Twoja aplikacja obsługuje wiele tożsamości, zaloguj się również do niej przy użyciu konta niezarządzanego.
| Scenariusz | Warunki wstępne | Kroki |
|---|---|---|
| Zablokowano pełną zawartość | Zasady "Powiadomienia o danych organizacji" ustawione na wartość Blokuj | - Uruchom aplikację, aby uruchomić powiadomienie bez danych konta. - Upewnij się, że powiadomienie nie wyświetla żadnej zawartości. - Uruchom aplikację, aby uruchomić powiadomienie z danymi zarządzanego konta. - Upewnij się, że powiadomienie nie wyświetla żadnej zawartości. - Uruchom aplikację, aby uruchomić powiadomienie z danymi konta niezarządzanego. - Upewnij się, że powiadomienie nie wyświetla żadnej zawartości. |
| Zablokowano częściową zawartość | Zasady "Powiadomienia o danych organizacji" ustawione na Blokowanie danych organizacji | - Uruchom aplikację, aby uruchomić powiadomienie bez danych konta. - Upewnij się, że powiadomienie wyświetla pełną treść. - Uruchom aplikację, aby uruchomić powiadomienie z danymi zarządzanego konta. - Potwierdź, że powiadomienie zredagowało zawartość zarządzanego konta. - Uruchom aplikację, aby uruchomić powiadomienie z danymi konta niezarządzanego. - Upewnij się, że powiadomienie wyświetla pełną treść. |
| Brak zablokowanej zawartości | Zasady "Powiadomienia o danych organizacji" ustawione na wartość Zezwalaj | - Uruchom aplikację, aby uruchomić powiadomienie bez danych konta. - Upewnij się, że powiadomienie wyświetla pełną treść. - Uruchom aplikację, aby uruchomić powiadomienie z danymi zarządzanego konta. - Upewnij się, że powiadomienie wyświetla pełną treść. - Uruchom aplikację, aby uruchomić powiadomienie z danymi konta niezarządzanego. - Upewnij się, że powiadomienie wyświetla pełną treść. |
Sprawdzanie poprawności tworzenia i przywracania kopii zapasowych danych
Pomiń tę sekcję, jeśli nie zaimplementowano zasad dotyczących ochrony danych kopii zapasowej.
Zapoznaj się ponownie z zawartością (pliki i pary klucz-wartość) skonfigurowaną przez aplikację do utworzenia kopii zapasowej. Należy sprawdzić, czy tylko oczekiwana zawartość jest częścią przywracania. Dodatkowa zawartość podczas przywracania może doprowadzić do wycieku danych.
Na potrzeby tych testów zainstaluj swoją aplikację i portal firmy Intune — Portal firmy; przed rozpoczęciem testu zaloguj się przy użyciu konta zarządzanego. Jeśli aplikacja obsługuje wiele tożsamości, zaloguj się też do niej przy użyciu konta niezarządzanego.
Postępuj zgodnie z oficjalnymi instrukcjami Androida dotyczącymi testowania kopii zapasowej. Poniższe instrukcje różnią się w przypadku autotworzenia kopii zapasowych oraz tworzenia kopii zapasowych kluczy/wartości, zatem należy ściśle do nich przestrzegać.
Weryfikowanie niestandardowego przechwytywania ekranu pod kątem zgodności z zasadami
Pomiń tę sekcję, jeśli nie zaimplementowano niestandardowych ograniczeń rejestratora ekranu.
Jeśli aplikacja ma funkcję, która pomija -level FLAG_SECUREsystemu AndroidWindow, sprawdź, czy ta funkcja jest blokowana przez ograniczenia dotyczące przechwytywania ekranu zasad ochrony aplikacji.
W przypadku tych testów zainstaluj aplikację i portal firmy Intune — Portal firmy; zaloguj się przy użyciu konta zarządzanego przed rozpoczęciem testu.
| Scenariusz | Warunki wstępne | Kroki |
|---|---|---|
| Zablokowano przechwytywanie ekranu | Zasady "Przechwytywanie ekranu i Asystent Google" ustawione na Blokuj | - Przejdź do części aplikacji, która używa kodu niestandardowego FLAG_SECURE .- Spróbuj użyć tej funkcji. - Upewnij się, że funkcja jest zablokowana. |
| Dozwolony przechwytywanie ekranu | Zasady "Przechwytywanie ekranu i Asystent Google" ustawione na wartość Zezwalaj | - Przejdź do części aplikacji, która używa kodu niestandardowego FLAG_SECURE .- Spróbuj użyć tej funkcji. - Upewnij się, że funkcja jest dozwolona. |
Sprawdzanie poprawności urzędu certyfikacji ochrony aplikacji
Pomiń tę sekcję, jeśli nie zaimplementowano urzędu certyfikacji ochrony aplikacji pomocy technicznej.
Oprócz typowych kroków weryfikacji dotyczących tworzenia i przypisywania zasad ochrony aplikacji do aplikacji i konta testowego należy również utworzyć i przypisać zasady dostępu warunkowego ochrony aplikacji do konta testowego. Zobacz Konfigurowanie zasad dostępu warunkowego opartych na aplikacjach w usłudze Intune, aby uzyskać szczegółowe informacje.
Kroki testowe:
- Przed rozpoczęciem testowania odinstaluj aplikację Microsoft Authenticator i aplikację Intune — Portal firmy.
- Zainstaluj aplikację.
- Zaloguj się do aplikacji przy użyciu konta testowego objętego zarówno zasadami ochrony aplikacji, jak i zasadami certyfikacji opartej na aplikacji.
- Potwierdź, że aplikacja wyświetla monit o zainstalowanie Portal firmy.
- Zaloguj się ponownie.
- Upewnij się, że aplikacja wyświetla monit o zarejestrowanie urządzenia. Postępuj zgodnie z monitami. Jeśli w tym miejscu nie zostanie wyświetlony monit o rejestrację, upewnij się, że urządzenie testowe najpierw odinstalowało inne aplikacje z obsługą zestawu SDK, aplikację Portal firmy i aplikację Authenticator. Jeśli ten monit nadal nie zostanie wyświetlony, wróć do instrukcji implementacji.
- Upewnij się, że po zarejestrowaniu się masz dostęp do wszystkich danych aplikacji.
Sprawdzanie poprawności odbiorców powiadomień
Pomiń tę sekcję, jeśli nie zaimplementowano funkcji Zarejestruj się w celu otrzymywania powiadomień z zestawu SDK.
Kroki sprawdzania poprawności zależą od typów powiadomień zarejestrowanych przez aplikację. W przypadku wszystkich typów powiadomień dodaj rejestrowanie, aby upewnić się, że odbiorca jest poprawnie wywoływany.
MAM_ENROLLMENT_RESULT można wyzwolić, logując się do aplikacji przy użyciu konta docelowego dla zasad ochrony aplikacji.
Możesz wyzwolić REFRESH_APP_CONFIG i REFRESH_POLICY aktualizując odpowiednie zasady App Configuration i App Protection Policy przeznaczone dla konta testowego i czekając, aż zestaw SDK otrzyma zaktualizowane zasady.
Porada
Aby przyspieszyć ten proces, zobacz sekcję Szybkie testowanie ze zmieniającymi się zasadami .
Możesz wyzwolić MANAGEMENT_REMOVED, WIPE_USER_DATA, WIPE_USER_AUXILIARY_DATAoraz WIPE_COMPLETED powiadomienia, wydając selektywne czyszczenie z usługi Microsoft Intune.
Weryfikowanie motywów niestandardowych
Pomiń tę sekcję, jeśli nie zaimplementowano motywów niestandardowych.
Możesz sprawdzić obsługę motywów niestandardowych, sprawdzając kolory w oknach dialogowych zestawu SDK. Najprostszym oknem dialogowym do sprawdzenia jest ekran MAM PIN.
Warunki wstępne:
- Ustaw zasady konta zarządzanego jako:
- "Kod PIN dla dostępu" ustawiony na wartość "Wymagany".
- Zainstaluj aplikację i portal firmy Intune — Portal firmy.
Kroki testowe:
- Uruchom aplikację i zaloguj się przy użyciu konta testowego.
- Potwierdź, że jest wyświetlany ekran kodu PIN zarządzania aplikacjami mobilnymi, który jest motywem opartym na motywie niestandardowym dostarczonym do zestawu SDK.
Następne kroki
Jeśli wykonano instrukcje podane w tej kolejności i spełniono wszystkie kryteria wyjścia we wcześniejszej części tego artykułu, aplikacja jest teraz w pełni zintegrowana z zestawem SDK aplikacji usługi Intune i może wymuszać zasady ochrony aplikacji. Jeśli pominięto jedną z poprzednich sekcji uczestnictwa w aplikacjach, etap 5: Wiele tożsamości i etap 6: Konfiguracja aplikacji, i nie masz pewności, czy Twoja aplikacja powinna obsługiwać te funkcje, wróć do kluczowych decyzji dotyczących integracji zestawu SDK.
Ochrona aplikacji jest teraz podstawowym scenariuszem aplikacji. Nadal korzystaj z tego przewodnika i dodatku podczas pracy nad aplikacją.