Android セットアップ & バックエンド検証
このプラグインのインストール手順とフルマークダウンガイドのセットアッププロンプトをコピーしてください。
Androidネイティブシステム使用
セクション「Androidネイティブシステム使用」Androidでは、このプラグインは Google Play Integrity Standard API:
prepareIntegrityToken中prepare()requestStandardIntegrityTokenのためにcreateAttestation()とcreateAssertion()
- Google Play エコシステムを通じて配布されるAndroidアプリ
- デバイス上で利用可能なGoogle Play サービス
- Play Integrity API がアプリに有効化されている
- Google Cloud プロジェクト番号が設定されている
Google の設定
「Google の設定」というセクション- 有効化 Play Integrity API Google Cloud プロジェクト内で
- Open Play Console and configure Play Integrity access for your app.
- Provide
cloudProjectNumberをプラグインに提供します。
Capacitor 設定
Capacitor 設定plugins: { AppAttest: { cloudProjectNumber: '123456789012', },}また、オプションのメソッドで呼び出すごとに cloudProjectNumber クライアントフロー
クライアントフロー
クリップボードにコピー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 はPlay Integrityトークンであり、サーバーサイドでデコードする必要があります。
バックエンドワークフロー(Android)
バックエンドワークフロー(Android)(createAttestation)
登録(createAttestation)- バックエンドは1回限りの
challenge. - アプリは
createAttestation({ keyId, challenge }). - バックエンドはGoogle
decodeIntegrityTokenAPI. - バックエンドは、少なくとも以下を検証する必要があります:
requestDetails.requestHash === base64url(SHA256(challenge))appIntegrity.packageNameはAndroidアプリケーションIDと等しくなければなりません。appIntegrity.certificateSha256Digestはリリース署名証明書のハッシュと含まれている必要があります。- セキュリティポリシーと一致する整合性判定結果
Request protection (createAssertion)
セクション:Request protection (createAssertion)- バックエンドが一時
payload. - アプリが
createAssertion({ keyId, payload }). - バックエンドがトークンをデコードし、
requestHash === base64url(SHA256(payload)). - 再生防止(シングルユース+TTL)と整合性判定ポリシーを強制する。
Android スキーマ
セクション: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 policyバックエンドの最小限のペイロード契約
セクション:バックエンドの最小限のペイロード契約登録:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "challenge": "string", "token": "string"}アサーション:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "payload": "string", "token": "string"}Android セットアップとバックエンド検証から続けて
「Android セットアップとバックエンド検証から続けて」セクションCapacitor を使用している場合 Android セットアップとバックエンド検証 セキュリティとコンプライアンスを計画するには、Capacitor を Capacitor の @capgo/capacitor-app-attest を使用 Capacitor の @capgo/capacitor-app-attest のネイティブ機能 暗号化 暗号化の実装詳細について Compliance __CAPGO_KEEP_0__ セキュリティ スキャナー Capgo セキュリティ スキャナー製品ワークフローについて Capgo セキュリティ Capgo セキュリティ製品ワークフローについて for the product workflow in Capgo Security.