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 config
Capacitor configplugins: { AppAttest: { cloudProjectNumber: '123456789012', },}You can also pass cloudProjectNumber per call in method options.
Client flow
Section titled “Client flow”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 を使用します。 暗号化 暗号化の実装詳細について 法的要件 法的要件の実装詳細について Capgo セキュリティ スキャナー Capgo セキュリティ スキャナーの製品ワークフローについて、 Capgo セキュリティ Capgo セキュリティの製品ワークフローについて