Passer à la navigation

Configuration Android & vérification du backend

GitHub

Sur Android, ce plugin utilise La norme Google Play Integrity Standard 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
  • Play Integrity API activé pour votre application
  • Numéro de projet Google Cloud configuré
  1. Activer Play Integrity API sur votre projet Cloud Google.
  2. Ouvrez le console Play et configurez l'accès à l'intégrité Play pour votre application.
  3. Fournir cloudProjectNumber aux paramètres du plugin.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

par appel dans les options de méthode. 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 s'agit d'un jeton d'intégrité Play et doit être décodé côté serveur.

Flux de travail de l'arrière-plan (Android)

Flux de travail de l'arrière-plan (Android)

Inscription (createAttestation)

Enregistrement (création d'attestation)
  1. L'arrière-plan crée un jeton challenge.
  2. App calls 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 votre certificat de signature de version digest
    • integrity verdicts match your security policy

Demandez une protection (createAssertion)createAssertion)

Section intitulée « Demandez une protection (createAssertion) »
  1. Le serveur crée un jeton temporaire payload.
  2. App calls createAssertion({ keyId, payload }).
  3. Le serveur décode le jeton et vérifie requestHash === base64url(SHA256(payload)).
  4. Prévenir la reprise (utilisation unique + TTL) et la politique de verdict 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

Enregistrement :

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

Tout affirmer :

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

Continuer depuis la configuration Android et la vérification du backend

Section intitulée “Continuez depuis la configuration Android et la vérification du backend”

Si vous utilisez Configuration Android et vérification du backend pour planifier la sécurité et la conformité, connectez-l’avec Utilisation de @capgo/capacitor-app-attest pour la capacité native dans l'utilisation de @capgo/capacitor-app-attest, Chiffrement pour le détail d'implémentation dans Chiffrement, Conformité pour le détail d'implémentation dans Conformité, Capgo Scanner de sécurité pour le flux de travail du produit dans Capgo Scanner de sécurité. Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité.