Ada dua jenis identitas pengguna utama untuk pendaftaran Android Enterprise: Akun Google Play terkelola dan Akun Google Terkelola. Akun Google Play terkelola berfokus pada perangkat, yang berarti akun tersebut tidak terikat dengan identitas Google pengguna tertentu. Sebaliknya, Akun Google Terkelola ditautkan ke identitas Google perusahaan pengguna, yang meningkatkan pengalaman pengguna dengan membuatnya tetap login di perangkatnya.
Akun Google Play terkelola dulunya merupakan standar. Namun, Google kini mendorong semua pengembangan baru untuk menggunakan alur pendaftaran yang ditingkatkan, yang secara default membuat Akun Google Terkelola.
Meskipun panduan untuk penerapan yang lebih lama diberikan di akhir dokumen ini untuk konteks, semua pengembangan baru harus mengikuti alur pendaftaran baru yang dijelaskan di sini.
Ringkasan
Alur pendaftaran perangkat yang ditingkatkan menyederhanakan penyiapan perangkat dengan memanfaatkan beberapa komponen baru dan mengubah cara penerapan Pengontrol Kebijakan Perangkat (DPC) kustom. Pendekatan baru ini memerlukan solusi DPC kustom untuk berintegrasi dengan Android Management API (AMAPI) SDK dan Android Device Policy untuk menjalankan fungsi penyiapan perangkat dan pendaftaran pengguna.
SDK AMAPI menyediakan API yang diperlukan untuk berinteraksi dengan Kebijakan Perangkat Android di perangkat itu sendiri. Di sisi server, solusi Pengelolaan Mobilitas Perusahaan (EMM) akan menggunakan Play EMM API untuk membuat token pendaftaran yang diperlukan untuk memulai proses pendaftaran perangkat.
Aplikasi Android Device Policy kini memegang peran sentral dalam menangani operasi sisi perangkat. SDK AMAPI digunakan untuk mengelola penginstalannya dan update yang diperlukan di perangkat. Android Device Policy juga mengambil alih alur autentikasi pengguna, menangani autentikasi pengguna secara langsung, dan memberikan identitas pengguna ke EMM. Jika Google tidak dapat mengautentikasi pengguna karena alasan apa pun, akun Google Play terkelola baru akan dibuat dan ditambahkan ke perangkat sebagai pengganti.
Integrasi API
Sebelum memulai, pastikan Anda menggunakan klien Play EMM API dan AMAPI SDK versi terbaru.
Panduan penerapan pendaftaran
Panduan ini memberikan langkah-langkah yang diperlukan untuk menerapkan pendaftaran. Panduan ini mencakup penyiapan lingkungan, penanganan berbagai metode pendaftaran, dan pengelolaan siklus proses perangkat.
Siapkan lingkungan
Sebelum memulai penyiapan akun, Anda harus menyiapkan lingkungan perangkat. Persiapan ini mencakup mengupdate Play Store ke iterasi terbarunya dan menginstal Android Device Policy (com.google.android.apps.work.clouddpc
) secara diam-diam ke perangkat. Penginstalan Android Device Policy sangat penting karena aplikasi ini menyimpan komponen penting dari proses Penyiapan Akun. EMM tidak perlu melakukan persiapan lingkungan secara manual. Sebagai gantinya, mereka harus menggunakan
EnvironmentClient
,
seperti yang didokumentasikan di dan mematuhi contoh kode yang diberikan.
Kode contoh
Sebelum dapat menggunakan AccountSetup API untuk menambahkan akun kerja di perangkat, DPC harus memverifikasi terlebih dahulu bahwa lingkungan perangkat sudah siap.
Gunakan
EnvironmentClientFactory
untuk membuat instanceEnvironmentClient
dan memanggilprepareEnvironment
atauprepareEnvironmentAsync
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]
Operasi ini dapat memerlukan waktu beberapa detik atau menit, karena aplikasi mungkin diinstal atau diupdate untuk memverifikasi lingkungan kerja yang tepat. Google merekomendasikan untuk memulai proses ini sedini mungkin di latar belakang dan menampilkan UI yang sesuai saat pengguna menunggu. Setelah operasi selesai, perangkat siap digunakan oleh DPC untuk menggunakan AccountSetup API.
Alur pendaftaran
EMM harus berhenti menggunakan users.generateAuthenticationToken()
dan
users.insert()
untuk semua perangkat. Sebagai gantinya, EMM harus memanggil API di perangkat
untuk melakukan autentikasi pengguna akhir. API baru akan menampilkan userId
dan
email
ke DPC. Jika Google tidak dapat mengautentikasi pengguna, Akun Google Play Terkelola akan dibuat dan ditambahkan ke perangkat. Dalam hal ini, Google akan menampilkan userId
akun tersebut.
Google kini memperkenalkan penggunaan token pendaftaran, yang harus diteruskan ke API autentikasi. EMM menentukan kapan dan bagaimana cara membuat token, dan token tersebut dapat menjadi bagian dari payload pendaftaran yang ada (misalnya, kode QR atau konfigurasi Zero-touch).
Namun, Google merekomendasikan pembuatan token sesuai permintaan dan penggantian API yang ada untuk Akun Google Play Terkelola dengan API baru untuk meminimalkan perubahan.



Alur pendaftaran DPC kustom yang ditingkatkan melibatkan langkah-langkah berikut:
- Buat Token Pendaftaran: EMM membuat token pendaftaran menggunakan Play EMM API.
- Siapkan Lingkungan: DPC kustom menggunakan alur Siapkan Lingkungan untuk memverifikasi bahwa perangkat siap untuk pendaftaran.
- Mulai Pendaftaran: DPC kustom memanggil
startAccountSetup
API di SDK AMAPI, dengan meneruskan token pendaftaran. Catatan: DPC harus berupa pemilik perangkat atau pemilik profil sebelum memanggil API ini. - Luncurkan aktivitas autentikasi Google: Jika diperlukan, DPC kustom
memanggil
launchAuthenticationActivity
API di AMAPI SDK, dengan meneruskanAccountSetupAttempt
. Tindakan ini memulai aktivitas autentikasi Google, mengembalikan pengguna ke DPC kustom setelah autentikasi berhasil. Pengguna juga dapat melewati proses ini. Dalam hal ini, akun Google Play Terkelola akan ditambahkan ke perangkat. Opsi ini dapat dikonfigurasi menggunakangoogleAuthenticationOptions
. - Menyelesaikan Pendaftaran: AMAPI SDK memberi tahu DPC kustom tentang hasil pendaftaran.
- Aktifkan layanan Google: Setelah perangkat pengguna dengan Akun Google Terkelola mematuhi kebijakan perusahaan, EMM harus memanggil
Devices.setState()
. Tindakan ini memungkinkan akses ke layanan Google untuk akun di perangkat. Tanpa panggilan ini, Play Store dan layanan Google lainnya tidak akan berfungsi.
Penyiapan Akun - kode contoh
Untuk memulai upaya penyiapan akun, aplikasi yang memanggil dapat menggunakan
AccountSetupClient
dan memanggil metodestartAccountSetup()
ataustartAccountSetupFuture()
. Untuk contoh penerapan, lihat contoh kode berikut:// 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 } ```
Terapkan antarmuka
AccountSetupListener
dan berikan implementasi tentang cara menangani update status yang diterima.Perluas
NotificationReceiverService
dan berikan instanceAccountSetupListener
yang dibuat pada langkah 2 dengan menggantigetAccountSetupListener()
.// 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. } } } } ```
Tambahkan class
NotificationReceiverService
yang diperluas keAndroidManifest.xml
Anda dan verifikasi bahwa class tersebut diekspor.<application> <service android:name = ".accountsetup.AccountSetupNotificationReceiver" android:exported = "true" /> </application>
Jika aplikasi Anda menargetkan SDK 30 atau yang lebih baru, elemen kueri diperlukan di
AndroidManifest.xml
untuk menentukan bahwa aplikasi akan berinteraksi dengan ADP.<queries> <package android:name="com.google.android.apps.work.clouddpc" /> </queries>
Panduan pengujian
Bagian ini memberikan serangkaian panduan dan praktik terbaik untuk menguji penerapan Anda.
Uji PrepareEnvironment
Mendapatkan Status Perangkat Saat Ini: EMM berjalan
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
untuk mendapatkan versi Android Device Policy yang ada di perangkat. Jika Kebijakan Perangkat Android tidak diinstal, output kosong akan ditampilkan.
Mengintegrasikan PrepareEnvironment: DPC kustom memanggil API
prepareEnvironment
di AMAPI SDK, dengan meneruskan permintaan yang benar.Menunggu hasil PrepareEnvironment: DPC kustom menunggu
prepareEnvironment
selesai.Konfirmasi keberhasilan PrepareEnvironment: Setelah selesai, EMM akan berjalan lagi
adb shell dumpsys package com.google.android.apps.work.clouddpc | grep versionName
Kali ini, versi Kebijakan Perangkat Android harus lebih tinggi daripada di langkah 1.
Menguji autentikasi Akun Google
- Membuat perusahaan pengujian: EMM membuat perusahaan Google domain pengujian
yang ditautkan ke EMM pengujian, dengan
enterprises.generateSignupUrl
. - Aktifkan autentikasi Google: EMM mengaktifkan autentikasi Google untuk perusahaan pengujian dengan mengikuti petunjuk ini di konsol Google Admin.
- Buat Token Pendaftaran: EMM membuat token pendaftaran menggunakan Play EMM API dengan jenis userDevice.
- Mulai Pendaftaran: DPC kustom memanggil
startAccountSetup
API di SDK AMAPI, dengan meneruskan token pendaftaran. - Peluncuran aktivitas diperlukan: AMAPI SDK memberi tahu DPC kustom bahwa aktivitas harus diluncurkan untuk mengautentikasi pengguna.
- Mengautentikasi pengguna: DPC kustom memanggil
launchAuthenticationActivity
untuk memulai aktivitas. Pengguna melakukan autentikasi dengan Akun Google Terkelola (bagian dari perusahaan yang dibuat pada langkah 1). - Menyelesaikan Pendaftaran: AMAPI SDK memberi tahu DPC kustom tentang hasil pendaftaran.
Menguji melewati autentikasi Google
Kita akan menggunakan penyiapan yang dijelaskan sebelumnya.
Kali ini, pada langkah 7, pengguna menekan Lewati, bukan melakukan autentikasi dengan Akun Google mereka. Pendaftaran berhasil diselesaikan, dengan akun
layanan di perangkat (yaitu
AuthenticationType
bersifat Anonim).
Menguji perangkat tanpa pengguna
Alur pendaftaran DPC kustom yang ditingkatkan menggunakan langkah-langkah berikut, saat autentikasi Google dinonaktifkan:
- Buat perusahaan pengujian: Perusahaan ini dapat berupa perusahaan yang sama dengan yang dibuat sebelumnya.
- Buat Token Pendaftaran: EMM membuat token pendaftaran menggunakan Play EMM API dengan jenis userlessDevice.
- Mulai Pendaftaran: DPC kustom memanggil
startAccountSetup
API di SDK AMAPI, dengan meneruskan token pendaftaran. - Menyelesaikan Pendaftaran: AMAPI SDK memberi tahu DPC kustom tentang hasil pendaftaran.