Setup iOS & Verifikasi Backend
Salin prompt setup yang berisi langkah install dan panduan markdown lengkap untuk plugin ini.
Sistem native iOS yang digunakan
Bagian berjudul “Sistem native iOS yang digunakan”Pada iOS, plugin ini menggunakan Apple App Attest dari DeviceCheck framework.
Persyaratan
Bagian berjudul “Persyaratan”- iOS 14+
- Disarankan menggunakan perangkat fisik untuk alur validasi nyata
- Target Xcode dengan capability App Attest aktif
Setup Xcode
Bagian berjudul “Xcode setup”- Buka target aplikasi iOS Anda di Xcode.
- Buka Signing & Capabilities.
- Klik + Kapabilitas dan tambahkan App Attest Capgo.
Tidak perlu izin iOS khusus di Info.plist untuk App Attest itu sendiri.
Alur client
Bagian berjudul “Client flow”import { AppAttest } from '@capgo/capacitor-app-attest';
const { keyId } = await AppAttest.prepare();
const attestation = await AppAttest.createAttestation({ keyId, challenge: 'backend-registration-challenge',});
const assertion = await AppAttest.createAssertion({ keyId, payload: 'backend-request-payload',});Kirim attestation.token dan assertion.token ke backend Anda. Jangan validasi di aplikasi.
Workflow backend (iOS)
Bagian berjudul “Backend workflow (iOS)”Registrasi (createAttestation)
Bagian berjudul “Registrasi (createAttestation)”- Backend membuat sekali pakai
challenge. - App memanggil
createAttestation({ keyId, challenge }). - Backend memverifikasi attestation App Attest:
- rantai sertifikat valid dan terhubung ke Apple App Attest
- identitas aplikasi sesuai dengan aplikasi Anda (
bundleId, team) clientDataHashcocokSHA256(challenge)
- Simpan status kunci perangkat (
keyId, public key, dan metadata verifier).
Permintaan proteksi (createAssertion)
Bagian berjudul “Request protection (createAssertion)”- Backend membuat sekali pakai
payload(atau input hash request kanonik). - App memanggil
createAssertion({ keyId, payload }). - Backend memverifikasi tanda tangan assertion dengan material kunci yang telah disimpan sebelumnya.
- Terapkan proteksi replay dan pengecekan nonce TTL.
Skema iOS
Bagian berjudul “iOS schema”sequenceDiagram participant App as iOS App participant Plugin as AppAttest plugin participant Apple as Apple App Attest participant BE as Backend
BE->>App: one-time challenge App->>Plugin: prepare() Plugin->>Apple: generateKey() Apple-->>Plugin: keyId
App->>Plugin: createAttestation(keyId, challenge) Plugin->>Apple: attestKey(keyId, SHA256(challenge)) Apple-->>Plugin: attestation token Plugin-->>App: token + platform + format + keyId App->>BE: token + challenge + keyId BE->>BE: verify Apple attestation rules
BE->>App: one-time payload App->>Plugin: createAssertion(keyId, payload) Plugin->>Apple: generateAssertion(keyId, SHA256(payload)) Apple-->>Plugin: assertion token Plugin-->>App: token + platform + format + keyId App->>BE: token + payload + keyId BE->>BE: verify signature + replay policyKontrak payload backend minimal
Bagian berjudul “Minimal backend payload contract”Registrasi:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Assertion:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Lanjutkan dari iOS Setup & Backend Verification
Bagian berjudul “Keep going from iOS Setup & Backend Verification”Jika Anda menggunakan Setup iOS & 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.