Hva som kommer i tillegg til OpenID4VP
En vanlig presentasjon deler bevis. En forsegling må i tillegg beskrive dokumentene, vise dem til brukeren, kontrollere hashene, gjennomføre eSeal-operasjonen og levere resultatet til riktig mottaker.
transaction_data bærer denne konteksten. Hvert element er base64url-enkodet JSON og må knyttes til et bevis gjennom credential_ids.
OpenID4VP 1.0 standardiserer den generelle bindingen. Kjernen definerer type og credential_ids, og SD-JWT VC-profilen beskriver transaction_data_hashes. Typeverdien qes_authorization og feltene documentDigests, transaction_id og dispatch er del av Symfonis integrasjonsprofil. De skal ikke presenteres som universelle OpenID4VP-felt eller som bevis på et kvalifisert nivå.
Bindingene som må holde
credential_idsviser til forespurte virksomhetsbevis.nonceer unik for forespørselen og hindrer gjenbruk.- Hver
documentDigesthar en stabilid, PDF-kilde og SHA-256-hash. transaction_idknytter leveransen til mottakerens sak.dispatch.urlog engangstoken bestemmer hvor resultatet kan leveres.- Leveringsorigin må være knyttet til forespørselen eller godkjent på forhånd.
transaction_data_hashesi SD-JWT VC-ens Key Binding JWT må stemme med de kodede verdiene mottakeren sendte.
Leveringskontrakten
Symfoni sender ett multipart/form-data-kall per transaction_data-element. Manifestet navngir alle dokumentdelene. Mottakeren må behandle leveransen atomisk: Ikke marker saken som fullført dersom én dokumentdel mangler.
Mottakeren må også validere presentasjonen og kontrollere transaction_data_hashes før leveransen og beviset behandles som samme autoriserte transaksjon.
Redirects følges ikke. Responskroppen fra et mislykket mottak eksponeres heller ikke videre, fordi den kan inneholde sensitiv informasjon.
Sikkerhetsspørsmål
Test minst gjenbrukt nonce, feil dokumenthash, ukjent dokumentorigin, manglende Bearer-token, duplisert dokument-id og avvist leveranse. Kontroller også at brukeren ser virksomhet, dokumentnavn og handling før godkjenning.
Se den konkrete Symfoni-guiden for eksempelpayload.