Passer au contenu principal

Credential Offer

Un Credential Offer est le message qu'un émetteur envoie à un portefeuille pour déclencher l'émission sous OpenID4VCI : il identifie l'émetteur, indique quels credentials sont proposés et précise au portefeuille comment il est autorisé à les récupérer.

En pratique, l'offre est ce qui se trouve derrière le QR code sur une page d'émission ou le lien dans un e-mail ou une application. Elle peut être transmise par valeur, intégrée directement dans un lien profond openid-credential-offer:// ou un QR code, ou par référence, sous forme d'URL que le portefeuille récupère pour obtenir le même contenu, ce qui garde le code court quand l'offre nomme plusieurs credentials ou porte un long état d'émetteur. La scanner ou l'ouvrir donne au portefeuille l'URL de l'émetteur et un ou plusieurs identifiants de configuration de credential, plus un grant qui détermine la suite du flux : un grant authorization code envoie d'abord le détenteur vers la propre connexion de l'émetteur, utile quand l'offre a été générée sur un autre appareil que celui qui termine le flux, tandis qu'un grant pre-authorized code est utilisé quand le détenteur était déjà authentifié là où l'offre a été créée, par exemple juste après s'être connecté à un portail gouvernemental, éventuellement protégé par un code de transaction affiché sur ce même canal afin qu'un code intercepté en transit ne puisse pas être utilisé par quelqu'un d'autre. À partir de là, le portefeuille lit les métadonnées de l'émetteur pour savoir ce que contiennent réellement les credentials nommés, échange le grant contre un jeton d'accès auprès du point de terminaison de jetons de l'émetteur, et appelle le point de terminaison de credentials pour récupérer ce qui a été offert, un credential ou un lot à la fois selon ce que l'émetteur prend en charge.

Pourquoi certaines Credential Offers demandent-elles un code de transaction et d'autres non ?

Un code de transaction est requis chaque fois que l'offre utilise un grant pre-authorized code, car le détenteur était déjà authentifié sur un autre canal et le code prouve que la personne qui scanne l'offre est bien la personne authentifiée sur ce canal. Un grant authorization code envoie au contraire le détenteur vers la propre connexion de l'émetteur dans le cadre du flux, si bien qu'il n'y a pas de canal séparé à lier et aucun code nécessaire.

Retour au glossaire