Configuration iOS et vérification backend
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Système natif iOS utilisé
Section intitulée « Système natif iOS utilisé »Sur iOS, ce plugin utilise le framework Apple App Attest issu de la DeviceCheck .
Prérequis
Section intitulée « Prérequis »- iOS 14+
- Appareil physique recommandé pour les flux de validation réels
- Cible Xcode avec la capacité App Attest activée
Configuration Xcode
Section intitulée « Configuration Xcode »- Ouvrez votre cible d’application iOS dans Xcode.
- Accéder à 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 vers votre backend. Ne les validez pas dans l’app.
Workflow backend (iOS)
Section intitulée « Workflow backend (iOS) »Enregistrement (createAttestation)
Section intitulée « Enregistrement (createAttestation) »- Le backend crée un jeton à usage unique
challenge. - L'app appelle
createAttestation({ keyId, challenge }). - Le backend vérifie l’attestation App Attest :
- la chaîne de certificats est valide et ancrée dans Apple App Attest
- l'identité de l'app correspond à votre app (
bundleId, l'équipe) clientDataHashcorrespond àSHA256(challenge)
- Stocker l'état de la clé de l'appareil (
keyId, la clé publique et les métadonnées du vérificateur).
Protection de la requête (createAssertion)
Section intitulée « Protection de la requête (createAssertion) »- Le backend crée un jeton à usage unique
payload(ou l'entrée du hash de requête canonique). - L'app appelle
createAssertion({ keyId, payload }). - Le backend vérifie la signature de l'assertion avec les clés stockées précédemment.
- Appliquez la protection anti-replay et les contrôles TTL des nonces.
Schéma iOS
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 minimal de payload backend
Section intitulée « Contrat minimal de payload backend »Enregistrement :
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Assertion :
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continuez à partir de la section Configuration iOS & vérification backend
Section intitulée « Continuez à partir de la section Configuration iOS & vérification backend »Si vous utilisez Configuration iOS & vérification côté serveur pour planifier la sécurité et la conformité, connectez-l’à Utiliser @capgo/capacitor-app-attest pour la capacité native dans la page « Utiliser @capgo/capacitor-app-attest », Chiffrement pour les détails d'implémentation du chiffrement, Conformité pour les détails d'implémentation de la conformité, Scanner de sécurité Capgo pour le workflow produit dans Capgo Security Scanner, et Capgo et la sécurité pour le workflow produit dans Capgo Security.