Langsung ke konten

Setup Android & Verifikasi Backend

GitHub

Di Android, plugin ini menggunakan Standar Google Play Integrity API:

  • prepareIntegrityToken selama prepare()
  • requestStandardIntegrityToken untuk createAttestation() dan createAssertion()
  • Aplikasi Android yang didistribusikan via ekosistem Google Play
  • Google Play services tersedia di perangkat
  • Play Integrity API aktif untuk aplikasi Anda
  • Nomor proyek Google Cloud sudah dikonfigurasi
  1. Aktifkan Play Integrity API di proyek Google Cloud Anda.
  2. Buka Play Console dan atur akses Play Integrity untuk aplikasi Anda.
  3. Berikan cloudProjectNumber ke plugin.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

Anda juga bisa meneruskan cloudProjectNumber per panggilan dalam opsi metode.

import { AppAttest } from '@capgo/capacitor-app-attest';
const { keyId } = await AppAttest.prepare({
cloudProjectNumber: '123456789012',
});
const attestation = await AppAttest.createAttestation({
keyId,
challenge: 'backend-registration-challenge',
});
const assertion = await AppAttest.createAssertion({
keyId,
payload: 'backend-request-payload',
});

token adalah token Play Integrity dan harus didekode di sisi server.

  1. Backend membuat sekali pakai challenge.
  2. App memanggil createAttestation({ keyId, challenge }).
  3. Backend memanggil Google decodeIntegrityToken API.
  4. Backend memverifikasi minimal:
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName sama dengan Android application id Anda
    • appIntegrity.certificateSha256Digest berisi release signing cert digest Anda
    • verdict integritas sesuai kebijakan keamanan Anda
  1. Backend membuat sekali pakai payload.
  2. App memanggil createAssertion({ keyId, payload }).
  3. Backend mendekode token dan memeriksa requestHash === base64url(SHA256(payload)).
  4. Terapkan pencegahan replay (single-use + TTL) dan kebijakan verifikasi integritas.
sequenceDiagram
participant App as Android App
participant Plugin as AppAttest plugin
participant PlaySDK as Play Integrity SDK
participant BE as Backend
participant Google as decodeIntegrityToken API
App->>Plugin: prepare(cloudProjectNumber)
Plugin->>PlaySDK: prepareIntegrityToken()
PlaySDK-->>Plugin: provider handle (keyId)
BE->>App: one-time challenge
App->>Plugin: createAttestation(keyId, challenge)
Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash)
PlaySDK-->>Plugin: integrity token
Plugin-->>App: token + platform + format + keyId
App->>BE: token + challenge + keyId
BE->>Google: decodeIntegrityToken(token)
Google-->>BE: decoded payload
BE->>BE: verify requestHash + app identity + verdicts
BE->>App: one-time payload
App->>Plugin: createAssertion(keyId, payload)
Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash)
PlaySDK-->>Plugin: integrity token
App->>BE: token + payload + keyId
BE->>Google: decodeIntegrityToken(token)
Google-->>BE: decoded payload
BE->>BE: verify requestHash + replay policy

Registrasi:

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"challenge": "string",
"token": "string"
}

Asersi:

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"payload": "string",
"token": "string"
}

Lanjutkan dari Android Setup & Backend Verification

Bagian berjudul “Lanjutkan dari Android Setup & Backend Verification”

Jika Anda menggunakan Setup Android & Verifikasi Backend untuk merencanakan keamanan dan kepatuhan, hubungkan dengan Menggunakan @capgo/capacitor-app-attest untuk kapabilitas native saat menggunakan @capgo/capacitor-app-attest, Enkripsi untuk detail implementasi pada Encryption, Kepatuhan untuk detail implementasi pada Compliance, Capgo Pemindai Keamanan untuk alur kerja produk di Capgo Security Scanner, dan Keamanan Capgo untuk alur kerja produk di Capgo Security.