Androidセットアップ & バックエンド検証
__CAPGO_KEEP_0__
Androidネイティブシステムを使用
「Androidネイティブシステムを使用」というセクションAndroidでは、このプラグインは Google Play Integrity Standard API:
prepareIntegrityTokenの間prepare()requestStandardIntegrityTokenのためにcreateAttestation()そしてcreateAssertion()
- Google Play エコシステムを通じて配布されるAndroidアプリ
- デバイス上で利用可能なGoogle Play サービス
- アプリにプレイ インテグリティ API を有効にします。
- Google Cloud プロジェクト番号が設定されました。
Google の設定
「Google の設定」- 有効 プレイ インテグリティ API Google Cloud プロジェクトで。
- Play Console にアクセスし、アプリのプレイ インテグリティ アクセスを設定します。
- プラグインに提供します。
cloudProjectNumber__CAPGO_KEEP_0__ の設定
「Capacitor の設定」
Section titled “Capacitor config”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)
登録(createAttestation)- バックエンドは一度限りの
challenge. - アプリが呼び出し
createAttestation({ keyId, challenge }). - バックエンドはGoogleの
decodeIntegrityTokenAPI. - バックエンドは最低でも以下を検証
requestDetails.requestHash === base64url(SHA256(challenge))appIntegrity.packageNameAndroidアプリケーションIDと等しいappIntegrity.certificateSha256Digestリリース署名証明書のダイジェストを含む- セキュリティポリシーに合致する整合性判定
要求保護 (createAssertion)
セクション「要求保護 (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 セットアップ & バックエンド検証」から続けてくださいCapgo を使用している場合 Android セットアップ & バックエンド検証 セキュリティとコンプライアンスの計画に使用する場合、Capgo を Capgo の @capgo/capacitor-app-attest を使用 Capgo の @capgo/capacitor-app-attest のネイティブ機能 暗号化 暗号化の実装詳細 コンプライアンス コンプライアンスの実装詳細 Capgo Security Scanner Capgo セキュリティ スキャナーの製品ワークフロー Capgo セキュリティ Capgo セキュリティの製品ワークフロー用