Présentation des identifiants numériques

Les identifiants numériques sont des documents vérifiables par cryptographie qui peuvent être utilisés pour authentifier, autoriser ou fournir d'autres informations sur un utilisateur. 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 se trouvent 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 de gestion des identifiants du W3C et sur Android, avec l'API DigitalCredential du Gestionnaire d'identifiants.

Comprendre les identifiants numériques

Dans le monde physique, une personne peut conserver son identité dans son portefeuille et la présenter à une partie à la demande:

Image montrant le flux d'une interaction normale avec le Wallet
Figure 1. Processus permettant de répondre à une demande d'identifiants dans le monde physique. Le demandeur demande à l'utilisateur des identifiants spécifiques. L'utilisateur le sélectionne ensuite et le récupère dans son portefeuille physique. Enfin, l'utilisateur fournit les identifiants à l'auteur de la requête.

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 à l'auteur de la demande. Les portefeuilles sont généralement interchangeables et peuvent généralement stocker les mêmes éléments.

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

  1. Les utilisateurs doivent disposer de plusieurs portefeuilles pouvant contenir différents identifiants. Les portefeuilles déterminent les identifiants pouvant être stockés.
  2. Le demandeur est désormais une application plutôt qu'une personne physique et est appelé "vérificateur".
  3. La présentation des identifiants se produit dans le logiciel, ce qui signifie qu'une surface d'API récupère et présente les identifiants. Sur Android, il s'agit de Credential Manager.

Par conséquent, le Gestionnaire d'identifiants assume plusieurs rôles 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'interface utilisateur 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 des identifiants dans la liste, le Gestionnaire d'identifiants appelle le portefeuille, qui gère le reste de la transaction (affichage des UI, etc.) et renvoie les identifiants à l'application.

Ce flux est illustré ci-dessous:

Image montrant le flux d'une interaction avec des identifiants numériques
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 utilisateur pour faire correspondre la requête d'un vérificateur et invite l'utilisateur à sélectionner des identifiants. Le Gestionnaire d'identifiants dirige ensuite le flux d'activité vers le portefeuille correspondant, qui gère le reste de la transaction et renvoie les identifiants au vérificateur. Remarque: Le vérificateur doit gérer et valider la réponse des identifiants une fois qu'elle est renvoyée.

Expérience utilisateur

Comme indiqué dans le flux Android, l'utilisateur n'a besoin d'interagir qu'une seule fois avec l'UI du Gestionnaire d'identifiants pour sélectionner les identifiants appropriés. Voici un exemple de ce à quoi ressemble le sélecteur:

Image montrant l'UI des identifiants numériques dans le Gestionnaire d'identifiants
Figure 3. Interface utilisateur des identifiants numériques.

Normes

Les requêtes 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 d'identifiants numériques sont généralement renvoyées dans un format d'identifiants standardisé. Elles sont gérées par différents organismes de normalisation, et incluent les identifiants vérifiables du W3C, 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 plusieurs 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 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 version pour accéder au dernier fichier app-debug.apk.
  2. Ouvrez CMWallet pour enregistrer les métadonnées dans le Gestionnaire d'identifiants. Assurez-vous que le Bluetooth est activé pour que vos appareils puissent se connecter les uns aux autres.
  3. Accédez à https://digital-credentials.dev/, puis sélectionnez Request Credentials (OpenID4VP).
  4. Acceptez les invites d'avertissement et scannez le code QR avec votre téléphone, puis sélectionnez "Utiliser la clé d'accès" et appuyez sur la confirmation pour afficher les identifiants disponibles.
  5. Sélectionnez les identifiants dans CMWallet pour revenir au navigateur. Le navigateur doit afficher les identifiants renvoyés.

Voir aussi

  • Pour en savoir plus sur l'utilisation du Gestionnaire d'identifiants pour demander des identifiants numériques dans votre application, consultez la page Gestionnaire d'identifiants – API Verifier.
  • Pour en savoir plus sur la création d'un portefeuille numérique à l'aide du Gestionnaire d'identifiants, consultez la page Credential Manager - Holder API (Gestionnaire d'identifiants – API Holder).