Configurazione iOS e verifica backend
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Sistema nativo iOS utilizzato
Sezione intitolata “Sistema nativo iOS utilizzato”Su iOS, questo plugin utilizza il framework Apple App Attest presente nella DeviceCheck .
Requisiti
Sezione intitolata “Requisiti”- iOS 14+
- Dispositivo fisico consigliato per i flussi di validazione reali
- Target Xcode con capability App Attest abilitata
Xcode setup
Sezione intitolata “Configurazione Xcode”- Apri il target della tua app iOS in Xcode.
- Vai su Firma e Capabilities.
- Clicca su + Funzionalità e aggiungi App Attest.
Non sono necessarie permessi iOS personalizzati in Info.plist per App Attest stesso.
Flusso client
Sezione intitolata “Flusso client”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',});Invia attestation.token e assertion.token al tuo backend. Non validarli all'interno dell'app.
Workflow backend (iOS)
Sezione intitolata “Workflow backend (iOS)”Registrazione (createAttestation)
Sezione intitolata “Registrazione (createAttestation)”- Il backend crea un challenge monouso
challenge. - L'app chiama
createAttestation({ keyId, challenge }). - Il backend verifica l'attestazione App Attest:
- la catena di certificati è valida e ancorata ad Apple App Attest
- l'identità dell'app corrisponde alla tua app (
bundleId, team) clientDataHashcorrispondeSHA256(challenge)
- Memorizza lo stato della chiave del dispositivo (
keyId, chiave pubblica e metadati del verifier).
Protezione della richiesta (createAssertion)
Sezione intitolata “Protezione della richiesta (createAssertion)”- Il backend crea un challenge monouso
payload(o l'input dell'hash della richiesta canonica). - L'app chiama
createAssertion({ keyId, payload }). - Il backend verifica la firma dell'assertion con il materiale della chiave precedentemente salvato.
- Enforce replay protection and nonce TTL checks.
Schema iOS
Sezione intitolata “Schema 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 policyContratto payload backend minimo
Sezione: “Contratto minimo del payload backend”Registrazione:
{ "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"}Continua da iOS Setup & Backend Verification
Sezione intitolata “Continua da iOS Setup & Backend Verification”Se stai usando Configurazione iOS & Verifica Backend per pianificare sicurezza e compliance, collegalo a Utilizzo di @capgo/capacitor-app-attest per la funzionalità nativa in Utilizzo di @capgo/capacitor-app-attest, Crittografia per i dettagli di implementazione della crittografia, Conformità per i dettagli di implementazione in Compliance, Security Scanner di Capgo per il workflow di prodotto in Capgo Security Scanner, e Sicurezza Capgo per il workflow di prodotto in Capgo Security.