Configurazione iOS & Verifica Backend
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Utilizza il sistema nativo iOS
Sottosezione intitolata “Utilizza il sistema nativo iOS”Sul iOS, questo plugin utilizza Apple App Attest dal DeviceCheck framework.
Requisiti
Sottosezione intitolata “Requisiti”- iOS 14+
- Dispositivo fisico consigliato per flussi di validazione reali
- Target Xcode con la capacità App Attest abilitata
Impostazione Xcode
Sezione intitolata “Configurazione Xcode”- Apri il tuo target iOS in Xcode.
- Vai a Credenziali e Capacità.
- Clicca e aggiungi App Attest e aggiungi.
No sono richieste autorizzazioni iOS personalizzate in Info.plist per App Attest stesso.
Flusso del client
Sottosezione intitolata “Flusso 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 a tuo backend. Non validare in app.
Flusso di backend (iOS)
Sottosezione intitolata “Flusso di backend (iOS)”Registration (createAttestation)
Sottosezione intitolata “Registrazione (createAttestation)”- Backend crea una chiave univoca
challenge. - App chiama
createAttestation({ keyId, challenge }). - Backend verifica l'attestazione App Attest:
- la catena di certificati è valida e annullata a Apple App Attest
- l'identità dell'app corrisponde alla tua app (
bundleIdteam) clientDataHashcorrispondeSHA256(challenge)
- lo stato della chiave del negozio (
keyIdchiave pubblica, e metadati del verificatore).
Richiesta di protezione (createAssertion)createAssertion)
Sezione intitolata “Richiesta di protezione (createAssertion)”- Backend crea una chiave univoca
payload(o hash di richiesta canonico di input). - Chiamata dell'app
createAssertion({ keyId, payload }). - Il backend verifica la firma dell'asserzione con il materiale di chiave precedentemente memorizzato.
- 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 di payload backend minimo
Sezione intitolata “Contratto di payload backend minimo”Registrazione:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Affermazione:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continua dall'installazione di iOS e verifica del backend
Sezione intitolata “Continua dall'installazione di iOS e verifica del backend”Se stai utilizzando Installazione di iOS e verifica del backend per pianificare la sicurezza e la conformità, connettilo con Utilizza @capgo/capacitor-app-attest per la capacità nativa in Utilizza @capgo/capacitor-app-attest Crittografia per il dettaglio di implementazione in Crittografia Conformità per il dettaglio di implementazione in Conformità Capgo Scansione di Sicurezza per il workflow del prodotto in Capgo Scanner di Sicurezza, e Capgo Sicurezza per il flusso di lavoro del prodotto in Capgo Sicurezza.