ก่อนเปิดใช้งานจริง ให้ตรวจสอบว่าการผสานรวมทำงานตั้งแต่ต้นจนจบในแซนด์บ็อกซ์โดยใช้ID พาสทดสอบ จากนั้นบันทึกวิดีโอสาธิตขั้นตอนทั้งหมด Google จะตรวจสอบวิดีโอนี้ในขั้นตอนที่ 5 ของการเริ่มต้นใช้งาน
เลือกเส้นทาง RP, ผู้รับจดทะเบียนผู้ตรวจสอบ หรือแบบเข้าร่วมด้วยตนเอง
ขั้นตอนในหน้านี้
ข้อมูลอ้างอิงที่จำเป็นสำหรับการทดสอบ
ข้อมูลเข้าสู่ระบบและแอตทริบิวต์ที่รองรับ
ตรวจสอบตัวระบุ doctype_value ที่แน่นอนและเส้นทางการอ้างสิทธิ์ที่รองรับใน mDL, ID พาส และบัตรประจำตัวที่มีรูปถ่าย
ผู้ออกบัตรและใบรับรอง IACA ที่รองรับ
ดาวน์โหลดใบรับรองรูท IACA ของผู้ออกใบรับรองเวอร์ชันที่ใช้งานจริงและใบรับรอง Utopia Sandbox
เครื่องมือตรวจสอบเว็บแบบอินเทอร์แอกทีฟ
เปรียบเทียบการผสานรวมของคุณกับเครื่องมือตรวจสอบข้อมูลอ้างอิงที่โฮสต์โดย OpenWallet Foundation
ขั้นตอน ก: ยืนยันการตั้งค่าการทดสอบแซนด์บ็อกซ์
ตรวจสอบว่าคุณมีข้อกำหนดเบื้องต้น 4 ข้อต่อไปนี้ก่อนที่จะทำการทดสอบตั้งแต่ต้นจนจบ
- อุปกรณ์ในโหมดแซนด์บ็อกซ์ที่มีรหัสทดสอบ: อุปกรณ์ทดสอบ Android เปลี่ยนเป็น SANDBOX (ขั้นตอนที่ 1) และมีID พาส Utopia เพิ่มใน Google Wallet (ขั้นตอนที่ 2)
- การลงชื่อคำขอในแซนด์บ็อกซ์:
- ผู้ที่เชื่อถือ: เซิร์ฟเวอร์ของคุณจะลงนามคำขอด้วยคู่คีย์และข้อมูลเมตาสำหรับการทดสอบแซนด์บ็อกซ์ที่เชื่อถือล่วงหน้า
- ผู้รับจดทะเบียน Verifier: Google ได้ยืนยันแล้วว่า CA รูทแซนด์บ็อกซ์ของคุณอยู่ใน Trust Store แซนด์บ็อกซ์ และเซิร์ฟเวอร์ของคุณลงชื่อในคำขอด้วยใบรับรอง Leaf ที่เชื่อมโยงกับ CA รูทแซนด์บ็อกซ์ และรวม
gw_rp_metadata_bytesที่เข้ารหัส CBOR ไว้ด้วย (ขั้นตอนที่ 3.A: ข้อกำหนด VR)
- คำขอมีประเภทเอกสารบัตรประจำตัว: เนื่องจากรหัสทดสอบแซนด์บ็อกซ์เป็นบัตรประจำตัว
dcql_queryของคุณจึงส่งคำขอcom.google.wallet.idcard.1หรือorg.iso.23220.photoid.1(หรือใช้คำขอเอกสารรับรองหลายรายการจากขั้นตอนที่ 3.ก) - เซิร์ฟเวอร์เชื่อถือใบรับรอง Utopia Sandbox: Trust Store ของเซิร์ฟเวอร์มีใบรับรอง Utopia Sandbox ดังนั้นการยืนยันลายเซ็น
issuerAuthจึงสำเร็จสำหรับรหัสทดสอบ Utopia
ขั้นตอนที่ 2: ทดสอบคำขอ ประสบการณ์ของผู้ใช้ และการจัดการข้อผิดพลาด
ตรวจสอบแต่ละรายการต่อไปนี้ในทุกแพลตฟอร์มที่คุณรองรับ (แอป Android, เว็บบนมือถือ และเว็บข้ามอุปกรณ์บนเดสก์ท็อป)
- จุดแรกเข้าที่มองเห็นได้: ปุ่มที่ชัดเจน (เช่น "ยืนยันด้วยบัตรประจำตัวดิจิทัล") จะเริ่มคำขอเมื่อผู้ใช้แตะ/คลิก
- แอป Android (หากมี):
CredentialManager.getCredential()จะเปิดตัวเลือกข้อมูลเข้าสู่ระบบ Android และแสดง ID พาสทดสอบในแซนด์บ็อกซ์ - เว็บ (หากมี):
navigator.credentials.get()จะเปิดตัวเลือกข้อมูลเข้าสู่ระบบในเบราว์เซอร์บนมือถือ และแสดงคิวอาร์โค้ดข้ามอุปกรณ์ในเบราว์เซอร์ในเดสก์ท็อปเมื่อใช้คำขอที่ลงชื่อ - หน้าจอขอความยินยอมของ Google Wallet: การแตะข้อมูลเข้าสู่ระบบจะเปิด Google Wallet และแสดงชื่อที่แสดง โลโก้ และลิงก์นโยบายความเป็นส่วนตัวที่คาดไว้จาก
gw_rp_metadata_bytesพร้อมกับแอตทริบิวต์ที่คุณขอเท่านั้น - การลดปริมาณข้อมูล: ระบบจะขอเฉพาะแอตทริบิวต์ที่จำเป็นสำหรับกรณีการใช้งานของคุณ (ดูข้อมูลเข้าสู่ระบบและแอตทริบิวต์ที่รองรับ) และตั้งค่า
intent_to_retainอย่างถูกต้องสำหรับการอ้างสิทธิ์แต่ละรายการ - การยกเลิกของผู้ใช้และโหมดสำรอง: การยกเลิกชีต (
GetCredentialCancellationExceptionใน Android หรือสัญญาที่ถูกปฏิเสธในเว็บ) หรือการทดสอบโดยไม่มีรหัสที่ตรงกัน (NoCredentialException) ได้รับการจัดการอย่างราบรื่นใน UI ของคุณ
ขั้นตอนที่ 3: ทดสอบการถอดรหัสฝั่งเซิร์ฟเวอร์และการตรวจสอบความถูกต้องของการเข้ารหัสลับ
หลังจากอนุมัติหน้าจอขอความยินยอมใน Google Wallet แล้ว ให้ยืนยันว่าเซิร์ฟเวอร์ของคุณทำการตรวจสอบการเข้ารหัสที่จำเป็นทั้งหมด ดังนี้
- การถอดรหัส JWE: เซิร์ฟเวอร์ของคุณจะถอดรหัส
identityTokenที่ส่งกลับมาโดยใช้คีย์ส่วนตัวที่สอดคล้องกับคีย์สาธารณะสำหรับการเข้ารหัสclient_metadata.jwksและดึงข้อมูลvp_tokenออกมา - การสร้าง
SessionTranscriptขึ้นใหม่: เซิร์ฟเวอร์จะสร้างSessionTranscriptขึ้นใหม่โดยใช้OpenID4VPDCAPIHandoverที่มีคำขอnonce, Thumbprint ของ JWK สำหรับการเข้ารหัส และต้นทางของแพลตฟอร์ม (android:apk-key-hash:...หรือ URL ต้นทางเว็บ) ที่ตรงกันทุกประการ - การตรวจสอบความถูกต้องของเชนใบรับรอง IACA (
issuerAuth): เซิร์ฟเวอร์จะดึงเชนใบรับรองของผู้ออกใบรับรองจากissuerAuthและตรวจสอบความถูกต้องกับใบรับรอง Utopia Sandbox ในแซนด์บ็อกซ์ และกับใบรับรองรูทเวอร์ชันที่ใช้งานจริงอย่างเป็นทางการในผู้ออกใบรับรองและใบรับรอง IACA ที่รองรับสำหรับเวอร์ชันที่ใช้งานจริง อย่าข้ามการตรวจสอบนี้ - การยืนยัน MSO,
ValueDigestsและdeviceSignature: เซิร์ฟเวอร์จะยืนยันลายเซ็น Mobile Security Object (MSO) ยืนยันว่าValueDigestsตรงกับองค์ประกอบข้อมูลที่แสดงผล และตรวจสอบdeviceSignature(ISO/IEC 18013-5 ส่วนที่ 9.1.2 และ 9.1.3) - Zero-Knowledge Proof (หากใช้): หากขอ
mso_mdoc_zkเซิร์ฟเวอร์ของคุณจะตรวจสอบหลักฐานที่แสดงผลโดยใช้ longfellow-zk
ขั้นตอนที่ ง: บันทึกวิดีโอสาธิตตั้งแต่ต้นจนจบ
เมื่อการผสานรวมผ่านขั้นตอน B และ C แล้ว ให้บันทึกวิดีโอการจับภาพหน้าจอที่แสดงเส้นทางของผู้ใช้ทั้งหมดจากแอปหรือเว็บไซต์ของคุณผ่านความยินยอมของ Google Wallet และกลับไปยังสถานะที่ยืนยันแล้ว ตารางต่อไปนี้แสดงสิ่งที่ต้องระบุตามเส้นทางการเริ่มต้นใช้งาน
| ข้อกำหนดเกี่ยวกับวิดีโอ | ฝ่ายที่อาศัยข้อมูล (โดยตรง) | ผู้รับจดทะเบียนที่ทำหน้าที่เป็นผู้ยืนยัน (ผู้รวบรวมข้อมูล) |
|---|---|---|
| หน้าจอที่จะแสดง | เส้นทางของผู้ใช้แบบเต็ม: หน้าจอเข้าสู่ระบบ → ตัวเลือกข้อมูลเข้าสู่ระบบ → ความยินยอมและการตรวจสอบสิทธิ์ของ Google Wallet → ผลลัพธ์ที่ได้รับการยืนยันในแอปหรือเว็บไซต์ | เส้นทางของผู้ใช้แบบเต็มสำหรับฝ่ายที่ต้องอาศัย (รายแรก) ปลายทางเริ่มต้น |
| โฟลวที่จะบันทึก | ขั้นตอนการผสานรวมแอป Android และ/หรือเว็บ | ทั้งขั้นตอนที่โฮสต์โดยผู้ตรวจสอบ (โฮสต์เอง) และโฮสต์โดยผู้ขาย (โฮสต์โดย RP) ตามความเหมาะสม |
| ชิ้นงานการสร้างแบรนด์และ Display | ชื่อที่แสดงจริง โลโก้ และ URL ของนโยบายความเป็นส่วนตัว / ข้อกำหนดในการให้บริการ | ชิ้นงานที่แสดงของผู้ขายจริง (ชื่อ โลโก้ URL ของข้อกำหนดในการให้บริการ) และชิ้นงานที่แสดงของผู้รวบรวมข้อมูล |
ขั้นตอนถัดไป
เลือกเส้นทางการเริ่มต้นใช้งานเพื่อส่งวิดีโอและเปิดตัวในเวอร์ชันที่ใช้งานจริง