Saltar al contenido

Primeros pasos

GitHub

Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:

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

Luego usa el siguiente prompt:

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

Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:

  1. Instala el paquete

    Ventana de terminal
    bun add @capgo/capacitor-app-attest
  2. Sincronizar proyectos nativos

    Ventana de terminal
    bunx cap sync
  3. Configura los requisitos de la plataforma

    • Completa la Configurar iOS para la capacidad de App Attest y el flujo de verificación en el backend.
    • Completa la Configuración de Android para Play Integrity Standard y el flujo de verificación en el 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,
});
  • Requiere verificación en el backend: nunca confíes solo en los blobs de attestation del dispositivo, valídalos en tu servidor.
  • Número de proyecto de Play Integrity: el API estándar de Android requiere el número de proyecto de Google Cloud del README.
  • Key storage: usa storeKeyId() y limpiar al cerrar sesión para evitar llaves obsoletas.

Este plugin proporciona un API multiplataforma y mantiene la seguridad nativa de la plataforma:

  • iOS: Apple App Attest (DeviceCheck)
  • Android: Estándar de Google Play Integrity API
  • No custom client-side crypto scheme
  • Outputs normalizados para verificaciones en el 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() y createAssertion() devuelven los mismos campos clave en iOS y Android:

CampoTipoDescripción
platform'ios' | 'android' | 'web'Plataforma nativa que generó el token
formatAttestationFormatapple-app-attest o google-play-integrity-standard
keyIdstringHandle de la clave/proveedor usado para la atestación
tokenstringToken para verificar en tu backend

La atestación solo es útil si se verifica en el servidor.

  • Nunca confíes solo en el éxito del cliente.
  • Exige valores de challenge/payload de un solo uso desde tu backend.
  • Verifica token, la identidad de la app y protecciones contra replay en la lógica del backend.

Usa las guías de backend según la plataforma:

Si estás usando Primeros pasos para planificar la seguridad y el cumplimiento, conéctalo con Uso de @capgo/capacitor-app-attest para la capacidad nativa en Uso de @capgo/capacitor-app-attest, Cifrado para los detalles de implementación en Cifrado, Cumplimiento para los detalles de implementación en Cumplimiento, Escáner de seguridad de Capgo para el flujo de trabajo del producto en Capgo Security Scanner, y Seguridad de Capgo para el flujo de trabajo del producto en Capgo Security.