Maak kennis met de proefversie van de Digital Credentials API

Gepubliceerd: 4 september 2024

Een proefperiode voor de Digital Credentials API start in Chrome 128. De Digital Credentials API is een nieuwe API voor webplatforms waarmee websites selectief verifieerbare informatie over de gebruiker kunnen opvragen via digitale referenties, zoals een rijbewijs of een nationale identiteitskaart die zijn opgeslagen in een digitale portemonnee.

Achtergrond

Digitale identiteit in de echte wereld wordt steeds meer realiteit, nu veel publieke en private instanties beginnen met het uitgeven van apparaatgebonden digitale identificatiegegevens. Zo kunnen mobiele rijbewijzen en identiteitsbewijzen in bepaalde Amerikaanse staten (zoals Arizona, Californië, Colorado, Georgia en Maryland) nu worden gekoppeld aan digitale portemonnee-apps zoals Google Wallet op mobiele apparaten. Ook regelgeving met betrekking tot de acceptatie van digitale identificatiegegevens voor bepaalde online verificaties is in opkomst, en eIDAS 2.0 is daar een voorbeeld van.

Mobiel rijbewijs in Google Wallet
Mobiel rijbewijs in Google Wallet.

De kenmerken van een digitale referentie zijn afhankelijk van het formaat, maar omvatten doorgaans:

  • Verbeterde beveiliging en privacy : Het gebruik van geavanceerde encryptie en sterke authenticatiemethoden helpt gevoelige gegevens te beschermen en garandeert veilige toegang. Zo wordt het tonen van een inloggegevens meestal beschermd door een gebruikersauthenticatie via de wallet-app.
  • Selectieve openbaarmaking : Relying Parties (RP's) kunnen bepaalde informatie uit de inloggegevens opvragen, waardoor gebruikers de gedeelde gegevens kunnen beperken tot wat nodig is voor de use case. Zo kan bijvoorbeeld worden aangegeven of een gebruiker ouder is dan 18 jaar, zonder dat de geboortedatum van de gebruiker bekend wordt gemaakt.
  • Interoperabiliteit : de kwalificatie moet voldoen aan internationale normen, zodat deze compatibel is met verschillende systemen en landen en grensoverschrijdende acceptatie wordt vergemakkelijkt.
  • Verifieerbaarheid : De gedeelde inloggegevens worden digitaal ondertekend door de uitgever. RP kan deze handtekening verifiëren om de authenticiteit van de gegevens vast te stellen.

Omdat digitale referenties verifieerbaar zijn, kunnen ze onder meer de volgende toepassingen mogelijk maken:

  • Leeftijdsverificatie: Vraag om leeftijd om de leeftijd van een persoon te verifiëren voordat u leeftijdsafhankelijke content aanbiedt of leeftijdsafhankelijke artikelen koopt.
  • Identiteitsverificatie: Vraag naam en adres op om de identiteit van een persoon te verifiëren voor wettelijke naleving of fraudepreventie.
  • Controle van rijbevoegdheid: hiermee controleert u of iemand mag rijden (bijvoorbeeld bij het huren van een auto).

Nu websites rechtstreeks met mobiele portemonnee-applicaties communiceren (bijvoorbeeld door gebruik te maken van aangepaste URL-schema's) om digitale inloggegevens op te vragen voor verschillende use cases, zien browsers een kans om deze interactie veiliger, beter bestand tegen misbruik en gebruiksvriendelijker te maken via een speciaal ontwikkelde API.

Introductie van de Digital Credentials API

De Digital Credentials API is een nieuwe webplatform-API waarmee RP-websites de presentatie van digitale referenties van wallet-apps kunnen opvragen. De API is beschikbaar in Chrome als proefversie vanaf Chrome 128.

De API is protocolonafhankelijk, waardoor de RP een protocol kan specificeren op basis van de vereisten. Wanneer een RP een verzoek indient, stuurt de browser het verzoek naar het mobiele besturingssysteem, dat in geïnstalleerde wallet-applicaties naar overeenkomende inloggegevens zoekt. Als er een gevonden wordt, vraagt ​​het mobiele besturingssysteem de gebruiker er een te selecteren en stuurt het verzoek naar de door de gebruiker geselecteerde wallet. Na een lokale authenticatie stuurt de wallet een antwoord met de gevraagde inloggegevens.

Diagram van de communicatie tussen de browser, de portemonnee en de vertrouwende partij.

Chrome ondersteunt eerst de API in Chrome op Android voor het opvragen van inloggegevens vanuit wallet-apps op hetzelfde apparaat. In de toekomst willen we Chrome desktop ondersteunen om inloggegevens op meerdere apparaten op te vragen vanaf een ander mobiel apparaat.

Bij de lancering zal Google Wallet integreren met de Digital Credentials API, waardoor geselecteerde bedrijven en organisaties gebruikers online, via Chrome op Android, een verzoek kunnen sturen om hun identiteitsbewijs te tonen en de authenticiteit van de verzonden gegevens kunnen verifiëren door de cryptografische handtekening te controleren. Om deel te nemen, vult u dit formulier in om uw interesse in het accepteren van digitale identiteitsbewijzen van Google Wallet aan te geven.

De API zal binnenkort ook door Google Accounts worden gebruikt om de geboortedatum van bepaalde gebruikers te verifiëren. Gebruikers die in een ondersteunde Amerikaanse staat wonen, kunnen hun staats-ID of rijbewijs, geregistreerd in beschikbare wallet-apps (waaronder Google Wallet), gebruiken om naadloos alleen hun geboortedatum met Google te delen, zonder andere identiteitsgegevens te delen. Dit stelt gebruikers in staat om op een privacybeschermende manier aan Google aan te tonen dat ze voldoen aan de leeftijdsvereisten voor hun account.

Probeer het eens

Vereisten:

  • Google Play-services 23.40 of later
  • Chrome 128 of later
  • Schakel de vlag in op chrome://flags#web-identity-digital-credentials

Om de Digital Credentials API uit te proberen, volgt u deze instructies:

  1. Installeer de demo-wallet-applicatie volgens de instructies.
  2. Start de IC Wallet -app en maak een demo mobiel rijbewijs (mDL) aan.
    • Tik op de menuknop en selecteer Zelfondertekend document toevoegen.
  3. Ga naar https://digital-credentials.dev met Chrome 128 of hoger.
  4. Druk op Aanvraaggegevens (OpenID4VP).

Bekijk de demo die gebruikmaakt van https://digital-credentials.dev , een testwebsite voor ontwikkelaars om inloggegevens aan te vragen voor verschillende kenmerken:

Hieronder ziet u stap voor stap hoe de demo werkt:

1. De gebruiker komt op de website van de vertrouwende partij terecht en wordt gevraagd om zijn/haar geverifieerde achternaam, voornaam en een leeftijdsverklaring van 21 jaar of ouder in te voeren.
2. De browser bevestigt of de gebruiker van plan is om digitale gegevens met deze website te delen.
3. Het besturingssysteem geeft de opgevraagde informatie weer, evenals de inloggegevens die overeenkomen met de aanvraag, zodat de gebruiker de aanvraag kan selecteren en voltooien.
4. De portemonnee authenticeert de gebruiker lokaal door middel van schermontgrendeling.

5. De aangevraagde digitale referentie wordt nu doorgegeven aan de website van de vertrouwende partij.

Hoe de API werkt

De Digital Credentials API is gebaseerd op de Credential Management API , maar dan vanuit een onafhankelijk API-platform: navigator.identity . Door navigator.identity.get() aan te roepen, kan de website een digitale referentie opvragen die is opgeslagen in een mobiele wallet-app.

// 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: {...}
      }
    }],
  }
});

Het basis-API-oppervlak is vergelijkbaar met navigator.credentials.get() , met dit verschil dat het alleen het type "digital" referentie accepteert. Voeg binnen het type 'digitale referentie' providers array toe die IdentityRequestProvider bevat met de volgende basisparameters:

  • protocol : Specificeer een uitwisselingsprotocol met een tekenreeks. Ten tijde van de oorspronkelijke proefperiode was het primaire protocol dat werd ontwikkeld "openid4vp" .
  • request : Vul de parameters in die digitale wallet-apps accepteren voor het opgegeven protocol. Voor "openid4vp" zijn de parameters gedefinieerd in OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie.

Voorbeeld van een payload voor het digitale identificatietype met behulp van 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
            }
          ]
        }
      }],
    }
  }
}

Met deze aanvraag verstrekken wallets met mDL's op het apparaat een verifieerbare set inloggegevens die het volgende bevat:

  • Achternaam van de gebruiker.
  • Voornaam van de gebruiker.
  • Een Booleaanse waarde die aangeeft of de gebruiker ouder is dan 21 jaar.

Hier is een voorbeeld van een respons-payload:

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

In dit voorbeeld is de referentie opgevraagd met het "openid4vp" -protocol en bevat het antwoord "vp_token" in de data eigenschap. Raadpleeg OpenID for Verifiable Presentation (OID4VP) voor de W3C Digital Credentials API- specificatie om te leren hoe u de reactie parseert en de referentie verifieert.

Digital Credentials API wordt ondersteund in Chrome op Android als proefversie . Chrome op desktop en iOS ondersteunt het momenteel niet. Voor andere browsers worden actieve gesprekken gefaciliteerd via de W3C Web Incubator Community Group .

Doe mee aan het oorsprongsonderzoek

Voor ontwikkeling kunt u de Digital Credentials API lokaal inschakelen door de Chrome-vlag chrome://flags#web-identity-digital-credentials in Chrome 128 of hoger in te schakelen.

Deze functie is ook beschikbaar als proefversie van Origin. Met proefversies van Origin kunt u nieuwe functies uitproberen en feedback geven over hun bruikbaarheid, bruikbaarheid en effectiviteit aan de webstandaardencommunity. Zie ' Aan de slag met proefversies van Origin' voor meer informatie. Om u aan te melden voor deze of een andere proefversie van Origin, gaat u naar de registratiepagina .

  1. Vraag een token aan voor jouw oorsprong.
  2. Voeg het token toe aan je pagina's. Er zijn twee manieren om dat te doen:
    • Voeg een origin-trial <meta> -tag toe aan de head van elke pagina. Dit kan er bijvoorbeeld zo uitzien: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • Als u uw server kunt configureren, kunt u het token ook toevoegen met behulp van een Origin-Trial HTTP-header. De resulterende responsheader zou er ongeveer zo uit moeten zien: Origin-Trial: TOKEN_GOES_HERE.

Feedback delen

Als u feedback hebt over de Digital Credentials API, kunt u deze indienen via de speciale Chromium-probleemtracker .