Setup & Verifica Backend iOS
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Sistema nativo iOS utilizzato
Sottosezione intitolata “Sistema nativo iOS utilizzato”In iOS, questo plugin utilizza Apple App Attest dal DeviceCheck framework.
Requisiti
Sottosezione intitolata “Requisiti”- iOS 14+
- Eseguire la validazione reale è raccomandato su un dispositivo fisico
- Target Xcode con capacità App Attest abilitata
Configurazione Xcode
Sottosezione intitolata “Configurazione Xcode”- Apre il tuo target iOS in Xcode.
- Vai a Autenticazione e Capacità.
- Clicca + Capacità E aggiungi App Attest.
No sono richieste alcune autorizzazioni iOS personalizzate in Info.plist per App Attest stesso.
Ciclo del client
Sottosezione intitolata “Ciclo del 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',});Inviare attestation.token e assertion.token al tuo backend. Non validare questi dati nell'app.
Ciclo di lavoro del backend (iOS)
Sottosezione intitolata “Ciclo di lavoro del backend (iOS)”Registrazione (createAttestation)
Sottosezione intitolata “Registrazione (createAttestation)”- Backend crea una chiave univoca
challenge. - L'app chiama
createAttestation({ keyId, challenge }). - Backend verifica l'attestazione App Attest:
- la catena di certificati è valida e ancorata a 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 verificatore).
Richiedi protezione (createAssertion)
Sezione intitolata “Richiedi protezione (createAssertion)”- Backend crea una chiave univoca
payload(o hash di richiesta canonico (input). - Chiamate dell'app
createAssertion({ keyId, payload }). - Il backend verifica la firma dell'asserzione con il materiale di chiave precedentemente memorizzato.
- Esegui la protezione contro la riproposta e le verifiche TTL del nonce.
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 di payload backend minimo
Sezione intitolata “Contratto di payload backend minimo”Registrazione:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Assertione:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continua da iOS Setup & Verifica del backend
Sezione intitolata “Continua da iOS Setup & Verifica del backend”Se stai utilizzando Setup di iOS & Verifica del backend per pianificare la sicurezza e la conformità, connettilo con Utilizzando @capgo/capacitor-app-attest per la capacità nativa in Utilizzando @capgo/capacitor-app-attest, Crittografia per il dettaglio di implementazione in Crittografia, Conformità per il dettaglio di implementazione in Conformità, Capgo Security Scanner for the product workflow in Capgo Security Scanner, and Capgo Security for the product workflow in Capgo Security.