W przypadku rejestracji w Androidzie Enterprise istnieją 2 główne typy tożsamości użytkownika: konta zarządzanego Sklepu Google Play i zarządzane konta Google. Konta zarządzane w Google Play są powiązane z urządzeniami, co oznacza, że nie są one powiązane z tożsamością Google konkretnego użytkownika. Zarządzane konta Google są natomiast powiązane z firmową tożsamością Google użytkownika, co poprawia komfort korzystania z usługi, ponieważ użytkownik jest stale zalogowany na swoich urządzeniach.
Konta zarządzanego Sklepu Google Play były kiedyś standardem. Google zachęca jednak obecnie wszystkich nowych deweloperów do korzystania z ulepszonego procesu rejestracji, który domyślnie tworzy zarządzane konta Google.
Wskazówki dotyczące starszej implementacji znajdziesz na końcu tego dokumentu. Jednak wszystkie nowe projekty powinny być zgodne z nowym procesem rejestracji opisanym tutaj.
Przegląd
Ulepszony proces rejestracji urządzeń upraszcza konfigurację urządzeń dzięki wykorzystaniu kilku nowych komponentów i zmianie sposobu wdrażania niestandardowych kontrolerów zasad dotyczących urządzeń (DPC). To nowe podejście wymaga, aby niestandardowe rozwiązania DPC były zintegrowane z pakietem SDK Android Management API (AMAPI) i aplikacją Android Device Policy w celu wykonywania funkcji przygotowywania urządzeń i rejestracji użytkowników.
Pakiet AMAPI SDK udostępnia interfejsy API niezbędne do interakcji z aplikacją Android Device Policy na urządzeniu. Po stronie serwera rozwiązania do zarządzania mobilnością w przedsiębiorstwie (EMM) będą używać interfejsu Play EMM API do generowania tokenów rejestracji wymaganych do rozpoczęcia procesu rejestracji urządzenia.
Aplikacja Android Device Policy odgrywa teraz kluczową rolę w obsłudze operacji na urządzeniu. Pakiet SDK AMAPI służy do zarządzania instalacją i niezbędnymi aktualizacjami na urządzeniu. Aplikacja Android Device Policy przejmuje też proces uwierzytelniania użytkownika, obsługując go bezpośrednio i przekazując tożsamość użytkownika do usługi EMM. Jeśli z jakiegokolwiek powodu nie uda się uwierzytelnić użytkownika, na urządzeniu zostanie utworzone i dodane nowe konto w zarządzanym Sklepie Google Play.
Integracja interfejsu API
Zanim zaczniesz, sprawdź, czy używasz najnowszej wersji klienta interfejsu Play EMM API i pakietu SDK AMAPI.
Przewodnik po implementacji rejestracji
W tym przewodniku znajdziesz niezbędne kroki, które należy wykonać, aby wdrożyć rejestrację. Obejmuje przygotowanie środowiska, obsługę różnych metod rejestracji i zarządzanie cyklem życia urządzenia.
Przygotowywanie środowiska
Przed rozpoczęciem konfiguracji konta należy przygotować środowisko urządzenia. Przygotowanie polega na zaktualizowaniu Sklepu Play do najnowszej wersji i cichej instalacji na urządzeniu aplikacji Android Device Policy (com.google.android.apps.work.clouddpc
). Zainstalowanie aplikacji Android Device Policy jest niezbędne, ponieważ zawiera ona kluczowe komponenty procesu konfiguracji konta. Dostawcy usług EMM nie muszą ręcznie przygotowywać środowiska. Zamiast tego powinni używać EnvironmentClient
, zgodnie z dokumentacją dostępną pod adresem i zgodnie z podanymi przykładami kodu.
Przykładowy kod
Zanim aplikacja DPC będzie mogła użyć interfejsu AccountSetup do dodania konta służbowego na urządzeniu, musi najpierw sprawdzić, czy środowisko urządzenia jest gotowe.
Użyj
EnvironmentClientFactory
do utworzenia instancjiEnvironmentClient
i wywołaniaprepareEnvironment
lubprepareEnvironmentAsync
.val notificationReceiverServiceName = ComponentName(context, NotificationReceiver::class.java) // An EMM should implement android.app.admin.DeviceAdminReceiver and use that // class to instantiate a ComponentName val admin = ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java) EnvironmentClientFactory.create(context) .prepareEnvironment( PrepareEnvironmentRequest.builder() .setRoles( listOf( Role.builder().setRoleType( Role.RoleType.DEVICE_POLICY_CONTROLLER ).build() ) ) .setAdmin(admin) .build(), notificationReceiverServiceName, ) [Proceed with AccountSetup]
Ta operacja może potrwać kilka sekund lub minut, ponieważ aplikacje mogą być instalowane lub aktualizowane w celu weryfikacji prawidłowego środowiska pracy. Google zaleca rozpoczęcie tego procesu w tle jak najwcześniej i wyświetlanie odpowiedniego interfejsu, gdy użytkownik czeka. Po zakończeniu operacji urządzenie jest gotowe do użycia interfejsu AccountSetup API przez dostawcę zasad dotyczących urządzeń.
Proces rejestracji
Dostawcy EMM muszą zaprzestać używania users.generateAuthenticationToken()
i users.insert()
na wszystkich urządzeniach. Zamiast tego platformy EMM muszą wywoływać interfejs API na urządzeniu, aby przeprowadzić uwierzytelnianie użytkownika. Nowy interfejs API zwróci do DPC wartości userId
i email
. Jeśli Google nie może uwierzytelnić użytkownika, zostanie utworzone konto zarządzanego Sklepu Google Play i dodane do urządzenia. W takim przypadku Google zwróci userId
tego konta.
Google wprowadza teraz tokeny rejestracji, które muszą być przekazywane do interfejsu API uwierzytelniania. Usługi EMM określają, kiedy i jak utworzyć token.Może on być częścią istniejącego ładunku rejestracji (np. kodu QR lub konfiguracji Zero-touch).
Google zaleca jednak tworzenie tokena na żądanie i zastąpienie dotychczasowego interfejsu API do zarządzania kontami Google Play nowym interfejsem API, aby zminimalizować zmiany.



Ulepszony proces rejestracji niestandardowego dostawcy DPC obejmuje te kroki:
- Utwórz token rejestracji: dostawca usług EMM tworzy token rejestracji za pomocą interfejsu Play EMM API.
- Przygotowywanie środowiska: niestandardowy kontroler zasad dotyczących urządzeń korzysta z procesu przygotowywania środowiska, aby sprawdzić, czy urządzenie jest gotowe do wdrożenia.
- Inicjowanie rejestracji: niestandardowy DPC wywołuje interfejs
startAccountSetup
API w pakiecie AMAPI SDK, przekazując token rejestracji. Uwaga: przed wywołaniem tego interfejsu API DPC musi być właścicielem urządzenia lub właścicielem profilu. - Uruchom działanie uwierzytelniania Google: w razie potrzeby niestandardowy DPC wywołuje interfejs API
launchAuthenticationActivity
w pakiecie AMAPI SDK, przekazującAccountSetupAttempt
. Rozpoczyna to proces uwierzytelniania w Google, a po pomyślnym uwierzytelnieniu użytkownik wraca do niestandardowego DPC. Użytkownik może też pominąć ten proces. W takim przypadku na urządzeniu zostanie dodane konto zarządzanego Sklepu Google Play. Tę opcję można skonfigurować za pomocągoogleAuthenticationOptions
. - Kończenie rejestracji: pakiet AMAPI SDK powiadamia niestandardowy kontroler zasad urządzenia o wyniku rejestracji.
- Włącz usługi Google: gdy urządzenie użytkownika z zarządzanym kontem Google jest zgodne z zasadami firmy, usługa EMM musi wywołać funkcję
Devices.setState()
. Ta czynność umożliwia dostęp do usług Google na koncie na urządzeniu. Bez tego wywołania Sklep Play i inne usługi Google nie będą działać.
Konfiguracja konta – przykładowy kod
Aby zainicjować próbę konfiguracji konta, aplikacja do połączeń może użyć
AccountSetupClient
i wywołać metodęstartAccountSetup()
lubstartAccountSetupFuture()
. Przykładową implementację znajdziesz w tym przykładowym kodzie:// Create AccountSetupClient val client = AccountSetupClientFactory.create( this, activityResultRegistry ) lifecycle.addObserver(client.lifecycleObserver) // Create adminComponent val notificationReceiver = ComponentName(this, AccountSetupNotificationReceiver::class.java) // Helper method to get enrollment token created with Play EMM API val enrollmentToken = getEnrollmentToken() val request = StartAccountSetupRequest.builder() .setEnrollmentToken(enteredText) .setNotificationReceiverServiceComponentName(notificationReceiver) .setAdminComponentName( ComponentName(this, com.example.dpc.DeviceAdminReceiver::class.java)) .build() try { val accountSetupAttempt = client.startAccountSetup(request) // handle attempt } catch (e: Exception) { // handle exception } ```
Zaimplementuj interfejs
AccountSetupListener
i udostępnij implementację sposobu obsługi otrzymanych aktualizacji stanu.Rozszerz klasę
NotificationReceiverService
i podaj instancjęAccountSetupListener
utworzoną w kroku 2, zastępującgetAccountSetupListener()
.// Handles account setup changes class AccountSetupNotificationReceiver : NotificationReceiverService(), AccountSetupListener { override fun getAccountSetupListener(): AccountSetupListener = this override fun onAccountSetupChanged(accountSetupAttempt: AccountSetupAttempt) { when (accountSetupAttempt.state.kind) { StateCase.ADDED_ACCOUNT -> { val enterpriseAccount = state.addedAccount() val userId = enterpriseAccount.userId val deviceId = enterpriseAccount.deviceId // Handle account added state. } StateCase.AUTHENTICATION_ACTIVITY_LAUNCH_REQUIRED -> { val request = LaunchAuthenticationActivityRequest.builder() .setAccountSetupAttempt(accountSetupAttempt) .build(); // Send the attempt to the foreground activity to call: accountSetupClient.launchAuthenticationActivity(request) } StateCase.ACCOUNT_SETUP_ERROR -> { // Handle error state. val failureReason = state.accountSetupError().failureReason } else -> { // Handle unknown account setup attempt state. } } } } ```
Dodaj rozszerzoną
NotificationReceiverService
AndroidManifest.xml
i sprawdź, czy została wyeksportowana.<application> <service android:name = ".accountsetup.AccountSetupNotificationReceiver" android:exported = "true" /> </application>
Jeśli Twoja aplikacja jest kierowana na SDK w wersji 30 lub nowszej, w
AndroidManifest.xml
musi się znajdować element queries, który określa, że aplikacja będzie wchodzić w interakcję z ADP.<queries> <package android:name="com.google.android.apps.work.clouddpc" /> </queries>
Wskazówki dotyczące testowania
W tej sekcji znajdziesz zestaw wskazówek i sprawdzonych metod dotyczących testowania implementacji.
Test PrepareEnvironment
Pobieranie bieżącego stanu urządzenia: system EMM uruchamia
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
aby uzyskać wersję aplikacji Android Device Policy na urządzeniu. Jeśli aplikacja Android Device Policy nie jest zainstalowana, oczekiwane jest puste wyjście.
Zintegruj PrepareEnvironment: niestandardowy DPC wywołuje interfejs
prepareEnvironment
API w pakiecie AMAPI SDK, przekazując prawidłowe żądanie.Oczekiwanie na wynik PrepareEnvironment: niestandardowy dostawca zasad urządzenia czeka na zakończenie działania
prepareEnvironment
.Potwierdź, że funkcja PrepareEnvironment została wykonana: po zakończeniu EMM uruchamia się ponownie.
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
Wersja aplikacji Zasady dotyczące urządzeń z Androidem powinna być nowsza niż w kroku 1.
Testowanie uwierzytelniania konta Google
- Utwórz testową firmę: usługa EMM tworzy testową firmę w Google Workspace
powiązaną z testową usługą EMM, z
enterprises.generateSignupUrl
. - Włącz uwierzytelnianie Google: dostawca usług EMM włącza uwierzytelnianie Google w przypadku testowego przedsiębiorstwa, postępując zgodnie z tymi instrukcjami w konsoli administracyjnej Google.
- Utwórz token rejestracji: dostawca usług EMM tworzy token rejestracji za pomocą interfejsu Play EMM API z typem userDevice.
- Inicjowanie rejestracji: niestandardowy DPC wywołuje interfejs
startAccountSetup
API w pakiecie AMAPI SDK, przekazując token rejestracji. - Wymagana aktywność uruchamiania: pakiet SDK AMAPI powiadamia niestandardowy kontroler zasad urządzenia, że w celu uwierzytelnienia użytkownika należy uruchomić aktywność.
- Uwierzytelnij użytkownika: niestandardowy DPC wywołuje
launchAuthenticationActivity
, aby rozpocząć działanie. Użytkownik uwierzytelnia się za pomocą zarządzanego konta Google (należącego do grupy utworzonej w kroku 1). - Kończenie rejestracji: pakiet AMAPI SDK powiadamia niestandardowy kontroler zasad urządzenia o wyniku rejestracji.
Testowanie pomijania uwierzytelniania w Google
Zastosujemy opisaną wcześniej konfigurację.
Tym razem w kroku 7 użytkownik klika Pomiń zamiast uwierzytelniać się za pomocą konta Google. Rejestracja zostanie zakończona, a na urządzeniu pojawi się konto usługi (tzn. AuthenticationType
jest anonimowe).
Testowanie urządzeń bez użytkownika
Ulepszony proces rejestracji niestandardowego dostawcy zasad dotyczących urządzeń mobilnych obejmuje te kroki, gdy uwierzytelnianie Google jest wyłączone:
- Utwórz testową firmę: może to być ta sama firma, która została utworzona wcześniej.
- Utwórz token rejestracji: dostawca usług EMM tworzy token rejestracji za pomocą interfejsu Play EMM API z typem userlessDevice.
- Inicjowanie rejestracji: niestandardowy DPC wywołuje interfejs
startAccountSetup
API w pakiecie AMAPI SDK, przekazując token rejestracji. - Kończenie rejestracji: pakiet AMAPI SDK powiadamia niestandardowy kontroler zasad urządzenia o wyniku rejestracji.