Naar hoofdinhoud

Credential Offer

Een Credential Offer is het bericht waarmee een uitgever onder OpenID4VCI de uitgifte naar een wallet start: het noemt de uitgever, geeft aan welke credentials worden aangeboden en vertelt de wallet hoe hij die mag ophalen.

In de praktijk is het offer wat er achter de QR-code op een uitgiftepagina schuilgaat, of achter de link in een e-mail of app. Het kan by value worden afgeleverd, rechtstreeks ingebed in een openid-credential-offer://-deeplink of QR-payload, of by reference, als een URL die de wallet ophaalt om dezelfde inhoud op te halen, wat de code kort houdt wanneer het offer meerdere credentials noemt of een lange issuer state bevat. Door te scannen of te openen krijgt de wallet de URL van de uitgever en een of meer credential configuration identifiers, plus een grant die de rest van de flow bepaalt: een authorization code grant stuurt de houder eerst door de eigen login van de uitgever, nuttig wanneer het offer op een ander apparaat is gegenereerd dan waarop de flow wordt afgerond, terwijl een pre-authorized code grant wordt gebruikt wanneer de houder al geauthenticeerd was op de plek waar het offer werd aangemaakt, bijvoorbeeld direct na het inloggen op een overheidsportaal, optioneel beschermd door een transactiecode die op datzelfde kanaal wordt getoond zodat een onderschepte code niet door iemand anders kan worden verzilverd. Vandaar leest de wallet de metadata van de uitgever om te weten te komen wat de genoemde credentials daadwerkelijk bevatten, wisselt de grant om voor een access token bij het token-endpoint van de uitgever, en roept het credential-endpoint aan om op te halen wat werd aangeboden, één credential of een batch tegelijk, afhankelijk van wat de uitgever ondersteunt.

Waarom vragen sommige Credential Offers om een transactiecode en andere niet?

Een transactiecode is vereist wanneer het offer een pre-authorized code grant gebruikt, omdat de houder al op een ander kanaal is geauthenticeerd en de code bewijst dat wie het offer scant dezelfde persoon is die op dat kanaal is geauthenticeerd. Een authorization code grant stuurt de houder in plaats daarvan als onderdeel van de flow door de eigen login van de uitgever, dus is er geen apart kanaal om te binden en geen code nodig.

Terug naar de woordenlijst