Hoe werkt wallet-login technisch? Een introductie tot OpenID4VP en DCQL

OpenID4VP: het protocol achter de aanvraag

OpenID for Verifiable Presentations (OpenID4VP) is de open standaard waarmee een “verifier” — in dit geval de webshop — een presentatieverzoek stuurt naar de wallet van de klant. De wallet toont de klant welke gegevens worden gevraagd en door wie, en de klant beslist of hij akkoord gaat.

DCQL: precies aangeven wat je nodig hebt

Digital Credentials Query Language (DCQL) beschrijft in het verzoek exact welke credentials en velden nodig zijn. Bij een gewone login vraagt eIDAS Solutions bijvoorbeeld alleen voornaam, achternaam en e-mailadres op; bij een checkout wordt daar optioneel een adrescredential aan toegevoegd (straat, plaats, postcode, land, telefoonnummer). Omdat naam/geboortegegevens en adresgegevens vaak als aparte credentials in de wallet staan, ondersteunt DCQL “credential sets”: de webshop geeft aan welke combinatie verplicht is (identiteit) en welke optioneel (adres).

Selective disclosure met SD-JWT VC

De credentials zelf worden vaak uitgegeven in het dc+sd-jwt-formaat (SD-JWT Verifiable Credentials), dat selective disclosure ondersteunt: de wallet kan per veld beslissen of het wordt getoond, zonder de handtekening van de uitgever ongeldig te maken. Zo bewijst de klant dat zijn adres écht geverifieerd is, zonder bijvoorbeeld zijn geboortedatum te hoeven delen als die niet is opgevraagd.

In de praktijk: Magento + UniCore

In onze Magento-integratie stuurt de shop een DCQL-verzoek naar een UniCore SSI-agent, die de sessie met de wallet afhandelt. Zodra de klant akkoord gaat, ontvangt de webshop via een webhook de geverifieerde gegevens en wordt het account- of afrekenformulier automatisch ingevuld.