4단계: 통합 테스트하기

프로덕션에서 라이브로 전환하기 전에 테스트 신분증 패스를 사용하여 샌드박스에서 통합이 엔드 투 엔드로 작동하는지 확인한 다음 전체 흐름의 데모 동영상을 녹화합니다. Google은 온보딩 5단계에서 이 동영상을 검토합니다.

이 페이지의 단계

필수 테스트 참조

지원되는 사용자 인증 정보 및 속성

mDL, 신분증 패스, 사진이 있는 신분증에서 지원되는 정확한 doctype_value 식별자와 클레임 경로를 확인하세요.

지원되는 발급기관 및 IACA 인증서

프로덕션 발급기관 IACA 루트 인증서와 Utopia 샌드박스 인증서를 다운로드합니다.

대화형 웹 인증 도구

OpenWallet Foundation의 호스팅된 참조 인증 도구와 통합을 나란히 비교합니다.


A단계: 샌드박스 테스트 설정 확인

엔드 투 엔드 테스트를 실행하기 전에 다음 네 가지 기본 요건이 충족되었는지 확인하세요.

  1. 테스트 ID가 있는 샌드박스 모드의 기기: Android 테스트 기기가 SANDBOX로 전환되고 (1단계) Google 월렛에 Utopia 신분증 패스가 추가되었습니다 (2단계).
  2. 샌드박스 요청 서명:
    • 신뢰 당사자: 서버는 사전 신뢰할 수 있는 샌드박스 테스트 키 쌍 및 메타데이터를 사용하여 요청에 서명합니다.
    • 검증 도구 등록기관: Google은 샌드박스 루트 CA가 샌드박스 트러스트 저장소에 있고 서버가 샌드박스 루트 CA에 연결된 리프 인증서로 서명된 요청에 서명하고 CBOR로 인코딩된 gw_rp_metadata_bytes를 포함하는지 확인했습니다 (3.A단계: VR 사양).
  3. 요청에 신분증 패스 doctype이 포함됨: 샌드박스 테스트 ID는 신분증 패스이므로 dcql_query는 com.google.wallet.idcard.1 또는 org.iso.23220.photoid.1를 요청합니다 (또는 3.A단계의 다중 사용자 인증 정보 요청을 사용함).
  4. 서버가 Utopia 샌드박스 인증서를 신뢰함: 서버의 트러스트 저장소에 Utopia 샌드박스 인증서가 포함되어 있으므로 Utopia 테스트 ID의 issuerAuth 서명 확인이 성공합니다.

B단계: 요청, 사용자 환경, 오류 처리 테스트

지원하는 모든 플랫폼 (Android 앱, 모바일 웹, 데스크톱 교차 기기 웹)에서 다음 각 검사를 실행합니다.

  • 표시되는 진입점: 명확한 버튼 (예: '디지털 ID로 인증')을 사용자가 탭/클릭하면 요청이 시작됩니다.
  • Android 앱 (해당하는 경우): CredentialManager.getCredential()는 Android 사용자 인증 정보 선택기를 열고 샌드박스 테스트 신분증 패스를 표시합니다.
  • 웹 (해당하는 경우): navigator.credentials.get()는 모바일 브라우저에서 사용자 인증 정보 선택기를 열고 서명된 요청을 사용할 때 데스크톱 브라우저에 교차 기기 QR 코드를 표시합니다.
  • Google 월렛 동의 화면: 사용자 인증 정보를 탭하면 Google 월렛이 열리고 gw_rp_metadata_bytes의 예상 표시 이름, 로고, 개인정보처리방침 링크와 요청한 속성만 표시됩니다.
  • 데이터 수집 최소화: 사용 사례에 필요한 속성만 요청되고 (지원되는 사용자 인증 정보 및 속성 참고) 각 클레임에 대해 intent_to_retain가 정확하게 설정됩니다.
  • 사용자 취소 및 대체: 시트 취소 (Android의 GetCredentialCancellationException 또는 웹의 거부된 프로미스) 또는 일치하는 ID가 없는 테스트(NoCredentialException)가 UI에서 원활하게 처리됩니다.

C단계: 서버 측 복호화 및 암호화 검증 테스트

Google 월렛에서 동의 화면을 승인한 후 서버가 필요한 모든 암호화 검사를 실행하는지 확인합니다.

  • JWE 복호화: 서버가 client_metadata.jwks 암호화 공개 키에 해당하는 비공개 키를 사용하여 반환된 identityToken를 복호화하고 vp_token를 추출합니다.
  • SessionTranscript 재구성: 서버는 정확한 요청 nonce, 암호화 JWK 지문, 플랫폼 출처 (android:apk-key-hash:... 또는 웹 출처 URL)와 함께 OpenID4VPDCAPIHandover를 사용하여 SessionTranscript를 재구성합니다.
  • IACA 인증서 체인 검증 (issuerAuth): 서버가 issuerAuth에서 발급기관 인증서 체인을 추출하고 샌드박스의 Utopia 샌드박스 인증서 및 프로덕션의 지원되는 발급기관 및 IACA 인증서에 있는 공식 프로덕션 루트 인증서와 비교하여 검증합니다. 이 확인을 건너뛰지 마세요.
  • MSO, ValueDigests, deviceSignature 인증: 서버가 모바일 보안 객체 (MSO) 서명을 인증하고, ValueDigests가 반환된 데이터 요소와 일치하는지 확인하고, deviceSignature를 검증합니다 (ISO/IEC 18013-5 섹션 9.1.2 및 9.1.3).
  • 영지식 증명 (구현된 경우): mso_mdoc_zk를 요청하는 경우 서버는 longfellow-zk를 사용하여 반환된 증명을 검증합니다.

D단계: 엔드 투 엔드 시연 동영상 녹화

통합이 B단계와 C단계를 통과하면 앱 또는 웹사이트에서 Google 월렛 동의를 거쳐 인증된 상태로 돌아가는 전체 사용자 여정을 보여주는 화면 캡처 동영상을 녹화합니다. 다음 표에는 온보딩 경로에 따라 포함할 항목이 나와 있습니다.

동영상 요구사항 신뢰 당사자 (직접) 인증자 등록기관 (애그리게이터)
표시할 화면 전체 사용자 여정: 시작 화면 → 사용자 인증 정보 선택기 → Google 월렛 동의 및 인증 → 앱 또는 사이트의 인증 결과 초기 (첫 번째) 다운스트림 제휴사의 전체 사용자 여정
녹화할 흐름 Android 앱 또는 웹 통합 흐름 인증자 호스팅(자체 호스팅) 및 판매자 호스팅(RP 호스팅) 흐름(해당하는 경우)
브랜딩 및 디스플레이 애셋 실제 표시 이름, 로고, 개인정보처리방침 / 서비스 약관 URL 실제 판매자 표시 확장 소재 (이름, 로고, 서비스 약관 URL) 및 애그리게이터 표시 확장 소재

다음 단계

온보딩 경로를 선택하여 동영상을 제출하고 프로덕션에 출시하세요.