Aller au contenu

Prise en main

GitHub

Vous pouvez utiliser notre configuration assistée par IA pour installer le plugin. Ajoutez les skills Capgo à votre outil d'IA avec la commande suivante :

Fenêtre de terminal
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Utilisez ensuite le prompt suivant :

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-app-attest` plugin in my project.

Si vous préférez une installation manuelle, installez le plugin en exécutant les commandes suivantes et suivez les instructions spécifiques à chaque plateforme ci-dessous :

  1. Installer le package

    Fenêtre de terminal
    bun add @capgo/capacitor-app-attest
  2. Synchroniser les projets natifs

    Fenêtre de terminal
    bunx cap sync
  3. Configurer les prérequis de la plateforme

    • Complète Configuration iOS pour la capacité App Attest et le flux de vérification backend.
    • Complète Configuration Android pour Play Integrity Standard et le flux de vérification côté backend.
import { AppAttest } from '@capgo/capacitor-app-attest';
const support = await AppAttest.isSupported();
if (!support.isSupported) throw new Error('Attestation unavailable');
const prepared = await AppAttest.prepare();
const attestation = await AppAttest.createAttestation({
keyId: prepared.keyId,
challenge: serverNonce,
});
await sendAttestationToBackend(attestation);
const assertion = await AppAttest.createAssertion({
keyId: storedKeyId,
payload: requestHash,
});
  • Vérification côté serveur requise: ne vous fiez jamais uniquement aux blobs d’attestation sur l’appareil, validez-les sur votre serveur.
  • Numéro de projet Play Integrity: Android Standard API nécessite le numéro de projet Google Cloud indiqué dans le README.
  • Stockage des clés: utiliser storeKeyId() et effacées à la déconnexion pour éviter les clés obsolètes.

Ce plugin fournit une implémentation API multiplateforme tout en conservant la sécurité native :

  • iOS : Apple App Attest (DeviceCheck)
  • Android : Google Play Integrity Standard API
  • Aucun schéma de chiffrement côté client personnalisé
  • Sorties normalisées pour les vérifications backend
import { AppAttest } from '@capgo/capacitor-app-attest';
const support = await AppAttest.isSupported();
if (!support.isSupported) {
throw new Error(`Attestation not supported on ${support.platform}`);
}
const prepared = await AppAttest.prepare();
const registration = await AppAttest.createAttestation({
keyId: prepared.keyId,
challenge: 'backend-one-time-registration-challenge',
});
const assertion = await AppAttest.createAssertion({
keyId: prepared.keyId,
payload: 'backend-one-time-request-payload',
});
console.log(registration.platform, registration.format, registration.token);
console.log(assertion.platform, assertion.format, assertion.token);

createAttestation() et createAssertion() renvoient les mêmes champs clés sur iOS et Android :

ChampTypeDescription
platform'ios' | 'android' | 'web'Plateforme native ayant produit le token
formatAttestationFormatapple-app-attest ou google-play-integrity-standard
keyIdstringIdentifiant de clé/fournisseur utilisé pour l’attestation
tokenstringToken à vérifier sur votre backend

L'attestation n'est utile que si elle est vérifiée côté serveur.

  • Ne faites jamais confiance à un succès uniquement côté client.
  • Exigez des valeurs de challenge/payload à usage unique de votre backend.
  • Vérifier token, l’identité de l’app et les protections anti-rejeu dans la logique du backend.

Utilisez les guides backend spécifiques à la plateforme :

Si vous utilisez Prise en main 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.