Publié le 4 septembre 2024, dernière mise à jour le 16 octobre 2024
Une phase d'évaluation pour l'API Digital Credentials commence à partir de Chrome 128. L'API Digital Credentials est une nouvelle API de plate-forme Web qui permet aux sites Web de demander de manière sélective des informations vérifiables sur l'utilisateur via des identifiants numériques tels qu'un permis de conduire ou une carte d'identité nationale stockés dans un portefeuille numérique.
Contexte
L'identité numérique réelle devient une réalité, car de nombreuses entités publiques et privées commencent à émettre des identifiants numériques associés à un appareil. Par exemple, les pièces d'identité et les permis de conduire mobiles de certains États américains (comme l'Arizona, la Californie, le Colorado, la Géorgie et le Maryland) peuvent désormais être provisionnés dans des applications de portefeuille numérique telles que Google Wallet sur des appareils mobiles. Des réglementations concernant l'acceptation des identifiants numériques pour certaines vérifications en ligne émergent également, comme eIDAS 2.0.
Les fonctionnalités d'un identifiant numérique dépendent de son format, mais elles incluent généralement les éléments suivants:
- Sécurité et confidentialité renforcées: l'utilisation de méthodes de chiffrement avancées et d'authentification renforcée permet de protéger les données sensibles et de garantir un accès sécurisé. Par exemple, la présentation d'identifiants est généralement protégée par une authentification de l'utilisateur via l'application Wallet.
- Divulgation sélective: les parties de confiance peuvent demander des informations spécifiques à partir des identifiants, ce qui permet aux utilisateurs de limiter les données partagées à celles qui sont nécessaires pour le cas d'utilisation. Par exemple, vous pouvez indiquer si un utilisateur a plus de 18 ans sans révéler sa date de naissance.
- Interopérabilité: les identifiants doivent respecter les normes internationales, ce qui permet de les utiliser dans différents systèmes et pays, et facilite leur acceptation transfrontale.
- Validabilité: les données d'identifiants partagées sont signées numériquement par l'émetteur. Le RP peut vérifier cette signature pour vérifier l'authenticité des données.
En raison de leur nature vérifiable, les identifiants numériques peuvent permettre des cas d'utilisation tels que:
- Confirmation de l'âge:demandez l'âge d'une personne avant de lui proposer du contenu soumis à une limite d'âge ou de lui vendre des articles soumis à une limite d'âge.
- Validation de l'identité:demandez un nom et une adresse pour valider l'identité d'une personne afin de respecter la loi ou de lutter contre la fraude.
- Vérification des catégories de véhicules valables:vérifiez si une personne est en mesure de conduire un véhicule donné (par exemple, lorsqu'elle loue une voiture).
Les sites Web ont commencé à communiquer directement avec les applications de portefeuille mobile (par exemple, en utilisant des schémas d'URL personnalisés) pour demander des identifiants numériques pour divers cas d'utilisation. Les navigateurs voient l'opportunité de rendre cette interaction plus sécurisée, plus résistante aux utilisations abusives et plus facile à utiliser via une API dédiée.
Présentation de l'API Digital Credentials
L'API Digital Credentials est une nouvelle API de plate-forme Web qui permet aux sites Web de RP de demander la présentation d'identifiants numériques à partir d'applications de portefeuille. L'API est disponible dans Chrome en tant qu'essai Origin Trial à partir de Chrome 128.
L'API est indépendante du protocole, ce qui permet au RP de spécifier un protocole en fonction de ses exigences. Lorsqu'un RP envoie une requête, le navigateur l'envoie au système d'exploitation mobile, qui recherche des identifiants correspondants dans les applications de portefeuille installées. Si des portefeuilles sont détectés, le système d'exploitation mobile invite l'utilisateur à en sélectionner un et envoie la requête au portefeuille sélectionné. Après une authentification locale, le portefeuille renvoie une réponse contenant les données d'identifiants demandées.
Chrome sera d'abord compatible avec l'API dans Chrome sur Android pour demander des identifiants aux applications de portefeuille sur le même appareil. À l'avenir, nous prévoyons de permettre à Chrome pour ordinateur de bureau de demander des identifiants entre appareils à partir d'un autre appareil mobile.
Au lancement, Google Wallet sera intégré à l'API Digital Credentials, ce qui permettra à certaines entreprises et organisations de demander aux utilisateurs de présenter leur pièce d'identité en ligne, via Chrome sur Android, et de vérifier l'authenticité des données transmises en examinant la signature cryptographique. Pour participer, remplissez ce formulaire si vous souhaitez accepter les pièces d'identité numériques Google Wallet.
L'API sera bientôt également utilisée par les comptes Google pour valider la date de naissance de certains utilisateurs. Les utilisateurs résidant dans un État américain compatible pourront utiliser leur pièce d'identité ou leur permis de conduire provisionnés dans les applications de portefeuille disponibles (y compris Google Wallet) pour partager simplement leur date de naissance avec Google sans partager d'autres informations sur leur identité. Cela permet aux utilisateurs de prouver à Google, tout en préservant leur confidentialité, qu'ils ont l'âge requis pour leur compte.
Essayer
Conditions requises :
- Services Google Play 23.40 ou version ultérieure
- Chrome 128 ou version ultérieure
- Activez l'indicateur à
chrome://flags#web-identity-digital-credentials
.
Pour essayer l'API Digital Credentials, suivez les instructions ci-dessous:
- Installez l'application de portefeuille de démonstration en suivant les instructions.
- Téléchargez une application de portefeuille de démonstration sur votre appareil Android. Le code source est disponible dans le répertoire des identifiants d'identité de la Fondation OpenWallet.
- Exécutez une commande
adb install -t <path-to-apk>
pour installer l'application.
- Lancez l'application IC Wallet et provisionnez un permis de conduire mobile (mDL) de démonstration.
- Appuyez sur le bouton de menu, puis sélectionnez Ajouter un document auto-signé.
- Accédez à https://digital-credentials.dev avec Chrome 128 ou version ultérieure.
- Appuyez sur Request Credentials (OpenID4VP) (Demander des identifiants (OpenID4VP)).
Découvrez la démonstration qui utilise https://digital-credentials.dev, un site Web de test permettant aux développeurs de générer des requêtes d'identifiants pour différents attributs:
Voici comment la démonstration fonctionne étape par étape:
Fonctionnement de l'API
L'API Digital Credentials est basée sur l'API Gestion des identifiants, mais à partir d'une surface API indépendante: navigator.identity
. En appelant navigator.identity.get()
, le site Web peut demander des identifiants numériques stockés dans une application de portefeuille mobile.
// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
signal: controller.signal,
digital: {
providers: [{
protocol: "openid4vp",
request: {
response_type: "vp_token",
nonce: "n-0S6_WzA2Mj",
client_metadata: {...},
presentation_definition: {...}
}
}],
}
});
La surface de l'API de base est semblable à navigator.credentials.get()
, sauf qu'elle n'accepte que le type d'identifiants "digital"
. Dans le type d'identifiant numérique, ajoutez un tableau providers
contenant IdentityRequestProvider
avec les paramètres de base suivants:
protocol
: spécifiez un protocole d'échange avec une chaîne. Au moment de l'essai de l'origine, le protocole principal en cours de développement est"openid4vp"
.request
: indiquez les paramètres acceptés par les applications de portefeuille numérique pour le protocole spécifié. Pour"openid4vp"
, les paramètres sont définis dans la spécification OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API (OpenID pour la présentation vérifiable (OID4VP) pour l'API W3C Digital Credentials).
Exemple de charge utile pour le type d'identifiant numérique à l'aide d'OID4VP:
{
protocol: 'openid4vp',
request: {
response_type: 'vp_token',
nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
client_metadata: {},
presentation_definition: {
id: 'mDL-request-demo',
input_descriptors: [{
id: "org.iso.18013.5.1.mDL",
format: {
mso_mdoc: {
alg: ["ES256"]
}
},
constraints: {
limit_disclosure: "required",
fields: [
{
path: ["$['org.iso.18013.5.1']['family_name']"],
intent_to_retain: false
}, {
path: ["$['org.iso.18013.5.1']['given_name']"],
intent_to_retain: false
}, {
path: ["$['org.iso.18013.5.1']['age_over_21']"],
intent_to_retain: false
}
]
}
}],
}
}
}
Avec cette requête, les portefeuilles qui disposent de mDL sur l'appareil fourniront un ensemble d'identifiants vérifiables contenant les éléments suivants:
- Nom de famille de l'utilisateur.
- Prénom de l'utilisateur.
- Valeur booléenne indiquant si l'utilisateur a plus de 21 ans ou non.
Voici un exemple de charge utile de réponse:
{
data: '{\n "vp_token": "o2d2ZXJzaW9uYz..."\n}'
id: '',
protocol: 'openid4vp',
type: 'digital'
}
Dans cet exemple, les identifiants ont été demandés avec le protocole "openid4vp"
, et la réponse contient "vp_token"
dans la propriété data
. Pour savoir comment analyser la réponse et valider l'identifiant, consultez la spécification OpenID for Verifiable Presentation (OID4VP) for the W3C Digital Credentials API (OpenID pour la présentation vérifiable (OID4VP) pour l'API d'identifiants numériques du W3C).
L'API Digital Credentials est disponible en phase d'évaluation sur Chrome pour Android. Chrome sur ordinateur et iOS ne sont pas compatibles avec cette fonctionnalité pour le moment. Pour les autres moteurs de navigateur, des discussions actives sont organisées par le biais du groupe de la communauté de l'incubateur Web du W3C.
Participer à l'essai de l'origine
Pour le développement, vous pouvez activer l'API Digital Credentials en local en activant l'option chrome://flags#web-identity-digital-credentials
dans Chrome 128 ou version ultérieure.
Cette fonctionnalité est également disponible en version d'essai pour les origines. Les essais Origin Trial vous permettent de tester de nouvelles fonctionnalités et de donner votre avis sur leur facilité d'utilisation, leur praticité et leur efficacité à la communauté des normes Web. Pour en savoir plus, consultez Premiers pas avec les tests d'origine. Pour vous inscrire à cet essai ou à un autre, accédez à la page d'inscription.
- Demandez un jeton pour votre origine.
- Ajoutez le jeton à vos pages. Pour cela, vous pouvez procéder de deux façons :
- Ajoutez une balise
<meta>
origin-trial
dans l'en-tête de chaque page. Par exemple, cela peut se présenter comme suit:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
- Si vous pouvez configurer votre serveur, vous pouvez également ajouter le jeton à l'aide d'un en-tête HTTP
Origin-Trial
. L'en-tête de réponse obtenu doit se présenter comme suit:Origin-Trial: TOKEN_GOES_HERE.
- Ajoutez une balise
Envoyer des commentaires
Si vous avez des commentaires sur l'API Digital Credentials, envoyez-les à l'outil de suivi des problèmes Chromium dédié.