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:
EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE
: Dodaj grupę do istniejącej grupy lub utwórz nową. Ten pakiet jest wysyłany jako intencja, gdy DPC wyświetli ekrany zgodności z zasadami.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE
: Określ konto do migracji tylko wtedy, gdy dodajesz konto służbowe w ramach pracy obsługi administracyjnej profili.EXTRA_PROVISIONING_SKIP_EDUCATION_SCREENS
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:
EXTRA_PROVISIONING_WIFI_EAP_METHOD
EXTRA_PROVISIONING_WIFI_IDENTITY
EXTRA_PROVISIONING_WIFI_ANONYMOUS_IDENTITY
EXTRA_PROVISIONING_WIFI_DOMAIN
EXTRA_PROVISIONING_WIFI_PHASE2_AUTH
EXTRA_PROVISIONING_WIFI_USER_CERTIFICATE
EXTRA_PROVISIONING_WIFI_CA_CERTIFICATE
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ń:
setGlobalPrivateDnsModeOpportunistic()
aby urządzenie używało prywatnego DNS, gdy system może wykryć obsługującego serwer nazw; lubsetGlobalPrivateDnsModeSpecifiedHost()
w celu określenia nazwy hosta serwera nazw obsługującego typ RFC 7858 w argumencieprivateDnsHost
.
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:
DELEGATION_NETWORK_LOGGING
aby przekazać rejestrowanie aktywności w sieciDELEGATION_CERT_SELECTION
w celu przekazania wyboru certyfikatu
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:
- Dodaj podklasę
DelegatedAdminReceiver
aplikacji z przekazanym dostępem. - Zadeklaruj
<receiver>
w manifestu aplikacji, dodając działanie filtra intencji w przypadku każdego wywołania zwrotnego. Przykład:ACTION_NETWORK_LOGS_AVAILABLE
lubACTION_CHOOSE_PRIVATE_KEY_ALIAS
. - 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:
USES_POLICY_DISABLE_CAMERA
USES_POLICY_DISABLE_KEYGUARD_FEATURES
USES_POLICY_EXPIRE_PASSWORD
USES_POLICY_LIMIT_PASSWORD
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:
- Dodaj nowe uprawnienie
REQUEST_PASSWORD_COMPLEXITY
do z pliku manifestu aplikacji. - Zadzwoń pod numer
DevicePolicyManager.getPasswordComplexity()
. Złożoność dzieli się na 4 kategorie:
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 VPNisLockdownEnabled()
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
.