Configuración de Android y verificación del backend
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Sistema nativo de Android utilizado
Sección titulada “Sistema nativo de Android utilizado”En Android, este plugin utiliza Estándar de Google Play Integrity API:
prepareIntegrityTokenduranteprepare()requestStandardIntegrityTokenparacreateAttestation()ycreateAssertion()
Requisitos
Sección titulada “Requisitos”- App de Android distribuida mediante el ecosistema de Google Play
- Servicios de Google Play disponibles en el dispositivo
- Play Integrity API habilitada para tu app
- Número de proyecto de Google Cloud configurado
Configuración de Google
Sección titulada “Configuración de Google”- Activar Play Integrity API en tu proyecto de Google Cloud.
- Abre Play Console y configura el acceso de tu app a Play Integrity.
- Proporciona
cloudProjectNumberal plugin.
la config de Capacitor
Sección titulada “Configuración de Capacitor”plugins: { AppAttest: { cloudProjectNumber: '123456789012', },}También puedes pasar cloudProjectNumber por llamada en las opciones del método.
Flujo del cliente
Sección titulada “Flujo del cliente”import { AppAttest } from '@capgo/capacitor-app-attest';
const { keyId } = await AppAttest.prepare({ cloudProjectNumber: '123456789012',});
const attestation = await AppAttest.createAttestation({ keyId, challenge: 'backend-registration-challenge',});
const assertion = await AppAttest.createAssertion({ keyId, payload: 'backend-request-payload',});token es un token de Play Integrity y debe decodificarse en el servidor.
Flujo de trabajo del backend (Android)
Sección titulada “Flujo de trabajo del backend (Android)”Registro (createAttestation)
Sección titulada “Registro (createAttestation)”- El backend crea uno solo
challenge. - La app llama a
createAttestation({ keyId, challenge }). - El backend llama a Google
decodeIntegrityTokenAPI. - El backend verifica al menos:
requestDetails.requestHash === base64url(SHA256(challenge))appIntegrity.packageNamecoincide con el ID de tu app AndroidappIntegrity.certificateSha256Digestcontiene el digest de tu certificado de firma de release- los veredictos de integridad coinciden con tu política de seguridad
Solicitar protección (createAssertion)
Sección titulada “Solicitar protección (createAssertion)”- El backend crea uno solo
payload. - La app llama a
createAssertion({ keyId, payload }). - El backend decodifica el token y verifica
requestHash === base64url(SHA256(payload)). - Aplica la prevención de replay (un solo uso + TTL) y la política de integridad.
Esquema de Android
Sección titulada “Esquema de Android”sequenceDiagram participant App as Android App participant Plugin as AppAttest plugin participant PlaySDK as Play Integrity SDK participant BE as Backend participant Google as decodeIntegrityToken API
App->>Plugin: prepare(cloudProjectNumber) Plugin->>PlaySDK: prepareIntegrityToken() PlaySDK-->>Plugin: provider handle (keyId)
BE->>App: one-time challenge App->>Plugin: createAttestation(keyId, challenge) Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash) PlaySDK-->>Plugin: integrity token Plugin-->>App: token + platform + format + keyId App->>BE: token + challenge + keyId BE->>Google: decodeIntegrityToken(token) Google-->>BE: decoded payload BE->>BE: verify requestHash + app identity + verdicts
BE->>App: one-time payload App->>Plugin: createAssertion(keyId, payload) Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash) PlaySDK-->>Plugin: integrity token App->>BE: token + payload + keyId BE->>Google: decodeIntegrityToken(token) Google-->>BE: decoded payload BE->>BE: verify requestHash + replay policyContrato mínimo de payload del backend
Sección titulada “Contrato mínimo de payload del backend”Registration:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "challenge": "string", "token": "string"}Aserción:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "payload": "string", "token": "string"}Continúa desde Configuración de Android y verificación del backend
Sección titulada “Continúa desde Configuración de Android y verificación del backend”Si estás usando Configuración de Android y verificación del backend 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.