Présentation des identifiants numériques

Les identifiants numériques sont des documents cryptographiquement vérifiables qui peuvent être utilisés pour authentifier un utilisateur, l'autoriser ou fournir des informations le concernant. Il s'agit généralement de documents tels que des permis de conduire mobiles, des passeports numériques, des cartes d'embarquement, etc. Ils résident dans des conteneurs virtuels appelés portefeuilles numériques et font partie d'une norme W3C qui spécifie comment y accéder et les récupérer. Cette norme est implémentée pour les cas d'utilisation Web avec l'API W3C Credential Management et sur Android, avec l'API DigitalCredential de Credential Manager.

Comprendre les identifiants numériques

Dans le monde physique, une personne peut conserver sa pièce d'identité dans son portefeuille et la présenter à la partie requérante sur demande :

Image montrant le déroulement d'une interaction normale avec le portefeuille
Figure 1. Processus de traitement d'une demande de pièce d'identité physique. Le demandeur demande à l'utilisateur un justificatif spécifique. L'utilisateur sélectionne ensuite la carte et la récupère dans son portefeuille physique. Enfin, l'utilisateur fournit l'identifiant au demandeur.

Dans ce cas, un utilisateur dispose généralement d'un seul portefeuille et récupère les identifiants demandés dans le portefeuille pour les présenter au demandeur. Les portefeuilles sont généralement interchangeables et peuvent stocker les mêmes éléments.

Les identifiants numériques présentent quelques différences principales :

  1. Les utilisateurs sont censés disposer de plusieurs portefeuilles, également appelés holders, qui peuvent contenir différentes identifiants. Les portefeuilles déterminent les identifiants qui peuvent y être stockés.
  2. Le demandeur est désormais une application plutôt qu'une personne réelle. Il est appelé validateur.
  3. La présentation des identifiants se fait dans un logiciel, ce qui signifie qu'une surface d'API récupère et présente les identifiants (Credential Manager dans Android).

Par conséquent, le Gestionnaire d'identifiants assume plusieurs rôles qui étaient auparavant gérés par l'utilisateur :

  1. Sur Android, les portefeuilles doivent enregistrer les métadonnées de leurs identifiants auprès du Gestionnaire d'identifiants pour être listés dans l'UI du Gestionnaire d'identifiants.
  2. Le Gestionnaire d'identifiants fait correspondre les identifiants entre les portefeuilles en fonction de la requête et présente une liste à l'utilisateur.
  3. Lorsque l'utilisateur sélectionne un identifiant dans la liste, le Gestionnaire d'identifiants appelle le portefeuille, qui gère le reste de la transaction (affichage des UI, etc.) et renvoie l'identifiant à l'application.

Ce flux est illustré ci-dessous :

Image montrant le flux d'interaction avec un identifiant numérique
Figure 2. Modèle d'interaction pour la validation des identifiants numériques. Le Gestionnaire d'identifiants utilise les métadonnées des identifiants préenregistrés dans le ou les portefeuilles de l'utilisateur pour faire correspondre la demande d'un vérificateur et invite l'utilisateur à sélectionner un identifiant. Le Gestionnaire d'identifiants redirige ensuite le flux d'activité vers le portefeuille correspondant, qui gère le reste de la transaction et renvoie l'identifiant au vérificateur. Remarque : Le vérificateur doit gérer et valider la réponse d'identifiant une fois qu'elle est renvoyée.

Expérience utilisateur

Comme le montre le flux Android, l'utilisateur n'a besoin d'interagir qu'une seule fois avec l'UI Credential Manager pour sélectionner les identifiants appropriés. Voici un exemple de sélecteur :

Image montrant l'UI des identifiants numériques dans Credential Manager
Figure 3. Interface utilisateur des identifiants numériques.

Normes

Les demandes d'identifiants numériques sont créées à l'aide de la norme OpenID4VP. Vous trouverez des exemples de requêtes sur le site de démonstration des identifiants numériques.

Les réponses aux identifiants numériques sont généralement renvoyées dans un format d'identifiant standardisé. Elles sont gérées par différents organismes de normalisation et incluent W3C Verifiable Credentials, sd-jwt et mdoc.

Les protocoles personnalisés sont également possibles, mais nous vous recommandons d'utiliser l'un des protocoles standards dans votre application.

Essayer

Vous pouvez tester le flux d'identifiants numériques sur différentes plates-formes avec un portefeuille Android et un vérificateur Web :

  1. Installez l'exemple public CMWallet sur votre téléphone Android. Pour ce faire, extrayez le fichier du dépôt et installez-le directement depuis Android Studio, ou accédez à https://github.com/digitalcredentialsdev/CMWallet/actions et sélectionnez la dernière compilation pour accéder au dernier fichier app-debug.apk.
  2. Ouvrez CMWallet pour enregistrer les métadonnées avec Credential Manager. Assurez-vous que le Bluetooth est activé pour permettre à vos appareils de se connecter les uns aux autres.
  3. Accédez à https://digital-credentials.dev/, puis sélectionnez Request Credentials (OpenID4VP).
  4. Acceptez les messages d'avertissement et scannez le code QR avec votre téléphone. Sélectionnez ensuite "Utiliser une clé d'accès", puis appuyez sur la confirmation pour afficher les identifiants disponibles.
  5. Sélectionnez l'identifiant dans CMWallet pour revenir au navigateur. Le navigateur doit afficher l'identifiant renvoyé.

Voir aussi