__CAPGO_KEEP_0__
Copia un prompt di installazione 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 un dispositivo fisico per le flussi di validazione reali
- Target Xcode con capacità App Attest abilitata
Configurazione Xcode
Sezione intitolata “Configurazione Xcode”- Apri il tuo target di app iOS in Xcode.
- Vai a Sottoscrizione e capacità.
- Clicca Capacità e aggiungi App Attest.
Nessuna autorizzazione iOS personalizzata è richiesta 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 questo modo.
Flusso di lavoro del backend (iOS)
Sezione intitolata “Flusso di lavoro del backend (iOS)”Registrazione (createAttestation)
Sezione intitolata “Registrazione (createAttestation)”- Il backend crea un codice unico
challenge. - L'app chiama
createAttestation({ keyId, challenge }). - Il backend verifica l'attestazione App Attest dell'app:
- la catena di certificati è valida e annulla a Apple App Attest
- l'identità dell'app corrisponde alla tua app (
bundleId, squadra) clientDataHashmatchesSHA256(challenge)
- Memorizza stato della chiave dispositivo (
keyId, chiave pubblica e metadati di verifica).
Richiesta protezione (createAssertion)
Sezione intitolata “Richiesta protezione (createAssertion)”- Backend crea una richiesta unica
payload(o input hash di richiesta canonico). - L'app chiama
createAssertion({ keyId, payload }). - Backend verifica firma di attestazione con materiale di chiave precedentemente memorizzato.
- Applica protezione contro la riproposta e controlli TTL per 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"}Continua da iOS Setup & Verifica backend
Sezione intitolata “Continua da iOS Setup & Verifica backend”Se stai utilizzando iOS Setup & Verifica backend per pianificare la sicurezza e la conformità, connettilo con Utilizzare @capgo/capacitor-app-attest per la capacità nativa in Utilizzare @capgo/capacitor-app-attest Crittografia per il dettaglio di implementazione in Crittografia Conformità per il dettaglio di implementazione in Conformità Capgo Scanner di Sicurezza per il workflow del prodotto in Capgo Scanner di Sicurezza, e Capgo Sicurezza per il workflow del prodotto in Capgo Sicurezza.