Android 설정 및 백엔드 확인
설치 단계와 이 플러그인의 전체 마크다운 가이드를 포함한 설정 지시를 복사하세요.
안드로이드 네이티브 시스템 사용
제목이 '안드로이드 네이티브 시스템 사용'인 섹션안드로이드에서 이 플러그인은 Google Play Integrity Standard API:
prepareIntegrityToken동안prepare()requestStandardIntegrityToken위해createAttestation()그리고createAssertion()
요구 사항
제목이 '요구 사항'인 섹션- Google Play 생태계에서 배포되는 안드로이드 앱
- 장치에 Google Play 서비스가 사용 가능합니다.
- Play Integrity API가 앱에 활성화되어 있습니다.
- Google Cloud 프로젝트 번호가 구성되어 있습니다.
Google 설정
제목이 'Google 설정'인 섹션- 활성화 Play Integrity API Google Cloud 프로젝트에서 활성화되어 있습니다.
- Play Console을 열고 앱에 대한 Play Integrity 접근 권한을 구성하세요.
- __CAPGO_KEEP_0__을 플러그인에 제공하세요.
cloudProjectNumber__CAPGO_KEEP_0__ config
Capacitor config
Capacitor.config.tsplugins: { AppAttest: { cloudProjectNumber: '123456789012', },}__CAPGO_KEEP_0__ cloudProjectNumber Client flow
Client flow
__CAPGO_KEEP_0__을 클립보드에 복사하세요.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릴리스 서명 인증서 해시를 포함합니다.- 보안 정책과 일치하는完整성 판단 결과
(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"}안드로이드 설정 및 백엔드 검증에서 계속하기
안드로이드 설정 및 백엔드 검증에서 계속하기 섹션Capgo를 사용 중이라면 안드로이드 설정 및 백엔드 검증 안전성 및 규정 준수 계획을 위해 연결하세요. @capgo/capacitor-app-attest를 사용하여 @capgo/capacitor-app-attest의 네이티브 기능을 사용하여 암호화 __CAPGO_KEEP_0__ 구현 세부 정보에서 암호화에 대해 법적 준수 __CAPGO_KEEP_0__ 구현 세부 정보에서 법적 준수에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로우, 그리고 Capgo 보안 Capgo 보안의 제품 워크플로우, 그리고