Setup iOS & Verifikasi Backend
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Sistem iOS asli digunakan
Bab berjudul “Sistem iOS asli digunakan”Pada iOS, plugin ini menggunakan Apple App Attest dari DeviceCheck framework.
Persyaratan
Bab berjudul “Persyaratan”- iOS 14+
- Perangkat fisik direkomendasikan untuk alur validasi nyata
- Target Xcode dengan kemampuan App Attest diaktifkan
Pengaturan Xcode
Judul bagian “Pengaturan Xcode”- Buka target aplikasi iOS Anda di Xcode.
- Lihat Tanda Tangan & Kemampuan.
- Klik + Kemampuan dan tambahkan App Attest.
Tidak ada izin iOS khusus yang diperlukan di Info.plist untuk App Attest itu sendiri.
Alur Klien
Judul bagian “Alur Klien”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 mereka di aplikasi.
Alur Backend (iOS)
Judul bagian “Alur Backend (iOS)”Pendaftaran (createAttestation)
Judul bagian “Pendaftaran (createAttestation)”- Backend membuat satu kali
challenge. - App memanggil
createAttestation({ keyId, challenge }). - Backend memverifikasi Attest App:
- rantai sertifikat valid dan diakar ke Apple App Attest
- identitas aplikasi cocok dengan aplikasi Anda (
bundleId, tim) clientDataHashcocokSHA256(challenge)
- Simpan status kunci perangkat (
keyId, kunci publik, dan metadata verifier).
Minta perlindungan (createAssertion)
Bagian berjudul “Minta perlindungan (createAssertion)”- Backend membuat satu kali
payload(atau hash permintaan kanonikal input). - Panggilan Aplikasi
createAssertion({ keyId, payload }). - Backend memverifikasi tanda tangan asertasi dengan materi kunci yang disimpan sebelumnya.
- Menggunakan perlindungan ulang dan pengecekan TTL nonce.
Schemas iOS
Judul bagian “Schemas iOS”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
Judul bagian “Kontrak payload backend minimal”Pendaftaran:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Asertasi:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Lanjutkan dari Pengaturan iOS & Verifikasi Backend
Judul Bagian “Lanjutkan dari Pengaturan iOS & Verifikasi Backend”Jika Anda menggunakan Pengaturan iOS & Verifikasi Backend untuk merencanakan keamanan dan kewenangan, hubungkannya dengan Menggunakan @capgo/capacitor-app-attest untuk kemampuan asli dalam Menggunakan @capgo/capacitor-app-attest, Enkripsi untuk detail implementasi dalam Enkripsi, Kewenangan untuk detail implementasi dalam Kewenangan Scanner Keamanan Capgo untuk alur kerja produk di Scanner Keamanan Capgo Scanner Keamanan Capgo untuk alur kerja produk di Scanner Keamanan Capgo