OpenID4VCI
OpenID4VCI, OpenID for Verifiable Credential Issuance, è il protocollo che un wallet utilizza per richiedere e ricevere una credenziale da un emittente tramite un flusso standard basato su OAuth2.
Un titolare avvia il flusso dal proprio wallet, scansionando un codice QR oppure seguendo un deep link dal sito web o dall'app di un emittente, e il wallet recupera un Credential Offer che descrive quale tipo di credenziale viene offerto e dove ottenerla. L'emittente autentica il titolare, ad esempio tramite login eID o scansione di un documento, e verifica ogni prova di idoneità di cui ha bisogno prima di generare la credenziale, che restituisce firmata in un formato come SD-JWT VC o mdoc. Esistono due modalità di rilascio: il flusso a codice pre-autorizzato, in cui il titolare ha già seguito un processo fuori banda, come una visita in filiale bancaria, e deve solo importare la credenziale risultante nel wallet, e il flusso a codice di autorizzazione, che rispecchia un normale login OAuth2 e permette al rilascio di avvenire interamente online in un'unica sessione. Una prova di key-binding lega la credenziale a una chiave specifica detenuta solo da quella istanza di wallet, così un file di credenziale rubato non può essere riprodotto da un dispositivo diverso. OpenID4VCI è il protocollo di rilascio su cui è costruita l'implementazione di riferimento dell'EUDI Wallet ai sensi di eIDAS 2.0, quindi un emittente che lo supporta può raggiungere ogni wallet dell'UE con un'unica integrazione anziché con un connettore su misura per ogni Stato membro o fornitore di wallet. Lo stesso protocollo funziona altrettanto bene per una patente di guida mobile, un diploma universitario o un estratto di iscrizione al registro delle imprese, dato che il contenuto della credenziale è opaco per il livello di trasporto che la consegna.
Termini correlati
OpenID4VCI funziona allo stesso modo per ogni tipo di credenziale?
Sì. OpenID4VCI è un protocollo di trasporto e autorizzazione, non un formato di credenziale, quindi lo stesso flusso rilascia un SD-JWT VC, un mdoc o qualsiasi altro tipo di credenziale supportato da un emittente. Un wallet deve implementare OpenID4VCI una sola volta per ricevere credenziali da qualsiasi emittente che parli lo stesso protocollo, indipendentemente da ciò che la credenziale rappresenta.