Étape 4 : Tester votre intégration

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.

É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 :

  1. 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).
  2. Signature des requêtes de bac à sable :
  3. 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_query demande com.google.wallet.idcard.1 ou org.iso.23220.photoid.1 (ou utilise la requête multi-identifiants de l'étape 3.A).
  4. 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 issuerAuth ré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_retain est défini avec précision pour chaque revendication.
  • Annulation par l'utilisateur et remplacement : l'annulation de la feuille (GetCredentialCancellationException sur 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 identityToken renvoyé à l'aide de la clé privée correspondant à la clé publique de chiffrement client_metadata.jwks et extrait le vp_token.
  • Reconstruction de SessionTranscript : votre serveur reconstruit SessionTranscript à l'aide de OpenID4VPDCAPIHandover avec la valeur nonce exacte 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 de issuerAuth et 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, ValueDigests et deviceSignature : votre serveur valide la signature de l'objet de sécurité mobile (MSO, Mobile Security Object), confirme que les ValueDigests correspondent aux éléments de données renvoyés et valide les deviceSignature (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 :