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设置
需求- 启用 Play Integrity API 在您的Google Cloud项目中使用。
- 打开Play Console并为您的应用程序配置Play Integrity访问。
- 提供
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 token,需要在服务器端解码。
Android 后端工作流程
Section titled “Android 后端工作流程”注册(createAttestation)createAttestation)
后端创建一次性- 应用程序调用
challenge. - 后端调用 Google
createAttestation({ keyId, challenge }). - __CAPGO_KEEP_0__.
decodeIntegrityTokenAPI. - Section titled “Android 后端工作流程”
requestDetails.requestHash === base64url(SHA256(challenge))appIntegrity.packageName等同于您的 Android 应用程序 IDappIntegrity.certificateSha256Digest包含您的发布签名证书摘要- 完整性判决与您的安全策略匹配
请求保护 (createAssertion)
标题:请求保护(createAssertion)- 后端创建一次性
payload. - 应用程序调用
createAssertion({ keyId, payload }). - 后端解码令牌并检查
requestHash === base64url(SHA256(payload)). - 强制执行重放防护(单次使用 + TTL)和完整性判决策略。
Android schema
标题:Android schemasequenceDiagram 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 Setup & 后端验证
继续从 Android Setup & 后端验证如果您正在使用 Android Setup & 后端验证 来规划安全性和合规性,连接它与 使用 @capgo/capacitor-app-attest 为使用@capgo/capacitor-app-attest的原生能力 加密 为加密的实现细节 合规 为合规的实现细节 Capgo 安全扫描器 为Capgo 安全扫描器的产品工作流程 Capgo 安全 为Capgo 安全的产品工作流程