Nowości w Androidzie 10 dla firm

Ta strona zawiera omówienie nowych interfejsów API dla firm, ich funkcji i zmian w działaniu Androida 10.

Profile służbowe na urządzeniach należących do firmy

Android 10 wprowadza nowe funkcje obsługi administracyjnej i poświadczania urządzeń należących do firmy, które wymagają tylko profilu służbowego.

Ulepszone narzędzia do obsługi administracyjnej profili służbowych

Profile służbowe można udostępniać na zarejestrowanych urządzeniach z Androidem 10 lub nowszym przy użyciu Kod QR i zero-touch. Podczas udostępniania urządzenia należącego do firmy nowa dodatkowa intencja pozwala aplikacje kontrolera zasad urządzeń (DPC), aby inicjować profil służbowy lub w pełni zarządzać konfiguracji. Po utworzeniu profilu służbowego lub ustanowieniu pełnego zarządzania modele DPC musi uruchamiać ekrany zgodności z zasadami, aby egzekwować wszelkie zasady początkowe.

W pliku manifestu DPC zadeklaruj nowy filtr intencji dla GET_PROVISIONING_MODE w aktywności i dodaj BIND_DEVICE_ADMIN uprawnienia zapobiegające rozpoczynaniu aktywności przez dowolne aplikacje. Na przykład:

<activity
    android:name=".GetProvisioningModeActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action
            android:name="android.app.action.GET_PROVISIONING_MODE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

Podczas obsługi administracyjnej system uruchamia aktywność powiązaną z filtr intencji. Celem tego działania jest określenie trybu zarządzania (profil do pracy lub usługa w pełni zarządzana).

Przed określeniem warunków obsługi administracyjnej warto pobrać dodatki odpowiedni tryb zarządzania urządzeniem. Działanie może wywołać metodę wywołania getIntent() do pobrania następujące:

Platformy DPC mogą też utworzyć nową intencję wynikową i dodać do niej te dodatki:

Aby skonfigurować tryb zarządzania na urządzeniu, wywołaj putExtra(DevicePolicyManager.EXTRA_PROVISIONING_MODE,desiredProvisioningMode), gdzie desiredProvisioningMode to:

  • Profil służbowy: PROVISIONING_MODE_MANAGED_PROFILE
  • Pełne zarządzanie: PROVISIONING_MODE_FULLY_MANAGED_DEVICE

Kończenie profilu służbowego lub w pełni zarządzana obsługa administracyjna przez wysyłanie informacji o obsłudze administracyjnej szczegóły ponownie do konfiguracji na stronie setResult(RESULT_OK, Intent) i zamknij wszystkie aktywne ekrany za pomocą finish()

Po zakończeniu obsługi administracyjnej dostępna jest nowa intencja, która będzie gotowa do uruchomienia przez DPC. i egzekwować wstępne ustawienia zasad. W profilu służbowym urządzeń, w profilu służbowym są wyświetlane ekrany zgodności. DPC musi: Zapewnia, że ekrany zgodności są wyświetlane użytkownikom, nawet jeśli użytkownik uciekł. konfiguracji.

W pliku manifestu DPC zadeklaruj nowy filtr intencji dla ADMIN_POLICY_COMPLIANCE w aktywności i dodaj BIND_DEVICE_ADMIN uprawnienia zapobiegające rozpoczynaniu aktywności przez dowolne aplikacje. Na przykład:

<activity
    android:name=".PolicyComplianceActivity"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_DEVICE_ADMIN">
    <intent-filter>
        <action android:name="android.app.action.ADMIN_POLICY_COMPLIANCE" />
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

DPC musi wykorzystać tę nową intencję, zamiast nasłuchiwać ACTION_PROFILE_PROVISIONING_COMPLETE. transmisję.

Działanie powiązane z filtrem intencji może wywoływać metodę getIntent() do pobrania EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE Po sprawdzeniu zgodności z zasadami ADMIN_POLICY_COMPLIANCE musi zwrócić błąd setResult(RESULT_OK, Intent) i zamknąć wszystkie aktywne ekrany za pomocą finish()

W pełni zarządzane urządzenia kierują użytkowników na ekran główny. Urządzenia z profilem służbowym proś użytkowników o dodanie konta osobistego przed powrótem do domu ekranu.

Poświadczanie identyfikatora urządzenia z profilu służbowego

Punkty DPC ustawione jako administrator profilu służbowego udostępnionego za pomocą rejestracji typu zero-touch może uzyskać identyfikatory urządzeń akredytowane w ramach bezpiecznego sprzętu, takie jak IMEI czy numer producenta numeru seryjnego. Urządzenie musi być wyposażone w bezpieczny sprzęt (np. środowisko wykonawcze (TEE) lub bezpieczny element (SE) i obsługuje identyfikator urządzenia. atestu i rejestracji typu zero-touch.

Składnik administracyjny profilu służbowego może wywołać metodę DevicePolicyManager.generateKeyPair(), przekazując w argumencie idAttestationFlags co najmniej 1 z tych wartości: ID_TYPE_SERIAL, ID_TYPE_IMEI lub ID_TYPE_MEID.

Więcej informacji o pobieraniu i weryfikowaniu identyfikatorów urządzeń znajdziesz w artykule Weryfikowanie par kluczy wspieranych sprzętowo za pomocą atestu kluczy.

Ulepszenia profilu służbowego

Dostępne są nowe interfejsy API do obsługi widoczności kalendarzy w wielu profilach oraz blokowanie instalowania aplikacji z nieznanych źródeł na całym urządzeniu

Profil służbowy, nieznane źródła na poziomie urządzenia

aplikacje pobrane ze źródeł innych niż Google Play (lub inna zaufana aplikacja); sklepów) są nazywane aplikacjami z nieznanych źródeł. W Androidzie 10 administratorzy profile mogą uniemożliwić użytkownikom lub profilom instalowanie aplikacji z nieznanych źródła w dowolnym miejscu na urządzeniu, dodając ograniczenie dotyczące nowego użytkownika DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY Po dodaniu tego ograniczenia osoby korzystające z urządzenia nadal będą mogły instalowanie aplikacji za pomocą polecenia adb.

Aby zapobiec przypadkowemu instalowaniu aplikacji z nieznanych źródeł, zalecamy dodanie tego ograniczenia użytkownika, ponieważ nie wymaga ono Google Play usługi do zainstalowania. Jeśli chcesz zapewnić obsługę starszych wersji Androida, możesz ustawić wartość konfiguracji zarządzanej w Google Play,

Ogranicz dozwolone urządzenia wejściowe do profili służbowych

Gdy administratorzy profili służbowych wywołują DevicePolicyManager.setPermittedInputMethods(), użytkownicy mają dostęp tylko do metod wprowadzania dozwolonych w ich pracy. profil zamiast całego urządzenia, dając użytkownikom pełną kontrolę nad wprowadzaniem po ich osobistej stronie.

Dyskretne czyszczenie profili służbowych

Dodano: WIPE_SILENTLY flagę na DevicePolicyManager.wipeData(). Jeśli flaga jest ustawiona, użytkownicy nie są powiadamiani po wyczyszczeniu profilu służbowego przy użyciu wipeData().

Nowe funkcje na w pełni zarządzanych urządzeniach

Android 10 wprowadza nowe funkcje i interfejsy API dla w pełni zarządzanych urządzeń, w tym ręczne aktualizacje systemu, przez rozszerzenie obsługi za pomocą kodu QR i NFC obejmują dane logowania do sieci Wi-Fi EAP i obsługę DNS przez TLS.

Ręczna instalacja aktualizacji systemu

W Androidzie 10 administratorzy w pełni zarządzanych urządzeń mogą instalować aktualizacje systemu za pomocą lub pliku aktualizacji systemu. Ręczne aktualizacje systemu umożliwiają administratorom IT wykonywanie tych czynności:

  • Zanim zainstalujesz aktualizację na większej liczbie urządzeń, przetestuj ją na małej liczbie urządzeń.
  • Unikaj duplikowania pobierania w sieciach o ograniczonej przepustowości.
  • Rozłożyć instalację w czasie lub aktualizować urządzenia tylko wtedy, gdy nie są używane.

Najpierw administrator IT ustawia zasady przełożonych aktualizacji systemu. w celu opóźnienia automatycznej instalacji (w razie potrzeby). Następnie telefon DPC wywołuje installSystemUpdate() ze ścieżką do pliku aktualizacji systemu producenta urządzenia. Zdaj InstallSystemUpdateCallback obiektem, którego system może użyć do zgłaszania błędów występujących przed uruchomi się ponownie. Jeśli coś pójdzie nie tak, system wywołuje onInstallUpdateError(). z kodem błędu.

Po ponownym uruchomieniu urządzenia DPC musi potwierdzić instalację za pomocą interfejsu API wersji, takiego jak Build.FINGERPRINT Jeśli aktualizacja zgłoś to administratorowi IT.

Obsługa administracyjna sieci Wi-Fi EAP

W Androidzie 10 kody QR i dane NFC używane do obsługi administracyjnej urządzeń mogą zawierać: Konfiguracja EAP i dane logowania (w tym certyfikaty). Gdy ktoś skanuje kod QR lub dotknij tagu NFC, urządzenie automatycznie uwierzytelni się w lokalnej sieci Wi-Fi. przy użyciu sieci EAP i rozpoczyna proces obsługi administracyjnej bez dodatkowych ręcznego wprowadzania danych.

Aby uwierzytelniać sieci Wi-Fi za pomocą EAP, dodaj EXTRA_PROVISIONING_WIFI_SECURITY_TYPE dodatkowy o wartości "EAP". Aby określić uwierzytelnianie EAP, możesz dodać parametr tych dodatków:

Obsługa prywatnego DNS

Organizacje mogą używać DNS przez TLS (na urządzeniach z Androidem nazywany jest prywatnym DNS), aby uniknąć wycieku zapytań DNS. łącznie z wewnętrznymi nazwami hostów. Komponenty administracyjne na w pełni zarządzanych urządzeniach może zarządzać ustawieniami prywatnego DNS urządzenia. Aby ustawić tryb prywatnego DNS: zadzwoń:

Gdy DPC wywoła jedną z tych metod, system zwróci PRIVATE_DNS_SET_NO_ERROR, jeśli udało się nawiązać połączenie. W przeciwnym razie zwraca błąd.

Aby pobrać tryb prywatnego DNS i hosta ustawionego na urządzeniu, wywołaj getGlobalPrivateDnsMode() i getGlobalPrivateDnsHost(). Aby uniemożliwić użytkownikom zmienianie ustawień prywatnego DNS, dodaj parametr DISALLOW_CONFIG_PRIVATE_DNS .

Wykluczenie trybu blokady VPN

Tryb blokady VPN pozwala DPC zablokować dowolną sieć , który nie zawiera sieć VPN. Administratorzy w pełni urządzenia zarządzane i profile służbowe mogą wyłączyć aplikacje z trybu blokady. Aplikacje wykluczone domyślnie używają sieci VPN, ale automatycznie łączą się z innymi gdy sieć VPN jest niedostępna. Wykluczone aplikacje, które są również jednoznacznie chronione odmówi dostępu usługa VPN, będzie używać tylko innych sieci.

Aby wyłączyć aplikację z trybu blokady, wywołaj nowy Metoda DevicePolicyManager setAlwaysOnVpnPackage() która akceptuje listę wykluczonych pakietów aplikacji. wszystkie pakiety aplikacji dodane przez DPC; musi być zainstalowana na urządzeniu przy wywołaniu tej metody. Jeśli aplikacja jest aplikacja została odinstalowana i zainstalowana ponownie, trzeba ją ponownie wykluczyć. Aby pobrać aplikacje być wcześniej zwolnieni z trybu blokady, wywołaj getAlwaysOnVpnLockdownWhitelist()

Aby pomóc administratorom w pełni zarządzanych urządzeń i profili służbowych korzystać z trybu blokady stanu, Android 10 dodaje isAlwaysOnVpnLockdownEnabled() .

Nowe zakresy przekazania

Android 10 rozszerza listę funkcji, które DPC może przekazać innym specjalistyczne aplikacje. Android grupuje metody interfejsu API potrzebne do wykonania zadania w Zakresy. Aby przekazać zakres, wywołaj setDelegatedScopes() i przekazuj co najmniej jeden z tych zakresów:

Android 10 przedstawia nową klasę DelegatedAdminReceiver w przypadku aplikacji z przekazanym dostępem. System używa tego odbiornika do wysyłania wiadomości przypominających DPC wywołania zwrotne w celu przekazywania dostępu do aplikacji. Aplikacje, którym przekazano aktywność w sieci logowanie i wybór certyfikatu powinno wdrożyć tę klasę. Aby to dodać należy użyć komponentu do przekazania aplikacji, wykonaj te czynności:

  1. Dodaj podklasę DelegatedAdminReceiver aplikacji z przekazanym dostępem.
  2. Zadeklaruj <receiver> w manifestu aplikacji, dodając działanie filtra intencji w przypadku każdego wywołania zwrotnego. Przykład: ACTION_NETWORK_LOGS_AVAILABLE lub ACTION_CHOOSE_PRIVATE_KEY_ALIAS.
  3. Ochrona odbiornika za pomocą urządzenia BIND_DEVICE_ADMIN uprawnienia.

Ten fragment kodu zawiera plik manifestu pojedynczej aplikacji z przekazanym dostępem, obsługuje zarówno logowanie sieciowe, jak i wybór certyfikatów:

<receiver android:name=".app.DelegatedAdminReceiver"
        android:permission="android.permission.BIND_DELEGATED_ADMIN">
    <intent-filter>
        <action android:name="android.app.admin.action.NETWORK_LOGS_AVAILABLE">
        <action android:name="android.app.action.CHOOSE_PRIVATE_KEY_ALIAS">
    </intent-filter>
    </receiver>

Zapisywanie aktywności w sieci

Aby pomóc organizacjom wykrywać i śledzić złośliwe oprogramowanie, DPC mogą rejestrować połączenia TCP i wyszukiwania DNS w systemie. W Androidzie 10 administratorzy w pełni zarządzanych usług urządzenia mogą przekazać logowanie sieciowe do wyspecjalizowanej aplikacji.

Aby pobrać dzienniki sieciowe, gdy system udostępnia grupę, deleguj aplikacje powinny najpierw podklasę DelegatedAdminReceiver. (jak opisano wcześniej). W podklasie zaimplementuj funkcję onNetworkLogsAvailable() zgodnie ze wskazówkami w artykule Pobieranie dzienników.

Aplikacje z przekazanym dostępem mogą wywoływać te DevicePolicyManager metod (przekazywanie null dla argumentu admin):

Aby uniknąć utraty dzienników, DPC nie powinno włączać logowania sieciowego jeśli planujesz powierzać swoje zadanie innej aplikacji. Aplikacja z przekazanym dostępem powinna włączyć zbierać dzienniki sieciowe. Gdy DPC przekaże dostęp do logowania sieciowego, nie będzie otrzymywać jeszcze więcej onNetworkLogsAvailable() .

Aby dowiedzieć się, jak zgłaszać logowanie aktywności w sieci z poziomu aplikacji, której przekazano dostęp, przeczytaj skorzystaj z przewodnika dla programistów logowania aktywności w sieci.

Wybór certyfikatu

W Androidzie 10 administratorzy w pełni zarządzane urządzenia, profile służbowe i użytkownicy dodatkowi mogą przekazywać uprawnienia wybór certyfikatu do wyspecjalizowanej aplikacji.

Aby wybrać alias certyfikatu, aplikacje z przekazanym dostępem powinny najpierw zostać podklasem DelegatedAdminReceiver (jak opisano wcześniej). W podklasie zaimplementuj funkcję onChoosePrivateKeyAlias() – wywołanie zwrotne i zwrócenie aliasu dla preferowanego ustawienia lub, aby poprosić użytkownika o wybranie certyfikatu, zwróć null.

Wycofanie zasad administrowania urządzeniami

Android 10 uniemożliwia aplikacjom i aplikacjom DPC stosowanie starszych urządzeń dla administratorów. Polecamy klientom a partnerzy przechodzą na w pełni zarządzane urządzenia lub profile służbowe. Poniżej zasady powodują wywołanie SecurityException w przypadku wywołania przez administratora urządzenia kierowanego na Androida 10:

.

Niektóre aplikacje korzystają z funkcji administratora urządzenia dla użytkowników indywidualnych. Dla: np. zablokowanie i wyczyszczenie utraconego urządzenia. Aby włączyć tę funkcję, wykonaj te czynności zasady będą nadal dostępne:

Więcej informacji o tych zmianach znajdziesz w artykule Administrator urządzenia ich wycofanie.

Nowe funkcje w aplikacjach

Aplikacje kierowane na Androida 10 mogą wysyłać zapytania o złożoność blokady ekranu na urządzeniu przed wyświetleniem poufnych danych lub uruchomieniem kluczowych funkcji. Połączenia z aplikacjami dzięki interfejsowi API KeyChain działania. Dostępne są również nowe funkcje aplikacji VPN.

Sprawdzanie jakości blokady ekranu

Począwszy od Androida 10, aplikacje z najważniejszymi funkcjami, które wymagają blokady ekranu może wysyłać zapytania o złożoność blokady ekranu urządzenia lub profilu służbowego. Aplikacje, które wymagają silniejsza blokada ekranu może kierować użytkownika do ustawień systemowej blokady ekranu, umożliwiając aktualizację ustawień zabezpieczeń.

Aby sprawdzić jakość blokady ekranu:

Aby uruchomić ustawienia systemowej blokady ekranu, użyj ACTION_SET_NEW_PASSWORD z dodatkowymi EXTRA_PASSWORD_COMPLEXITY opcjami, które nie i osiągać złożoność określonej w intencji, są wyszarzone. Użytkownicy mogą wybierz jedną z dostępnych opcji blokady ekranu lub zamknij ekran.

Sprawdzona metoda: wyświetlaj wiadomość w aplikacji przed uruchomieniem systemu stronie blokady ekranu. Po wznowieniu działania aplikacji zadzwoń: DevicePolicyManager.getPasswordComplexity() ponownie. Jeśli nadal jest wymagana silniejsza blokada ekranu, ogranicz dostęp zamiast wielokrotnych próśb o zaktualizowanie ustawień zabezpieczeń.

Obsługa serwera proxy HTTP w aplikacjach VPN

Na Androidzie 10 aplikacje VPN mogą ustawiać serwer proxy HTTP. połączenia VPN. Aby dodać serwer proxy HTTP, aplikacja VPN musi skonfigurować instancję ProxyInfo z hostem i portem, zanim zadzwonisz VpnService.Builder.setHttpProxy() System i wiele bibliotek sieciowych korzysta z tego ustawienia serwera proxy, ale system nie wymusza na aplikacjach wysyłania żądań HTTP do serwera proxy.

Przykładowy kod pokazujący, jak skonfigurować serwer proxy HTTP, znajdziesz w Zabawkowa VPN przykładową aplikację.

Tryby usługi VPN

Aplikacje VPN mogą wykryć, czy usługa jest uruchomiona, ponieważ jest zawsze włączona VPN i jeśli blokada blokady tryb jest aktywny. Nowe metody dodane w Androidzie 10 mogą pomóc w dostosowywaniu interfejsu użytkownika. Na przykład: może wyłączyć przycisk rozłączania, gdy zawsze włączona sieć VPN kontroluje cykl życia z usługi.

Aplikacje VPN mogą wywoływać te parametry: VpnService po połączeniu z usługą. i ustanawianiem interfejsu lokalnego:

  • isAlwaysOn() do sprawdzić, czy system uruchomił usługę z powodu stałej sieci VPN
  • isLockdownEnabled() aby sprawdzić, czy system blokuje połączenia, które nie korzystają z sieci VPN

Stan Zawsze włączona pozostaje taki sam, gdy usługa jest uruchomiona, ale stan trybu blokady może się zmienić.

Ulepszenia pęku kluczy

Android 10 wprowadza kilka ulepszeń związanych z KeyChain API.

Gdy aplikacja wywołuje KeyChain.choosePrivateKeyAlias(), Androida 10 lub nowszego filtruje listę certyfikatów, spośród których użytkownik może wybierać, na podstawie wydawców i algorytmów kluczy określonych w wywołaniu.

Jeśli na przykład serwer TLS wysyła żądanie certyfikatu w ramach uzgadniania połączenia TLS, a przeglądarka wywołuje KeyChain.choosePrivateKeyAlias(), tylko prośba o wybór certyfikatu zawiera opcje pasujące do parametru Issues (wydawcy). Jeśli nie ma pasujących opcji lub na urządzeniu nie ma zainstalowanych żadnych certyfikatów, nie wyświetla się użytkownikowi.

Oprócz tego usługa KeyChain nie jest już dostępna wymaga, aby urządzenie miało blokadę ekranu, aby można było uzyskać klucze lub certyfikaty CA .