iOS Setup & Verifica del 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 Apple App Attest dal DeviceCheck framework.
Requisiti
Sezione intitolata “Requisiti”- iOS 14+
- Si consiglia di utilizzare un dispositivo fisico per le flussi di validazione reali
- Impostazione di destinazione Xcode con capacità App Attest abilitata
Impostazione Xcode
Sezione intitolata “Impostazione Xcode”- Apri il tuo target iOS in Xcode.
- Vai a Firma e Capacità.
- Clicca + Capacità e aggiungi App Attest.
Non sono richieste alcune autorizzazioni iOS personalizzate in Info.plist per App Attest stesso.
Flusso del client
Sezione 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',});Invia attestation.token e assertion.token al tuo backend. Non validare in app.
Flusso di lavoro backend (iOS)
Sezione intitolata “Flusso di lavoro backend (iOS)”Registrazione (createAttestation)
Sezione intitolata “Registrazione (createAttestation)”- Backend crea una chiave univoca
challenge. - L'applicaazione chiama
createAttestation({ keyId, challenge }). - Backend verifica l'attestazione App Attest dell'applicazione:
- la catena di certificati è valida e ancorata a Apple App Attest
- l'identità dell'applicaazione corrisponde al tuo app (
bundleId, team) clientDataHashcorrispondeSHA256(challenge)
- Memorizza lo stato della chiave dispositivo (
keyId, chiave pubblica e metadati del verificatore).
Richiedi protezione (createAssertion)
Sezione intitolata “Protezione della richiesta (crea assertione)”- Backend crea una richiesta unica
payload(o input hash di richiesta canonico). - L'app chiama
createAssertion({ keyId, payload }). - Backend verifica la firma dell'assertione con il materiale di chiave precedentemente memorizzato.
- Applica protezione contro la riproduzione e controlla 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"}Affermazione:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Prosegui dalla configurazione di iOS e dalla verifica del backend
Sezione intitolata “Prosegui dalla configurazione di iOS e dalla verifica del backend”Se stai utilizzando Configurazione 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 Scansionatore di sicurezza per il flusso di lavoro del prodotto in Capgo Scansionatore di sicurezza, e Capgo Sicurezza per il flusso di lavoro del prodotto in Capgo Sicurezza.