Passer à la navigation

Setup & Verification Backend Android

GitHub

Sur Android, ce plugin utilise La norme de l'intégrité de Google Play API:

  • prepareIntegrityToken pendant prepare()
  • requestStandardIntegrityToken pour createAttestation() et createAssertion()
  • Application Android distribuée à travers l'écosystème Google Play
  • Services Google Play disponibles sur le dispositif
  • Intégrité Play API activée pour votre application
  • Numéro de projet Cloud Google configuré
  1. Activer Intégrité Play API dans votre projet Cloud Google.
  2. Ouvrez le console de jeu et configurez l'accès à l'intégrité de Play pour votre application.
  3. Fournir cloudProjectNumber au plugin.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

Vous pouvez également passer cloudProjectNumber par appel dans les options de méthode.

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 est un jeton d'intégrité Play et doit être décodé côté serveur.

  1. Crée un jeton temporaire challenge.
  2. L'application appelle createAttestation({ keyId, challenge }).
  3. L'arrière-plan appelle Google decodeIntegrityToken API.
  4. L'arrière-plan vérifie au minimum :
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName est égal à votre identifiant d'application Android
    • appIntegrity.certificateSha256Digest contient le digest de certificat de signature de version de sortie
    • Les verdicts d'intégrité correspondent à votre politique de sécurité
  1. Le backend crée un jeton temporaire payload.
  2. L'application appelle createAssertion({ keyId, payload }).
  3. Le backend décode le jeton et vérifie requestHash === base64url(SHA256(payload)).
  4. Appliquez la prévention de la reprise (utilisation unique + TTL) et la politique de verdicts d'intégrité.
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 policy

Inscription :

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"challenge": "string",
"token": "string"
}

Énoncé d'assertion :

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"payload": "string",
"token": "string"
}

Continuez de l'Android Setup et de la vérification de l'arrière-plan

Titre de la section « Continuez de l'Android Setup et de la vérification de l'arrière-plan »

Si vous utilisez Configuration de l'Android et vérification de l'arrière-plan pour planifier la sécurité et la conformité, connectez-le à En utilisant @capgo/capacitor-app-attest pour la capacité native en utilisant En utilisant @capgo/capacitor-app-attest, Chiffrement pour les détails d'implémentation dans l'Encryption, Conformité pour les détails d'implémentation dans la Conformité, Capgo Scanner de sécurité pour le flux de travail du produit dans Capgo Scanner de sécurité, et Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité.