Intune App SDK dla systemu Android — App Configuration

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 6. Konfiguracja aplikacji

Cele etapu

  • Dowiedz się więcej o opcjach konfiguracji aplikacji w systemie Android.
  • Zdecyduj, które konfiguracje, o ile w ogóle, powinna dodać aplikacja.
  • Integrowanie interfejsów API konfiguracji aplikacji zestawu SDK aplikacji usługi Intune.
  • Zaimplementuj logikę rozwiązywania konfliktów dla niestandardowych konfiguracji aplikacji.

App Configuration w systemie Android

Konfiguracje aplikacji, nazywane również konfiguracjami zarządzanymi lub ograniczeniami aplikacji, to ustawienia specyficzne dla aplikacji i zdefiniowane przez dewelopera, które można dodać do aplikacji, aby zapewnić administratorom dodatkową kontrolę nad środowiskiem aplikacji, gdy jest używana w środowisku zarządzanym. Na przykład, jeśli Twoja aplikacja jest przeglądarką, możesz dodać konfiguracje, które pozwolą administratorom wstępnie ustawić zakładki, blokować określone strony internetowe lub wyłączać tryby incognito. Konfiguracja aplikacji to całkowicie opcjonalne, ale zaawansowane narzędzie do zwiększania możliwości zarządzania aplikacją.

Zobacz Zasady konfiguracji aplikacji dla usługi Microsoft Intune, aby uzyskać więcej szczegółów.

Konfiguracje aplikacji Built-In w systemie Android

System Android ma konfigurację aplikacji wbudowaną w platformę, zwaną konfiguracjami zarządzanymi. Te konfiguracje nie są zależne od zestawu SDK aplikacji usługi Intune i można je włączyć w aplikacjach, które nie integrują zestawu SDK aplikacji usługi Intune. Te konfiguracje mają zastosowanie tylko wtedy, gdy aplikacja jest używana na urządzeniu zarządzanym za pomocą jednego z trybów Android Enterprise firmy Google. Zobacz Rejestrowanie urządzeń z systemem Android, aby uzyskać szczegółowe informacje na temat konfigurowania tych trybów Android Enterprise w usłudze Microsoft Intune. Administratorzy mogą skonfigurować te zasady konfiguracji aplikacji dla zarządzanych urządzeń z systemem Android Enterprise w usłudze Microsoft Intune.

Aplikacja może pobrać te wartości skonfigurowane RestrictionsManager przez administratora za pośrednictwem systemu Android lub za pośrednictwem zestawu SDK aplikacji usługi Intune. Aby uzyskać więcej informacji , zobacz pobieranie konfiguracji aplikacji z zestawu SDK .

Delegowane zakresy dla zarządzanych aplikacji ze Sklepu Google Play

Deweloperzy aplikacji mogą korzystać z zakresów delegowanych, aby integrować uprawnienia rozszerzone dla swoich aplikacji zarządzanych ze sklepu Google Play. Zakresy delegowane zapewniają następujące możliwości dla zarządzanych aplikacji ze sklepu Google Play:

  • Zezwalanie innym aplikacjom na instalowanie certyfikatów i zarządzanie nimi
  • Zezwalaj aplikacji na dostęp do dzienników zabezpieczeń systemu Android
  • Zezwalaj aplikacji na dostęp do dzienników aktywności sieciowej systemu Android

Po zintegrowaniu tych funkcji z zarządzaną aplikacją Google Play przy użyciu interfejsu API firmy Google możesz skonfigurować te ustawienia w usłudze Intune przy użyciu profilów konfiguracji urządzeń. Aby uzyskać więcej informacji, zobacz Ustawienia urządzenia z systemem Android Enterprise —> aplikacje należące do > firmy.

Aby uzyskać szczegółowe informacje na temat implementacji aplikacji, zobacz dokumentację dla deweloperów systemu Android — zakresy delegowania.

Konfiguracje aplikacji zestawu SDK usługi IntuneIntune App SDK App Configurations

Zestaw SDK aplikacji usługi Intune obsługuje inny mechanizm dostarczania konfiguracji aplikacji, niezależnie od konfiguracji zarządzanych przez system Android Enterprise. Te konfiguracje są dostępne wyłącznie w usłudze Microsoft Intune i mają zastosowanie tylko do aplikacji, które mają zintegrowany zestaw SDK aplikacji usługi Intune. Te konfiguracje nie są jednak ograniczone do urządzeń z zarządzaniem systemem Android Enterprise. Administratorzy mogą skonfigurować te zasady konfiguracji aplikacji dla aplikacji zarządzanych w usłudze Microsoft Intune.

Uwaga

Konfigurowanie aplikacji można również skonfigurować przy użyciu interfejsu interfejs Graph API. Aby uzyskać więcej informacji, zobacz dokumentację interfejsu Interfejs interfejs Graph API dla docelowej konfiguracji zarządzania aplikacjami mobilnymi.

Aplikacja musi pobrać te wartości skonfigurowane przez administratora za pośrednictwem zestawu SDK aplikacji usługi Intune. Aby uzyskać więcej informacji , zobacz pobieranie konfiguracji aplikacji z zestawu SDK .

Jakie konfiguracje należy dodać do aplikacji?

Ten przewodnik nie może odpowiedzieć na to pytanie. Tylko Ty i Twój zespół znacie, które funkcje zwiększają wartość aplikacji, gdy jest ona zarządzana.

Odpowiedzi na poniższe pytania mogą pomóc w prowadzeniu dyskusji i ujawnianiu konfiguracji, które możesz chcieć dodać do swojej aplikacji:

  • Jakie funkcje oferuje dziś Twoja aplikacja?
    • Czy warto wyłączyć którąkolwiek z tych funkcji, gdy masz zarządzanie?
    • Czy warto zmieniać którąkolwiek z tych funkcji, gdy jesteś pod zarządzaniem?
  • Jak obecnie wygląda zarządzanie Twoją aplikacją?
    • Czy istnieją opcje, które administratorzy mogą wstępnie skonfigurować w imieniu swoich użytkowników?
    • Czy istnieją akcje podejmowane wyłącznie przez administratorów lub użytkowników końcowych w przypadku scenariuszy zarządzanych?
    • Czy Twoi zarządzani użytkownicy prosili o funkcje, które mogą być nieodpowiednie dla całej populacji użytkowników?

Dla każdej konfiguracji, którą chcesz dodać do aplikacji, musisz zdefiniować trzy elementy:

  • Klucz — ten ciąg jednoznacznie odróżnia to ustawienie od innych ustawień. Powinien on być czytelny dla człowieka, ponieważ zostanie skonfigurowany przez administratorów.
  • Typ — jakiego typu danych jest to ustawienie? Czy jest to ciąg, wartość logiczna, liczba całkowita, tablica itp.?
  • Strategia rozwiązywania konfliktów — jak zareaguje Twoja aplikacja, jeśli administratorzy skonfigurują wiele wartości dla tego samego klucza? We wspomnianym przykładzie przeglądarki lista zakładek może łączyć wszystkie wartości, podczas gdy ustawienie wyłączania incognito może wybrać wyłączenie, jeśli którakolwiek z wartości powodujących konflikt jest "prawda".

Czy moja aplikacja powinna obsługiwać konfigurację dla zarządzanych urządzeń, czy zarządzanych aplikacji?

Konfiguracje stosowane do zarządzanych urządzeń i konfiguracje dotyczące zarządzanych aplikacji nie wykluczają się wzajemnie. Podejmując decyzję o obsłudze typu (lub obu) konfiguracji należy wziąć pod uwagę potrzeby użytkowników.

Obszar konfiguracji Konfiguracja dla zarządzanych urządzeń Konfiguracja aplikacji zarządzanych
Zastosowanie urządzenia Dotyczy tylko urządzeń podlegających funkcji zarządzania urządzeniami z systemem Android Enterprise. Dotyczy wszystkich urządzeń, o ile aplikacja integruje zestaw SDK aplikacji usługi Intune i jest zainstalowany Portal firmy.
Platforma Tylko Android, ograniczone do urządzeń z usługami Google Zestaw SDK aplikacji dla systemu iOS obsługuje te same konfiguracje. Jako deweloper możesz udostępniać te klucze w celu zapewnienia spójnego środowiska międzyplatformowego.
Zastosowanie Dowolny dostawca usług EMM Wyłącznie w usłudze Microsoft Intune
Odnajdowanie schematów Schemat jest publicznie dostępny po przekazaniu aplikacji do Google Play Odnajdowanie schematu pod kontrolą dewelopera

Oba typy konfiguracji aplikacji korzystają z par klucz-wartość. Usługa Microsoft Intune nie sprawdza zawartości tych konfiguracji i po prostu przekazuje wartości skonfigurowane przez administratora do aplikacji.

Interfejs API konfiguracji aplikacji zestawu SDK aplikacji Intune App zawiera wartości skonfigurowane przez administratora z obu kanałów. Jeśli aplikacja obsługuje oba typy konfiguracji aplikacji, użyj interfejsu API zgodnie z poniższym opisem.

Pobieranie konfiguracji aplikacji z zestawu SDK

Aplikacje mogą odbierać konfiguracje z obu kanałów przy użyciu klas MAMAppConfigManager i MAMAppConfig .

MAMAppConfigManager configManager = MAMComponents.get(MAMAppConfigManager.class);
String oid = <OID of user account>;
MAMAppConfig appConfig = configManager.getAppConfigForOID(oid);
String fooValue = appConfig.getStringForKey("foo", MAMAppConfig.StringQueryType.Any);

Jeśli nie ma konta zarejestrowanego w usłudze MAM, ale aplikacja nadal chciałaby pobrać wartości konfiguracji Android Enterprise (które nie będą skierowane do określonego konta), możesz przekazać null pusty ciąg dla identyfikatora OID.

Uwaga

Jeśli aplikacja używa zestawu SDK aplikacji usługi Intune do pobierania konfiguracji zarządzanych przez system Android Enterprise, a Portal firmy nie jest zainstalowany, te konfiguracje zostaną dostarczone za pośrednictwem MAMUserNotification z pustą tożsamością.

Aplikacja może również zażądać nieprzetworzonych danych jako listy zestawów par klucz-wartość, zamiast wykonywać zapytania za pomocą określonych kluczy.

List<Map<String, String>> getFullData()

Aplikacja może również zarejestrować się w celu otrzymania REFRESH_APP_CONFIG powiadomienia informującego aplikację o dostępności nowych danych konfiguracyjnych aplikacji. Jeśli aplikacja buforuje dane konfiguracji aplikacji, musi zarejestrować się w celu otrzymywania tego powiadomienia i unieważnić wszystkie dane przechowywane w pamięci podręcznej w programie obsługi. Aby uzyskać więcej szczegółowych informacji, zobacz Zarejestruj się, aby otrzymywać powiadomienia z zestawu SDK .

Rozwiązywanie konfliktów

Jeśli wiele zasad konfiguracji aplikacji jest przeznaczonych dla tej samej aplikacji i konta, dla tego samego klucza może być dostępnych wiele wartości powodujących konflikty.

Uwaga

Wartość ustawiona w konfiguracji aplikacji zarządzania aplikacjami mobilnymi zastąpi wartość z tym samym kluczem ustawionym w konfiguracji Android Enterprise.

Jeśli administrator skonfiguruje wartości powodujące konflikt dla tego samego klucza, usługa Intune nie ma żadnego sposobu automatycznego rozwiązania tego konfliktu i udostępni wszystkie wartości aplikacji. Ten typ konfliktu może wystąpić, jeśli administrator jest przeznaczony dla różnych zestawów konfiguracji aplikacji za pomocą tego samego klucza do wielu grup zawierających to samo konto.

Aplikacja może zażądać wszystkich wartości danego klucza z obiektu MAMAppConfig , dzięki czemu można rozwiązać konflikty z własną logiką biznesową:

List<Boolean> getAllBooleansForKey(String key)
List<Long> getAllIntegersForKey(final String key)
List<Double> getAllDoublesForKey(final String key)
List<String> getAllStringsForKey(final String key)

Alternatywnie można zażądać wyboru wartości przy użyciu jednej z wbudowanych strategii rozwiązywania konfliktów:

Boolean getBooleanForKey(String key, BooleanQueryType queryType)
Long getIntegerForKey(String key, NumberQueryType queryType)
Double getDoubleForKey(String key, NumberQueryType queryType)
String getStringForKey(String key, StringQueryType queryType)

Dostępne wbudowane strategie rozwiązywania konfliktów obejmują:

  • BooleanQueryType.Any, BooleanQueryType.And, BooleanQueryType.Or
  • NumberQueryType.Any, NumberQueryType.Min, NumberQueryType.Max
  • StringQueryType.Any, StringQueryType.Min, StringQueryType.Max, gdzie minimum i maksimum pochodzą z listy uporządkowanej alfabetycznie.

Kryteria zakończenia

Usługa Intune jest odpowiedzialna za dostarczenie wartości zasad konfiguracji aplikacji do aplikacji; później aplikacja jest odpowiedzialna za użycie tych wartości do zmiany zachowania lub interfejsu użytkownika wewnątrz aplikacji. Oba składniki powinny być poddawane dokładnym, kompleksowym testom.

Aby sprawdzić, czy usługa Intune prawidłowo dostarcza zasady konfiguracji aplikacji:

  1. Skonfiguruj zasady konfiguracji aplikacji przeznaczone dla Twojej aplikacji i wdrożone na koncie testowym.
  2. Zaloguj się do aplikacji za pomocą konta testowego.
  3. Poruszaj się po aplikacji, aby przećwiczyć każdą ścieżkę kodu, która wywołuje MAMAppConfigManager's getAppConfigForOID lub getFullData.
    • Rejestrowanie wyników wywołań to getAppConfigForOID prosty sposób sprawdzenia, które ustawienia zostały dostarczone. Ponieważ jednak administratorzy mogą wprowadzać dowolne dane w ustawieniach konfiguracji aplikacji, uważaj, aby nie rejestrować żadnych prywatnych danych użytkownika.
  4. Zobacz Weryfikowanie zastosowanych zasad konfiguracji aplikacji.

Ponieważ konfiguracje aplikacji są specyficzne dla aplikacji, tylko Ty wiesz, jak sprawdzić, jak aplikacja powinna zmienić zachowanie lub interfejs użytkownika dla każdego ustawienia konfiguracji aplikacji.

Podczas testowania należy wziąć pod uwagę następujące kwestie:

  • Zapewnienie, że wszystkie scenariusze są objęte tworzeniem różnych zasad konfiguracji aplikacji testowej z każdą wartością obsługiwaną przez aplikację.
  • Sprawdzanie logiki rozwiązywania konfliktów aplikacji przez utworzenie wielu zasad konfiguracji aplikacji testowej z różnymi wartościami dla każdego ustawienia.
  • Jeśli aplikacja zarejestrowała się w celu uzyskania REFRESH_APP_CONFIG powiadomienia, zaktualizowanie zasad konfiguracji aplikacji, gdy aplikacja jest aktywnie używana, oczekiwanie na aktualizację zasad i potwierdzenie, że ta ścieżka kodu jest poprawnie wykonywana.
  • Jeśli aplikacja obsługuje oba typy konfiguracji aplikacji, należy przetestować oba scenariusze, aby upewnić się, że implementacja zapewnia poprawną tożsamość do getAppConfigForOID.

Następne kroki

Po wykonaniu wszystkich powyższych kryteriów zakończenia aplikacja zostanie pomyślnie zintegrowana, podobnie jak z zasadami konfiguracji aplikacji.

Kolejna sekcja, Etap 7: Funkcje uczestnictwa w aplikacji, może, ale nie musi być wymagana, w zależności od żądanej obsługi zasad ochrony aplikacji w aplikacji. Jeśli nie masz pewności, czy którakolwiek z tych funkcji ma zastosowanie w przypadku Twojej aplikacji, wróć do artykułu Kluczowe decyzje dotyczące integracji z zestawem SDK.