Credential Offer
Un Credential Offer è il messaggio che un emittente invia a un wallet per avviare il rilascio secondo OpenID4VCI: indica l'emittente, dice quali credenziali sono offerte e comunica al wallet in che modo può ritirarle.
In pratica, l'offerta è ciò che sta dietro il codice QR su una pagina di rilascio o il link in un'email o in un'app. Può essere consegnata per valore, incorporata direttamente in un deep link openid-credential-offer:// o in un payload QR, oppure per riferimento, come URL che il wallet recupera per ottenere lo stesso contenuto, il che mantiene il codice breve quando l'offerta indica più credenziali o porta con sé uno stato dell'emittente lungo. Scansionarla o aprirla consegna al wallet l'URL dell'emittente e uno o più identificativi di configurazione della credenziale, oltre a un grant che decide il resto del flusso: un authorization code grant fa passare il titolare prima attraverso il login dell'emittente, utile quando l'offerta è stata generata su un dispositivo diverso da quello che completa il flusso, mentre un pre-authorized code grant viene usato quando il titolare era già autenticato dove è stata creata l'offerta, ad esempio subito dopo l'accesso a un portale governativo, opzionalmente protetto da un codice di transazione mostrato sullo stesso canale, cosicché un codice intercettato in transito non possa essere riscattato da qualcun altro. Da lì il wallet legge i metadati dell'emittente per sapere cosa contengono effettivamente le credenziali indicate, scambia il grant con un token di accesso presso l'endpoint token dell'emittente, e chiama l'endpoint delle credenziali per raccogliere ciò che è stato offerto, una credenziale o un intero blocco alla volta a seconda di ciò che l'emittente supporta.
Termini correlati
Perché alcuni Credential Offer chiedono un codice di transazione e altri no?
Un codice di transazione è richiesto ogni volta che l'offerta usa un pre-authorized code grant, poiché il titolare era già autenticato su un altro canale e il codice dimostra che la persona che scansiona l'offerta è la stessa che quel canale ha autenticato. Un authorization code grant invece fa passare il titolare attraverso il login dell'emittente come parte del flusso, quindi non c'è un canale separato da collegare né un codice necessario.