Introduzione alla prova dell'origine dell'API Digital Credentials

Una prova dell'origine dell'API Digital Credentials inizierà a partire da Chrome 128. L'API Digital Credentials è una nuova API della piattaforma web che consente ai siti web di richiedere selettivamente informazioni verificabili sull'utente tramite credenziali digitali, come la patente di guida o una carta d'identità nazionale memorizzata in un portafoglio digitale.

Sfondo

L'identità digitale reale sta diventando una realtà con molte entità pubbliche e private che iniziano a emettere credenziali digitali associate ai dispositivi. Ad esempio, le patenti di guida e i documenti di identità per dispositivi mobili in alcuni stati degli Stati Uniti (come Arizona, California, Colorado, Georgia e Maryland) ora possono essere forniti su app di portafoglio digitale come Google Wallet sui dispositivi mobili. Stanno emergendo anche normative relative all'accettazione delle credenziali digitali per alcune verifiche online, il che ne è un esempio eIDAS 2.0.

Patente di guida su dispositivo mobile in Google Wallet
Patente di guida per dispositivi mobili in Google Wallet.

Le caratteristiche di una qualifica digitale dipendono dal suo formato, anche se in genere includono:

  • Sicurezza e privacy migliorate: l'utilizzo della crittografia avanzata e di metodi di autenticazione efficaci contribuisce a proteggere i dati sensibili e garantisce un accesso sicuro. Ad esempio, la presentazione di una credenziale è generalmente protetta tramite un'autenticazione utente tramite l'app Wallet.
  • Divulgazione selettiva: le Parti basate (RP) possono richiedere informazioni selezionate dalla credenziale, consentendo agli utenti di limitare i dati condivisi a ciò che è necessario per il caso d'uso. Ad esempio, è possibile condividere se un utente ha più di 18 anni senza rivelare la sua data di nascita.
  • Interoperabilità: la qualifica deve rispettare gli standard internazionali, consentendo la compatibilità tra diversi sistemi e paesi, facilitando l'accettazione transfrontaliera.
  • Verificabilità: i dati delle credenziali condivisi sono firmati digitalmente dall'emittente. Il parte soggetta a limitazioni può verificare questa firma per verificare l'autenticità dei dati.

A causa delle credenziali digitali verificabile, potrebbero consentire casi d'uso quali:

  • Verifica dell'età:richiedi l'età per verificare l'età di una persona prima di pubblicare contenuti soggetti a limiti di età o acquistare articoli soggetti a limiti di età.
  • Verifica dell'identità:richiedi nome e indirizzo per verificare l'identità di una persona ai fini della conformità legale o di prevenzione di attività fraudolente.
  • Controllo dei privilegi di guida:verifica l'idoneità di una persona a guidare (ad esempio, quando noleggi un'auto).

Poiché i siti web hanno iniziato a comunicare direttamente con le applicazioni di portafoglio per dispositivi mobili (ad esempio utilizzando schemi di URL personalizzati) per richiedere credenziali digitali per vari casi d'uso, i browser intravedono l'opportunità di rendere questa interazione più sicura, resistente agli abusi e più facile da utilizzare tramite un'API appositamente creata.

Presentazione dell'API Digital Credentials

L'API Digital Credentials è una nuova API della piattaforma web che consente ai siti web delle parti soggette a limitazioni di richiedere la presentazione di credenziali digitali da app Wallet. L'API è disponibile in Chrome come prova dell'origine a partire da Chrome 128.

L'API è indipendente dal protocollo e consente all'RP di specificare un protocollo in base ai propri requisiti. Quando una parte soggetta a limitazioni effettua una richiesta, il browser invia la richiesta al sistema operativo mobile che cerca una credenziale corrispondente nelle applicazioni Wallet installate. Se ne vengono trovate, il sistema operativo mobile chiede all'utente di selezionarne una e invia la richiesta al portafoglio selezionato dall'utente. Dopo un'autenticazione locale, il wallet restituisce una risposta contenente i dati delle credenziali richiesti.

. Diagramma della comunicazione tra il browser, il wallet e la parte coinvolta.

Chrome supporterà innanzitutto l'API in Chrome su Android per richiedere le credenziali da app Wallet sullo stesso dispositivo. In futuro, prevediamo di supportare la versione desktop di Chrome per la richiesta di credenziali cross-device da un altro dispositivo mobile.

Al momento del lancio, Google Wallet si integra con l'API Digital Credentials, consentendo ad aziende e organizzazioni selezionate di avviare una richiesta per consentire agli utenti di presentare il proprio documento di identità online tramite Chrome su Android e di verificare l'autenticità dei dati trasmessi esaminando la firma crittografica. Per partecipare, compila questo modulo per comunicarci il tuo interesse ad accettare documenti di identità digitali da Google Wallet.

A breve l'API verrà utilizzata anche dagli Account Google per verificare la presenza di utenti specifici data di nascita. Gli utenti che risiedono in uno stato degli Stati Uniti supportato potranno utilizzare il documento di identità statale o la patente di guida forniti nelle app Wallet disponibili (incluso Google Wallet) per condividere senza problemi solo la propria data di nascita con Google senza condividere altri dettagli della propria identità. Questo consente agli utenti di dimostrare a Google, nel rispetto della privacy, che soddisfano i requisiti di età relativi all'account.

Prova

Per provare l'API Digital Credentials, segui le istruzioni:

  1. Installa l'applicazione di portafoglio demo seguendo le istruzioni descritte in questa pagina.
    • Scarica un'applicazione demo Wallet sul tuo dispositivo Android.
    • Esegui un comando adb install -t <path-to-apk> per installare l'app.
  2. Avvia l'app IC Wallet ed esegui il provisioning di una patente di guida per dispositivi mobili (mDL) demo.
    • Tocca il pulsante del menu e seleziona Aggiungi documento autofirmato.
  3. Vai all'indirizzo https://digital-credentials.dev con Chrome 128 o versioni successive.
  4. Premi Richiedi credenziali (OpenID4VP).

Guarda la demo che utilizza https://digital-credentials.dev, un sito web di test che consente agli sviluppatori di generare richieste di credenziali per attributi diversi:

Ecco come funziona la demo passo passo:

. 1. L'utente viene indirizzato al sito web dell'utente in questione e gli viene richiesto di presentare il suo cognome verificato, il suo nome e una garanzia di età che abbia più di 21 anni.
di Gemini Advanced.
.
.
2. Il browser conferma se l'utente intende condividere credenziali digitali con questo sito web.
. 3. Il sistema operativo mostra le informazioni richieste e le credenziali idonee che possono corrispondere alla richiesta di selezione e completamento della richiesta da parte dell'utente.
di Gemini Advanced.
.
.
4, Il portafoglio autentica in locale l'utente con lo sblocco dello schermo.

. 5. La credenziale digitale richiesta viene ora passata al sito web della parte coinvolta.

Come funziona l'API

L'API Digital Credentials si basa sull'API Credential Management, ma su una piattaforma API indipendente: navigator.identity. Chiamando navigator.identity.get(), il sito web può richiedere una credenziale digitale memorizzata in un'app Wallet per dispositivi mobili. di Google.

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

La superficie API di base è simile a navigator.credentials.get(), tranne per il fatto che accetta solo il tipo di credenziali "digital". All'interno del tipo di credenziali digitali, aggiungi un array providers contenente IdentityRequestProvider con i seguenti parametri di base:

Payload di esempio al tipo di credenziali digitali utilizzando OID4VP:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {     
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

Con questa richiesta, i portafogli che hanno una patente di guida digitale sul dispositivo forniranno un set di credenziali verificabili contenenti:

  • Cognome dell'utente.
  • Nome dell'utente.
  • Un valore booleano che indica se l'utente ha o meno di 21 anni.

Ecco un esempio di payload di risposta:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

In questo esempio, la credenziale è stata richiesta con il protocollo "openid4vp" e la risposta contiene "vp_token" nella proprietà data. Consulta la specifica OpenID for Verifiable Presentation (OID4VP) per la specifica dell'API W3C Digital Credentials per scoprire come analizzare la risposta e verificare la credenziale.

L'API Digital Credentials è supportata su Chrome su Android come prova dell'origine. Al momento Chrome su computer e iOS non supporta questa funzionalità. Per gli altri motori del browser, le conversazioni attive sono agevolate tramite il W3C Web Incubator Community Group.

Partecipare alla prova dell'origine

Per lo sviluppo, puoi attivare l'API Digital Credentials in locale attivando il flag di Chrome chrome://flags#web-identity-digital-credentials in Chrome 128 o versioni successive.

Questa funzionalità è disponibile anche come prova dell'origine. Le prove dell'origine consentono di provare nuove funzionalità e fornire feedback sulla loro usabilità, pratica ed efficacia alla community degli standard web. Per maggiori informazioni, consulta la guida introduttiva alle prove dell'origine. Per registrarti a questa o a un'altra prova dell'origine, visita la pagina di registrazione.

  1. Richiedi un token per la tua origine.
  2. Aggiungi il token alle tue pagine. Puoi farlo in due modi:
    • Aggiungi un tag origin-trial <meta> all'intestazione di ogni pagina. Ad esempio: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Se puoi configurare il server, puoi anche aggiungere il token utilizzando un'intestazione HTTP Origin-Trial. L'intestazione della risposta risultante dovrebbe avere un aspetto simile a questo:Origin-Trial: TOKEN_GOES_HERE.
di Gemini Advanced.

Condividi feedback

Se hai feedback sull'API Digital Credentials, inviali all'apposito strumento Chromium Issue Tracker.