Androidセットアップとバックエンド検証
インストール手順と、このプラグインの完全なMarkdownガイドを含むセットアッププロンプトをコピーします。
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 プロジェクト内で設定します。
- Play Console を開き、アプリの Play Integrity アクセス権を設定してください。
- を
cloudProjectNumberプラグインに渡します。
Capacitor の設定
「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)」セクション- バックエンドで使い捨ての
challenge. - アプリが呼び出す
createAttestation({ keyId, challenge }). - バックエンドがGoogleを呼び出す
decodeIntegrityTokenAPI. - バックエンドは少なくとも次を検証します:
requestDetails.requestHash === base64url(SHA256(challenge))appIntegrity.packageNameAndroidアプリケーションIDと一致することappIntegrity.certificateSha256Digestリリース署名証明書のダイジェストを含むこと- integrity verdictsがセキュリティポリシーに一致すること
リクエスト保護(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最小限のバックエンドペイロード契約
「最小限のバックエンド・ペイロード・コントラクト」セクションRegistration:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "challenge": "string", "token": "string"}Assertion:
{ "platform": "android", "format": "google-play-integrity-standard", "keyId": "string", "payload": "string", "token": "string"}Android Setup & Backend Verification の続きへ
「Android Setup & Backend Verification の続きへ」というセクション使用している場合 Androidのセットアップとバックエンドでの検証 セキュリティとコンプライアンスを計画するには、これを以下と連携させてください @capgo/capacitor-app-attest の使用方法 @capgo/capacitor-app-attest を使用してネイティブ機能を利用する場合、 暗号化 暗号化の実装詳細について コンプライアンス コンプライアンスの実装詳細について Capgo セキュリティスキャナー Capgo Security Scanner のプロダクトワークフローについては、 Capgo のセキュリティ Capgo Security におけるプロダクトワークフロー向けに。