Configuración de iOS y Verificación de Backend
Copia un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Se utiliza el sistema nativo de iOS
Sección titulada “Se utiliza el sistema nativo de iOS”En iOS, este plugin utiliza Apple App Attest desde el DeviceCheck framework.
Requisitos
Sección titulada “Requisitos”- iOS 14+
- Se recomienda un dispositivo físico para flujos de validación reales
- Objetivo de Xcode con la capacidad de App Attest habilitada
Configuración de Xcode
Título de la sección “Configuración de Xcode”- Abra su objetivo de aplicación iOS en Xcode.
- Ir a Identificación y capacidades.
- Haga clic + Capacidad y agregar App Attest.
No se requieren permisos iOS personalizados en Info.plist para App Attest en sí.
Flujo del cliente
Sección titulada “Flujo del cliente”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',});Enviar attestation.token y assertion.token a su backend. No los valide en la aplicación.
Flujo de backend (iOS)
Sección titulada “Flujo de backend (iOS)”Registro (createAttestation)
Sección titulada “Registro (createAttestation)”- Crea un certificado de una sola vez
challenge. - La aplicación llama
createAttestation({ keyId, challenge }). - El backend verifica la attestación de App Attest:
- La cadena de certificados es válida y está anclada a Apple App Attest
- La identidad de la aplicación coincide con tu aplicación (
bundleId, equipo) clientDataHashcoincideSHA256(challenge)
- Almacena el estado de la clave del dispositivo (
keyId, clave pública y metadatos del verificador).
Protege la solicitud (createAssertion)
Sección titulada “Protege la solicitud (createAssertion)”- El backend crea un certificado de una sola vez
payload(o hash de solicitud canónica de entrada). - Llamadas de la aplicación
createAssertion({ keyId, payload }). - Verifica el backend la firma de la afirmación con el material de clave almacenado previamente.
- Proteja contra retransmisiones y compruebe TTL de nonce.
esquema de iOS
Sección titulada “esquema de 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 policyContrato de pago de backend mínimo
Sección titulada “contrato de pago de backend mínimo”Registro:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Afirmación:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continuar desde la configuración de iOS y la verificación del backend
Título de la sección “Continuar desde la configuración de iOS y la verificación del backend”Si estás utilizando Configuración de iOS y verificación del backend para planificar la seguridad y la conformidad, conecta con Usando @capgo/capacitor-app-attest para la capacidad nativa en Usando @capgo/capacitor-app-attest Cifrado para el detalle de implementación en Cifrado Conformidad para el detalle de implementación en Conformidad Capgo Security Scanner for the product workflow in Capgo Security Scanner, and Capgo Security for the product workflow in Capgo Security.