Avant de passer en production, vérifiez que votre intégration fonctionne de bout en bout dans le bac à sable à l'aide de votre pass d'identité de test, puis enregistrez une vidéo de démonstration du flux complet. Google examine cette vidéo à l'étape 5 du processus d'intégration.
Choisissez votre parcours RP, Verifier Registrar ou en personne
Étapes sur cette page
Références essentielles pour les tests
Identifiants et attributs compatibles
Vérifiez les identifiants doctype_value exacts et les chemins d'accès aux revendications compatibles avec les mDL, les pass d'identité et les pièces d'identité avec photo.
Émetteurs et certificats IACA acceptés
Téléchargez les certificats racine IACA de l'émetteur de production et le certificat Utopia Sandbox.
Outil interactif de vérification Web
Comparez votre intégration à l'outil de validation de référence hébergé de la fondation OpenWallet.
Étape A : Vérifier la configuration de votre test de bac à sable
Vérifiez que ces quatre conditions préalables sont remplies avant d'exécuter votre test de bout en bout :
- Appareil en mode bac à sable avec une pièce d'identité de test : votre appareil de test Android est passé en mode BAC À SABLE (étape 1) et un pass d'identité Utopia a été ajouté à Google Wallet (étape 2).
- Signature des requêtes de bac à sable :
- Parties de confiance : votre serveur signe les requêtes avec la paire de clés et les métadonnées de test du bac à sable pré-approuvées.
- Registres de vérification : Google a confirmé que votre CA racine de bac à sable se trouve dans le magasin de confiance du bac à sable, et que votre serveur signe les requêtes avec un certificat d'entité finale associé à votre CA racine de bac à sable et inclut votre
gw_rp_metadata_bytesencodé en CBOR (Étape 3.A : Spécifications des registres de vérification).
- La requête inclut un type de document de pass d'identité : comme l'ID de test du bac à sable est un pass d'identité, votre
dcql_querydemandecom.google.wallet.idcard.1ouorg.iso.23220.photoid.1(ou utilise la requête multi-identifiants de l'étape 3.A). - Le serveur approuve le certificat Utopia Sandbox : le magasin de confiance de votre serveur inclut le certificat Utopia Sandbox. Par conséquent, la validation de la signature
issuerAuthréussit pour l'ID de test Utopia.
Étape B : Tester la requête, l'expérience utilisateur et la gestion des erreurs
Effectuez chacune des vérifications suivantes sur toutes les plates-formes que vous prenez en charge (application Android, Web mobile et Web multi-appareil pour ordinateur) :
- Point d'entrée visible : un bouton clair (tel que "Valider avec une pièce d'identité numérique") lance la demande lorsque l'utilisateur appuie ou clique dessus.
- Application Android (le cas échéant) :
CredentialManager.getCredential()ouvre le sélecteur d'identifiants Android et affiche votre pass d'identité de test de bac à sable. - Web (le cas échéant) :
navigator.credentials.get()ouvre le sélecteur d'identifiants sur les navigateurs mobiles et affiche le QR code multi-appareil sur les navigateurs pour ordinateur lorsque vous utilisez des requêtes signées. - Écran de consentement Google Wallet : appuyer sur l'identifiant ouvre Google Wallet et affiche les nom à afficher, logo et lien vers les règles de confidentialité attendus de votre
gw_rp_metadata_bytes, ainsi que les attributs que vous avez demandés. - Minimisation des données : seuls les attributs requis pour votre cas d'utilisation sont demandés (voir Identifiants et attributs compatibles), et
intent_to_retainest défini avec précision pour chaque revendication. - Annulation par l'utilisateur et remplacement : l'annulation de la feuille (
GetCredentialCancellationExceptionsur Android ou une promesse rejetée sur le Web) ou les tests sans ID correspondant (NoCredentialException) sont gérés de manière fluide dans votre UI.
Étape C : Tester le déchiffrement côté serveur et la validation cryptographique
Après avoir approuvé l'écran de consentement dans Google Wallet, vérifiez que votre serveur effectue toutes les vérifications cryptographiques requises :
- Déchiffrement JWE : votre serveur déchiffre le
identityTokenrenvoyé à l'aide de la clé privée correspondant à la clé publique de chiffrementclient_metadata.jwkset extrait levp_token. - Reconstruction de
SessionTranscript: votre serveur reconstruitSessionTranscriptà l'aide deOpenID4VPDCAPIHandoveravec la valeurnonceexacte de la requête, l'empreinte JWK de chiffrement et l'origine de la plate-forme (android:apk-key-hash:...ou URL d'origine Web). - Validation de la chaîne de certificats IACA (
issuerAuth) : votre serveur extrait la chaîne de certificats de l'émetteur deissuerAuthet la valide par rapport au certificat Utopia Sandbox dans le bac à sable, et par rapport aux certificats racine de production officiels dans Émetteurs et certificats IACA compatibles pour la production. Ne sautez jamais cette vérification. - Validation des MSO,
ValueDigestsetdeviceSignature: votre serveur valide la signature de l'objet de sécurité mobile (MSO, Mobile Security Object), confirme que lesValueDigestscorrespondent aux éléments de données renvoyés et valide lesdeviceSignature(sections 9.1.2 et 9.1.3 de la norme ISO/IEC 18013-5). - Preuves à divulgation nulle de connaissance (si implémentées) : si vous demandez
mso_mdoc_zk, votre serveur valide la preuve renvoyée à l'aide de longfellow-zk.
Étape D : Enregistrez votre vidéo de démonstration de bout en bout
Une fois que votre intégration a réussi les étapes B et C, enregistrez une vidéo de capture d'écran montrant l'intégralité du parcours utilisateur, de votre application ou site Web au consentement Google Wallet, puis au retour à l'état validé. Le tableau suivant indique ce qu'il faut inclure en fonction de votre parcours d'intégration :
| Exigence concernant la vidéo | Tiers de confiance (directs) | Registres de vérificateurs (agrégateurs) |
|---|---|---|
| Écrans à afficher | Parcours utilisateur complet : écran d'entrée → sélecteur d'identifiants → consentement et authentification Google Wallet → résultat validé dans votre application ou sur votre site | Parcours utilisateur complet pour votre première partie de confiance en aval |
| Flux à enregistrer | Votre flux d'intégration d'application Android et/ou Web | Flux hébergés par le vérificateur (auto-hébergés) et hébergés par le marchand (hébergés par la partie de confiance), selon le cas |
| Assets de branding et d'affichage | Votre nom à afficher, votre logo et les URL de vos règles de confidentialité et de vos conditions d'utilisation | Composants d'affichage du marchand réel (nom, logo, URL des conditions d'utilisation) et vos composants d'affichage d'agrégateur |
Étape suivante
Choisissez votre méthode d'intégration pour envoyer votre vidéo et la lancer en production :