Penyiapan

Halaman ini menjelaskan cara menyiapkan aplikasi atau game untuk menggunakan Play Integrity API. Anda harus mengaktifkan respons dari API, lalu perlu mengintegrasikan API ke aplikasi dan server backend aplikasi Anda. Pelaporan, fitur pengujian, dan opsi konfigurasi tambahan tersedia setelah Anda menautkan project Google Cloud yang Anda gunakan untuk Play Integrity API di Konsol Google Play.

Mengaktifkan respons Play Integrity API

Setiap aplikasi atau SDK yang memanggil Play Integrity API harus memanfaatkan project Google Cloud untuk memantau penggunaan API. Aplikasi di Google Play dapat menautkan project Cloud di Konsol Google Play untuk mengaktifkan respons Play Integrity API. Jika ingin membuat project Cloud baru atau aplikasi Anda didistribusikan secara eksklusif di luar Google Play, Anda dapat mengaktifkan respons Play Integrity API dari Konsol Google Cloud.

Menyiapkan di Konsol Google Play (direkomendasikan)

Dengan mengaktifkan respons Play Integrity API di Konsol Google Play, Anda akan mendapatkan akses ke pelaporan API, fitur pengujian, dan opsi konfigurasi tambahan. Opsi ini hanya tersedia untuk aplikasi yang didistribusikan di Google Play. Buka Rilis > Integritas aplikasi. Di bagian Play Integrity API, pilih Tautkan project Cloud. Pilih project Cloud yang ingin ditautkan ke aplikasi Anda dan tindakan ini akan mengaktifkan respons Play Integrity API. Sekarang Anda dapat mengintegrasikan Play Integrity API ke dalam aplikasi.

Menyiapkan di Konsol Google Cloud

Di Konsol Google Cloud, buat project Cloud baru atau pilih project Cloud yang sudah ada dan ingin Anda gunakan dengan Play Integrity API. Buka APIs and services. Pilih enable APIs and services. Cari Play Integrity API, lalu aktifkan dengan mengetuk enable. Sekarang Anda dapat mengintegrasikan Play Integrity API ke dalam aplikasi Anda.

Menyiapkan petunjuk untuk penyedia SDK

Penyedia SDK harus menggunakan project Google Cloud mereka sendiri untuk memanggil Play Integrity API, sehingga penggunaan API diatribusikan ke SDK, bukan ke masing-masing aplikasi yang menggunakan SDK. Hal ini berarti aplikasi yang menggunakan SDK Anda tidak perlu menyiapkan Play Integrity API satu per satu. Permintaan Anda untuk Play Integrity API akan otomatis mengurangi penggunaan API SDK, bukan aplikasi.

Developer SDK memiliki dua opsi untuk menyiapkan Play Integrity API, Google Play SDK Console atau Konsol Google Cloud.

Dengan mengaktifkan respons Play Integrity API di Google Play SDK Console, Anda akan mendapatkan akses ke opsi konfigurasi tambahan. Buka Integritas SDK dan klik Setelan. Di bagian Konfigurasi project, pilih Tautkan project Cloud. Pilih project Cloud yang ingin ditautkan ke SDK Anda dan tindakan ini akan mengaktifkan respons Play Integrity API. Sekarang Anda dapat mengintegrasikan Play Integrity API ke dalam SDK. Perhatikan bahwa akses ke Google Play SDK Console tunduk pada kriteria kelayakan.

Menggunakan Konsol Google Cloud

Anda dapat mengaktifkan respons Play Integrity API dari Konsol Google Cloud. Di Konsol Google Cloud, buat project Cloud baru atau pilih project Cloud yang sudah ada dan ingin Anda gunakan dengan Play Integrity API. Buka APIs and services. Pilih enable APIs and services. Cari Play Integrity API, lalu aktifkan dengan mengetuk enable. Sekarang Anda dapat mengintegrasikan Play Integrity API ke dalam SDK.

Meningkatkan permintaan Play Integrity API harian SDK

Penyedia SDK yang ingin meningkatkan permintaan harian maksimum mereka harus melengkapi formulir permintaan kuota. Di bagian komentar terbuka, tentukan bahwa Anda membuat permintaan SDK dan sertakan koordinat Maven (groupId:artifactId) atau URL ke SDK Anda.

Meningkatkan permintaan Play Integrity API harian

Aplikasi Anda akan tunduk pada jumlah maksimum 10.000 total permintaan per aplikasi per hari. Anda dapat meminta untuk meningkatkan jumlah maksimum harian ini jika aplikasi perlu menangani peningkatan jumlah pengguna dengan mengikuti petunjuk di bawah.

Meningkatkan jumlah maksimum permintaan harian Anda

Agar memenuhi syarat untuk meningkatkan jumlah maksimum permintaan harian, aplikasi Anda harus tersedia di Google Play selain saluran distribusi lainnya. Meskipun dengan jumlah maksimum harian yang ditingkatkan, Anda harus terus membatasi permintaan klasik per pengguna menjadi tindakan yang jarang dan bernilai tinggi untuk menghemat baterai dan melindungi data pengguna.

Untuk meminta peningkatan jumlah maksimum permintaan harian, lakukan hal berikut:

  1. Tautkan project Google Cloud yang Anda gunakan untuk Play Integrity API di Konsol Play.
  2. Pastikan Anda mengimplementasikan logika API dengan benar, termasuk strategi coba lagi yang direkomendasikan.
  3. Minta penambahan kuota menggunakan formulir ini.

Diperlukan waktu hingga satu minggu untuk meningkatkan kuota Play Integrity API. Jadi. sebaiknya Anda memantau penggunaan Play Integrity API di Konsol Google Play atau di Konsol Google Cloud, tempat Anda juga dapat menetapkan peringatan kuota untuk menghindari gangguan pada layanan Anda.

Peningkatan kuota permintaan klasik akan otomatis diterapkan ke panggilan klien untuk membuat token integritas dan panggilan server untuk mendekripsi dan memverifikasi token integritas. Peningkatan kuota permintaan standar diterapkan ke panggilan server untuk mendekripsi dan memverifikasi token integritas.

Mengintegrasikan Play Integrity API ke dalam aplikasi Anda

Untuk mengintegrasikan Play Integrity API ke dalam aplikasi atau SDK Anda, lakukan salah satu hal berikut, bergantung pada lingkungan pengembangan Anda:

Kotlin atau Java

Library Android terbaru untuk Play Integrity API tersedia dari Repositori Maven Google. Tambahkan dependensi berikut ke file build.gradle aplikasi Anda:

implementation 'com.google.android.play:integrity:1.4.0'

Unity

Bagian berikut menjelaskan cara mengintegrasikan dan menyiapkan Google Play Integrity API untuk project Unity, yang mencakup versi Unity yang didukung, metode penginstalan, dan penyiapan lingkungan.

Versi Unity yang didukung

  • Semua versi 2019.x, 2020.x, dan yang lebih baru didukung.
  • Jika Anda menggunakan Unity 2018.x, versi 2018.4 atau yang lebih baru didukung.
  • Unity 2017.x dan yang lebih lama tidak didukung.

Menyiapkan lingkungan pengembangan

OpenUPM-CLI

Jika telah menginstal OpenUPM CLI, Anda dapat menginstal registry OpenUPM dengan perintah berikut:

openupm add com.google.play.integrity

OpenUPM

  1. Buka setelan pengelola paket dengan memilih opsi menu Unity Edit > Project Settings > Package Manager.

  2. Tambahkan OpenUPM sebagai registry cakupan ke jendela Package Manager:

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.integrity
    
  3. Buka menu pengelola paket dengan memilih opsi menu Unity Window > Package Manager.

  4. Tetapkan drop-down cakupan pengelola untuk memilih My Registries.

  5. Pilih paket plugin Google Play Integrity for Unity dari daftar paket, lalu tekan Install.

Mengimpor dari GitHub

  1. Download rilis .unitypackage terbaru dari GitHub.

  2. Impor file .unitypackage dengan memilih opsi menu Unity Assets > Import package > Custom Package, lalu mengimpor semua item.

Native

Instal Play Core Native SDK 1.13.0 atau yang lebih tinggi. Untuk mengetahui petunjuknya, lihat panduan penyiapan lingkungan pengembangan Play Core Native.

Mengonfigurasi respons API (opsional)

Respons API menyertakan verdict default yang ditampilkan dalam setiap permintaan. Jika menyiapkan integrasi Play Integrity API di Konsol Play, Anda dapat menyesuaikan respons API.

Respons default

Verdict integritas berikut ditampilkan dalam respons Play Integrity API secara default:

Kolom respons Nilai Deskripsi
Integritas perangkat MEETS_DEVICE_INTEGRITY Aplikasi berjalan di perangkat Android yang didukung oleh layanan Google Play. Perangkat lulus pemeriksaan integritas sistem dan memenuhi persyaratan kompatibilitas Android.
Kosong (nilai kosong) Aplikasi berjalan di perangkat yang memiliki tanda-tanda serangan (seperti hooking API) atau penyusupan sistem (seperti di-root), atau aplikasi tidak berjalan di perangkat fisik (seperti emulator yang tidak lulus pemeriksaan integritas Google Play).
Detail akun Play LICENSED Pengguna memiliki hak aplikasi. Dengan kata lain, pengguna menginstal atau mengupdate aplikasi Anda dari Google Play di perangkatnya.
UNLICENSED Pengguna tidak memiliki hak aplikasi. Hal ini terjadi saat, misalnya, pengguna melakukan sideload pada aplikasi Anda atau tidak menginstalnya dari Google Play.
UNEVALUATED Detail pemberian lisensi tidak dievaluasi karena persyaratan tidak terpenuhi. Hal ini dapat terjadi karena beberapa alasan, termasuk:
  • Perangkat tidak cukup tepercaya.
  • Pengguna tidak login ke Google Play.
  • Versi aplikasi yang diinstal di perangkat tidak dikenal oleh Google Play.
Integritas aplikasi PLAY_RECOGNIZED Aplikasi dan sertifikat cocok dengan versi yang didistribusikan oleh Google Play.
UNRECOGNIZED_VERSION Nama paket atau sertifikat tidak cocok dengan data Google Play.
UNEVALUATED Integritas aplikasi tidak dievaluasi. Persyaratan yang diperlukan tidak terpenuhi, seperti perangkat tidak cukup tepercaya.

Respons bersyarat

Jika mendistribusikan aplikasi ke Google Play Game untuk PC, Anda akan otomatis diikutsertakan untuk menerima label tambahan dalam verdict integritas perangkat:

Kolom respons Label Deskripsi
Integritas perangkat MEETS_VIRTUAL_INTEGRITY Aplikasi berjalan di Android emulator yang didukung oleh layanan Google Play. Emulator lulus pemeriksaan integritas sistem dan memenuhi persyaratan kompatibilitas inti Android.

Respons opsional

Jika menyiapkan integrasi Play Integrity API di Konsol Play atau SDK Console Play, Anda dapat memilih untuk menerima informasi dalam respons API Anda.

Untuk mengubah respons API Anda, buka Konsol Play, lalu buka Rilis > Integritas aplikasi. Di bagian Respons, edit dan simpan perubahan Anda.

Informasi perangkat opsional

Aplikasi dan SDK dapat memilih untuk menerima label perangkat tambahan dalam verdict integritas perangkat. Setelah memilih untuk menerima label tambahan, respons integritas akan menyertakan beberapa label untuk perangkat yang sama jika setiap kriteria label terpenuhi. Anda dapat mempersiapkan server backend untuk berperilaku lain, bergantung pada rentang kemungkinan respons. Misalnya, perangkat yang menampilkan tiga label (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY, dan MEETS_BASIC_INTEGRITY ) dapat lebih dipercaya daripada perangkat yang hanya menampilkan satu label (MEETS_BASIC_INTEGRITY).

Anda juga dapat memilih untuk menggunakan aktivitas perangkat terbaru. Aktivitas perangkat terbaru menampilkan tingkat yang berkisar dari LEVEL_1 (jumlah permintaan rendah) hingga LEVEL_4 (jumlah permintaan tinggi). Misalnya, perangkat yang menampilkan tingkat aktivitas yang jauh lebih tinggi dari biasanya untuk aplikasi Anda mungkin mencoba menghasilkan token integritas dalam jumlah besar untuk didistribusikan ke perangkat tidak tepercaya.

Anda juga dapat memilih untuk menggunakan atribut perangkat, yang memberi tahu Anda versi Android SDK Android OS yang berjalan di perangkat. Di masa mendatang, atribut ini mungkin diperluas dengan atribut perangkat lainnya.

Kolom respons Label Deskripsi
Integritas perangkat MEETS_BASIC_INTEGRITY Aplikasi berjalan di perangkat yang telah lulus pemeriksaan integritas sistem dasar, dan untuk perangkat Android 13+ memerlukan Android Platform Key Attestation. Perangkat mungkin tidak memenuhi persyaratan kompatibilitas Android dan mungkin tidak disetujui untuk menjalankan layanan Google Play. Misalnya, perangkat mungkin menjalankan versi Android yang tidak dikenal, mungkin memiliki bootloader yang tidak terkunci, booting yang tidak terverifikasi, atau mungkin belum disertifikasi oleh produsen.
MEETS_STRONG_INTEGRITY Aplikasi tersebut berjalan di perangkat Android yang didukung oleh layanan Google Play dan memiliki jaminan kuat atas integritas sistem seperti bukti integritas booting yang didukung hardware dan untuk perangkat Android 13+ harus memiliki update keamanan dalam setahun terakhir. Perangkat lulus pemeriksaan integritas sistem dan memenuhi persyaratan kompatibilitas Android.
Permintaan token integritas API standar di perangkat ini dalam satu jam terakhir per aplikasi Permintaan token integritas API klasik di perangkat ini dalam satu jam terakhir per aplikasi
Aktivitas perangkat terbaru LEVEL_1 (terendah) 10 atau lebih sedikit 5 atau kurang
LEVEL_2 Antara 11 dan 25 Antara 6 dan 10
LEVEL_3 Antara 26 dan 50 Antara 11 dan 15
LEVEL_4 (tertinggi) Lebih dari 50 Lebih dari 15
UNEVALUATED Aktivitas perangkat terbaru tidak dievaluasi. Hal ini dapat terjadi karena:
  • Perangkat tidak cukup tepercaya.
  • Versi aplikasi yang diinstal di perangkat tidak dikenal oleh Google Play.
  • Terjadi masalah teknis pada perangkat.
Atribut perangkat sdkVersion: 19, 20, ..., 35 Versi SDK OS Android yang berjalan di perangkat. Nomor yang ditampilkan dipetakan ke Build.VERSION_CODES.
Kosong (nilai kosong) Versi SDK tidak dievaluasi karena persyaratan yang diperlukan tidak terpenuhi. Dalam hal ini, kolom sdkVersion tidak ditetapkan; sehingga, kolom deviceAttributes kosong. Hal ini dapat terjadi karena:
  • Perangkat tidak cukup tepercaya.
  • Versi aplikasi yang diinstal di perangkat tidak dikenal oleh Google Play.
  • Terjadi masalah teknis pada perangkat.

Detail lingkungan opsional

Aplikasi dapat memilih untuk menerima verdict tambahan tentang lingkungan. Risiko akses aplikasi memungkinkan Anda mengetahui apakah aplikasi lain sedang berjalan dan dapat mengambil screenshot, menampilkan overlay, atau mengontrol perangkat. Verdict Play Protect memberi tahu Anda apakah Play Protect diaktifkan di perangkat dan apakah Play Protect telah menemukan malware yang diketahui.

Setelah Anda memilih untuk menerima verdict ini, respons API Anda akan menyertakan kolom detail lingkungan dengan verdict tersebut:

Kolom respons Nilai Deskripsi
Verdict risiko akses aplikasi KNOWN_INSTALLED Aplikasi diinstal oleh Google Play atau dimuat sebelumnya di partisi sistem oleh produsen perangkat.
KNOWN_CAPTURING Aplikasi yang diinstal oleh Google Play atau yang dimuat sebelumnya di perangkat sedang berjalan dan dapat digunakan untuk membaca atau merekam input dan output aplikasi yang meminta, seperti aplikasi perekaman layar.
KNOWN_CONTROLLING Aplikasi yang diinstal oleh Google Play atau yang dimuat sebelumnya di perangkat sedang berjalan dan dapat digunakan untuk mengontrol perangkat serta input dan output aplikasi yang meminta, seperti aplikasi yang mengontrol dari jarak jauh.
KNOWN_OVERLAYS Aplikasi yang diinstal oleh Google Play atau yang dimuat sebelumnya di perangkat sedang berjalan dan mungkin menampilkan overlay di aplikasi yang meminta.
UNKNOWN_INSTALLED Aplikasi lain diinstal, yang tidak diinstal oleh Google Play atau dimuat sebelumnya di partisi sistem oleh produsen perangkat.
UNKNOWN_CAPTURING Aplikasi lain yang dapat digunakan untuk membaca atau merekam input dan output aplikasi yang meminta, seperti aplikasi perekaman layar, sedang berjalan (tidak diinstal oleh Play atau dimuat sebelumnya di perangkat).
UNKNOWN_CONTROLLING Aplikasi lain yang dapat digunakan untuk mengontrol perangkat serta input dan output aplikasi yang meminta, seperti aplikasi yang mengontrol dari jarak jauh, sedang berjalan (tidak diinstal oleh Play atau dimuat sebelumnya di perangkat).
UNKNOWN_OVERLAYS Aplikasi lain sedang berjalan (tidak diinstal oleh Play atau dimuat sebelumnya di perangkat) yang mungkin menampilkan overlay di aplikasi yang meminta.
Kosong (nilai kosong) Risiko akses aplikasi tidak dievaluasi jika persyaratan yang diperlukan tidak terpenuhi. Dalam hal ini, kolom appAccessRiskVerdict kosong. Hal ini dapat terjadi karena beberapa alasan, termasuk:
  • Perangkat tidak cukup tepercaya.
  • Faktor bentuk perangkat bukan ponsel, tablet, atau perangkat foldable.
  • Perangkat tidak menjalankan Android 6 (API level 23) atau yang lebih baru.
  • Versi aplikasi yang diinstal di perangkat tidak dikenal oleh Google Play.
  • Versi Google Play Store di perangkat sudah lama.
  • Khusus game: Akun pengguna tidak memiliki lisensi Play untuk game.
  • Permintaan standar digunakan dengan parameter verdictOptOut.
  • Permintaan standar digunakan dengan versi library Play Integrity API yang belum mendukung risiko akses aplikasi untuk permintaan standar.
Verdict Play Protect NO_ISSUES Play Protect diaktifkan dan tidak menemukan masalah aplikasi apa pun di perangkat.
NO_DATA Play Protect diaktifkan, tetapi belum ada pemindaian yang dilakukan. Perangkat atau aplikasi Play Store mungkin baru saja direset.
POSSIBLE_RISK Play Protect dinonaktifkan.
MEDIUM_RISK Play Protect diaktifkan dan telah menemukan bahwa aplikasi yang berpotensi membahayakan terinstal di perangkat.
HIGH_RISK Play Protect diaktifkan dan telah menemukan bahwa aplikasi berbahaya terinstal di perangkat.
UNEVALUATED Verdict Play Protect tidak dievaluasi. Persyaratan yang diperlukan tidak terpenuhi, seperti perangkat tidak cukup tepercaya.

Mengonfigurasi setelan permintaan klasik (opsional)

Lewati bagian ini jika Anda hanya berencana untuk membuat permintaan API standar.

Saat Anda membuat permintaan klasik, secara default, server Google Play akan mengelola enkripsi respons yang digunakan aplikasi Anda saat Anda berinteraksi dengan Play Integrity API. Meskipun sebaiknya Anda menggunakan opsi default ini, Anda juga dapat memilih untuk mengelola dan mendownload kunci enkripsi respons dengan mengikuti petunjuk di bawah ini.

Mengizinkan Google mengelola enkripsi respons (default dan direkomendasikan)

Untuk melindungi keamanan aplikasi, sebaiknya Anda mengizinkan Google membuat dan mengelola kunci enkripsi respons. Server backend Anda akan memanggil server Google Play untuk mendekripsi respons.

Mengelola dan mendownload kunci enkripsi respons

Jika ingin mendekripsi verdict integritas secara lokal dalam lingkungan server yang aman, Anda dapat mengelola dan mendownload kunci enkripsi respons. Untuk mengelola dan mendownload kunci enkripsi respons, Anda harus menggunakan Konsol Play, dan aplikasi Anda harus tersedia di Google Play selain di saluran distribusi lainnya. Ikuti petunjuk di bawah untuk beralih dari kunci enkripsi respons yang dikelola Google ke kunci yang dikelola sendiri.

Perlu diingat untuk tidak mendekripsi atau memverifikasi token yang diterima dari dalam aplikasi klien, dan jangan pernah menampilkan kunci dekripsi apa pun ke aplikasi klien.

Sebelum mengubah strategi pengelolaan enkripsi respons di Konsol Play, pastikan server Anda dikonfigurasi dengan benar untuk mendekripsi dan memverifikasi token integritas di server Google Play guna menghindari gangguan.

Beralih antara kunci enkripsi respons yang dikelola Google dan dikelola sendiri

Jika saat ini Google mengelola enkripsi respons, dan Anda ingin beralih untuk mengelola dan mendownload kunci enkripsi respons sendiri, ikuti langkah-langkah berikut:

  1. Login ke Konsol Play.
  2. Pilih aplikasi yang menggunakan Play Integrity API.
  3. Di bagian Rilis pada menu kiri, buka Integritas aplikasi.
  4. Di samping Play Integrity API, klik Setelan.
  5. Di bagian Permintaan klasik halaman, di samping Enkripsi respons, klik Edit.
  6. Di jendela yang muncul, klik Kelola dan download kunci enkripsi respons saya.
  7. Ikuti petunjuk cara mengupload kunci publik.
  8. Setelah jendela menunjukkan bahwa upload berhasil, klik Simpan dan kunci yang dienkripsi akan didownload secara otomatis.
  9. Ubah logika server agar Anda dapat mendekripsi dan memverifikasi token integritas secara lokal, di lingkungan server Anda yang aman, menggunakan kunci enkripsi respons Anda.
  10. (Opsional) Jika mengelola sendiri kunci enkripsi respons, aplikasi Anda masih dapat melakukan penggantian ke server Google Play untuk mendekripsi dan memverifikasi respons.

Jika Anda mengelola sendiri kunci enkripsi respons dan ingin beralih agar Google mengelola enkripsi respons Anda, ikuti langkah-langkah berikut:

  1. Ubah logika server Anda agar Anda hanya mendekripsi dan memverifikasi di server Google.
  2. Login ke Konsol Play.
  3. Pilih aplikasi yang menggunakan Play Integrity API.
  4. Di bagian Rilis pada menu kiri, buka Integritas aplikasi.
  5. Di samping Play Integrity API, klik Setelan.
  6. Di bagian Permintaan klasik halaman, di samping Enkripsi respons, klik Edit.
  7. Di jendela yang muncul, klik Izinkan Google mengelola enkripsi respons saya (direkomendasikan).
  8. Klik Simpan perubahan.