Configuration iOS & Vérification du backend
Copiez une invitation de configuration avec les étapes d'installation et la guide markdown complète pour ce plug-in.
Utilise le système natif iOS
Section intitulée « Utilisation du système natif iOS »Sur iOS, ce plugin utilise Apple App Attest à partir de DeviceCheck le framework.
Exigences
Section intitulée « Exigences »- iOS 14+
- Appareil physique recommandé pour les flux de validation réelle
- Cible Xcode avec la capacité App Attest activée
Configuration Xcode
Section intitulée « Configuration Xcode »- Ouvrez votre cible d'application iOS dans Xcode.
- Allez à Signature et capacités.
- Cliquez + Capacité et ajoutez App Attest.
Aucune permission iOS personnalisée n'est requise dans Info.plist pour App Attest lui-même.
Flux client
Section intitulée « Flux 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',});Envoyer attestation.token et assertion.token to your backend. Do not validate them in the app.
Flux de travail Backend (iOS)
Flux de travail Backend (iOS)Registration (createAttestation)
Enregistrement (création d'attestation)- Backend crée une attestation unique
challenge. - App calls
createAttestation({ keyId, challenge }). - Le Backend vérifie l'attestation d'App Attest :
- La chaîne de certificats est valide et ancrée à Apple App Attest
- L'identité de l'application correspond à votre application (
bundleIdéquipe) clientDataHashmatchesSHA256(challenge)
- Stockez l'état de la clé de l'appareil (
keyId, clé publique et métadonnées de vérificateur).
Demandez une protection (createAssertion)createAssertion)
Sous-section intitulée « Demandez une protection (createAssertion) »- Le serveur crée une clé temporaire
payload(ou une fonction de hachage de requête canonique). - App calls
createAssertion({ keyId, payload }). - Le serveur vérifie la signature de l'assertion avec le matériel de clé stocké précédemment.
- Protégez contre les répliques et vérifiez les TTL des nonces.
Schéma iOS
Sous-section intitulée « Schéma 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 policyContrat de payload backend minimal
Section intitulée « Contrat de payload backend minimal »Inscription :
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Affirmation :
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continuez de la configuration iOS & vérification backend
Section intitulée « Continuez de la configuration iOS & vérification backend »Si vous utilisez Configuration iOS & vérification backend pour planifier la sécurité et la conformité, connectez-l’avec Utilisez @capgo/capacitor-app-attest pour la capacité native dans Utilisez @capgo/capacitor-app-attest, Chiffrement pour le détail d'implémentation dans Chiffrement, Conformité pour le détail d'implémentation dans Conformité, Capgo Scanner de sécurité pour le flux de travail du produit dans Capgo Scanner de sécurité. Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité.