Le credenziali digitali sono documenti verificabili tramite crittografia che possono essere utilizzati per autenticare, autorizzare o fornire informazioni su un utente. Si tratta in genere di elementi come patenti di guida mobile, passaporti digitali, carte d'imbarco e così via. Si trovano in contenitori virtuali chiamati portafogli digitali e fanno parte di uno standard W3C che specifica come accedervi e recuperarli. Questo standard viene implementato per i casi d'uso web con l'API Credential Management di W3C e su Android con l'API DigitalCredential di Gestore delle credenziali.
Informazioni sulle credenziali digitali
Nel mondo fisico, una persona potrebbe tenere la propria identità nel portafoglio e mostrarla a una parte richiedente quando richiesto:
In questo caso, un utente in genere ha un solo portafoglio e recupera le credenziali richieste dal portafoglio per presentarle al richiedente. I portafogli sono per lo più intercambiabili e possono generalmente memorizzare le stesse cose.
Le credenziali digitali presentano alcune differenze principali:
- Gli utenti dovrebbero avere più portafogli, noti anche come titolari, che possono contenere varie credenziali diverse. I wallet determinano quali credenziali possono essere memorizzate al loro interno.
- Il richiedente ora è un'applicazione anziché una persona reale e viene definito verificatore.
- La presentazione delle credenziali avviene nel software, il che significa che una superficie API recupera e presenta le credenziali. In Android, questa è Credential Manager.
Pertanto, Credential Manager assume diversi ruoli che in precedenza erano gestiti dall'utente:
- Su Android, i wallet devono registrare i metadati delle credenziali con Credential Manager per essere visualizzati nell'interfaccia utente di Credential Manager.
- Credential Manager abbina le credenziali nei vari wallet in base alla richiesta e presenta un elenco che l'utente può selezionare.
- Quando l'utente seleziona una credenziale nell'elenco, Credential Manager richiama il wallet, che gestirà il resto della transazione (mostrando le UI e così via) e restituirà la credenziale all'applicazione.
Questo flusso è mostrato qui:
Esperienza utente
Come mostrato nel flusso Android, l'utente deve interagire una sola volta con l'interfaccia utente di Credential Manager per selezionare le credenziali appropriate. Ecco un esempio di come appare il selettore:
Standard
Le richieste di credenziali digitali vengono create utilizzando lo standard OpenID4VP. Puoi visualizzare richieste di esempio nel sito demo delle credenziali digitali.
Le risposte alle credenziali digitali vengono in genere restituite in un formato standardizzato. Questi sono gestiti da diversi enti di standardizzazione e includono W3C Verifiable Credentials, sd-jwt e mdoc.
Sono possibili anche protocolli personalizzati, anche se ti consigliamo di utilizzare uno dei protocolli standard nella tua applicazione.
Prova
Puoi provare il flusso delle credenziali digitali su più piattaforme con un wallet Android e un verificatore basato sul web:
- Installa l'esempio pubblico di CMWallet sul tuo smartphone Android.
Puoi farlo estraendo i file dal repository e installandoli direttamente da
Android Studio o accedendo a
https://github.com/digitalcredentialsdev/CMWallet/actions
e selezionando l'ultima build per accedere al file
app-debug.apkpiù recente. - Apri CMWallet per registrare i metadati con Credential Manager. Assicurati che il Bluetooth sia attivo per consentire ai dispositivi di connettersi tra loro.
- Vai alla pagina https://digital-credentials.dev/ e seleziona
Request Credentials (OpenID4VP). - Accetta i prompt di avviso e scansiona il codice QR con lo smartphone, poi seleziona "Usa passkey" e tocca la conferma per visualizzare le credenziali disponibili.
- Seleziona la credenziale da CMWallet per tornare al browser. Il browser dovrebbe mostrare la credenziale restituita.
Vedi anche
- Per scoprire di più sull'utilizzo di Credential Manager per richiedere credenziali digitali nella tua app, consulta la pagina API Credential Manager - Verifier.
- Per scoprire di più su come creare un portafoglio digitale utilizzando Credential Manager, leggi la pagina API Credential Manager - Holder.