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 프로젝트 내.
- 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 application id와 일치하는지 여부appIntegrity.certificateSha256Digestrelease signing cert digest 포함 여부- integrity verdicts가 보안 정책과 일치하는지 여부
요청 보호 (createAssertion)
“요청 보호 (createAssertion)” 섹션- 백엔드에서 일회용 값 생성
payload. - 앱에서 호출
createAssertion({ keyId, payload }). - 백엔드에서 토큰을 디코딩하고 검증합니다.
requestHash === base64url(SHA256(payload)). - 재전송 방지(1회용 + 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 설정 및 백엔드 검증에서 계속하기”사용 중이라면 Android 설정 및 백엔드 검증 보안 및 컴플라이언스 계획을 세우려면, 다음 항목과 연결하세요: @capgo/capacitor-app-attest 사용하기 @capgo/capacitor-app-attest 사용 시 네이티브 기능을 위해, 암호화 암호화 구현 상세 정보: 컴플라이언스 컴플라이언스 구현 상세 정보: Capgo 보안 스캐너 Capgo Security Scanner에서 제품 워크플로우는, 그리고 Capgo 보안 Capgo Security의 제품 워크플로를 위해.