Hvorfor dette sporet finnes
Norsk sandbox er primær akseptansetest for domenet: BRREG/Altinn EBWOID, norske tillitskjeder og Symfoni-flytene. EUDI Dev Hub brukes i tillegg som et lett interoperabilitetsspor for standardprotokollene. Målet er å oppdage avvik i credential_offer, request_uri, response_uri, SD-JWT-VC-format og verifier-respons før de låser seg fast i demo- og produktflyter.
Dette er ikke full ARF-conformance. Første runde skal bare gi et praktisk signal om at walleten oppfører seg rimelig mot EUDI reference tooling.
Neste nivå er dokumentert i EUDI Dev Hub conformance-spor, med must/should/could, egne TEST_EUDI_* gates og tydelig skille mellom automatisk test, manuell runbook, produktkode og utsatte gap.
Kilder og testflater
- EUDI Dev Hub: Testverktøy
- EUDI issuer-test: Issuer
- EUDI reference repositories: Repositories list
- ARF-protokolloversikt: Architecture and reference framework
Bruk spesielt EUDI issuer eller advanced issuer tester for SD-JWT-VC issuance, og EUDI online verifier når credential type og request matcher det walleten faktisk støtter.
Forutsetninger
- Appen kjører lokalt på
http://localhost:3000eller med offentlig ingress viapnpm dev:ngrok. - Testbrukeren finnes lokalt, normalt
test/test. - Offeret er SD-JWT-VC. Walleten avviser foreløpig andre credential records i offerflyten.
- Request URI fra verifier ber om en credential type walleten har lagret.
- Engangs-URI-er må leve lenge nok til browser-prefetch og walletens korte resolve-cache.
Issuance med EUDI issuer
Start appen med offentlig URL hvis issuer må kalle tilbake til lokal maskin:
pnpm dev:ngrokHent et SD-JWT-VC credential offer fra EUDI issuer eller advanced issuer tester. Hvis issuer viser en “Use Wallet Tester”-lenke med
credential_offerogtx_code, kan hele den lenken brukes somTEST_CREDENTIAL_OFFER_URI.Kjør OID4VCI-testen med eksisterende env-var:
TEST_CREDENTIAL_OFFER_URI='https://tester.issuer.eudiw.dev/redirect_preauth?...' pnpm test:integration:live --grep OID4VCIVerifiser at credentialet ble lagret og vises i wallet UI.
Hvis testen feiler, noter konkret hvor feilen ligger: offer-resolving, issuer metadata, token/credential endpoint, SD-JWT-VC record, x509-trust, lagring eller UI-visning.
test:integration:live rydder den lokale testwalleten når prosessen avsluttes. For en sammenhengende issuance→presentation-flyt må begge URI-ene kjøres i samme fokuserte Playwright-kjøring.
Remote presentation med EUDI verifier
Hent både et nytt SD-JWT-VC-offer og en verifier-request som matcher credentialet. Den isolerte testwalleten opprettes på nytt for hver kommando.
Opprett en EUDI verifier-request med
Person Identification Data (PID),dc+sd-jwt,OpenID4VPogGET.Hvis verifieren tilbyr “Specific attributes”, start med felter som finnes i testcredentialet, for eksempel
Family name,Given nameogBirthdate. “All attributes” kan gi korrekt request-resolving, men likevel ende i “Ingen passende bevis funnet” hvis issuer ikke har utstedt alle feltene.Kopier
OPEN WITH YOUR WALLET-lenken. Den er normalt på formenopenid4vp://?client_id=...&request_uri=...&request_uri_method=get.Kjør issuance og nøyaktig én OID4VP-test i samme prosess:
TEST_CREDENTIAL_OFFER_URI='https://tester.issuer.eudiw.dev/redirect_preauth?...' TEST_PRESENTATION_REQUEST_URI='openid4vp://?client_id=...&request_uri=...&request_uri_method=get' pnpm test:integration:live --grep "should display presentation request UI elements"Verifiser minst at walleten kan åpne requesten, validere request object, matche credential og vise hva som etterspørres.
Hvis presentasjonen ikke kan fullføres, dokumenter årsaken presist som gap. Ikke la det stå igjen som en ukjent feil.
Live EUDI-run 2026-05-08
Dette ble kjørt manuelt mot EUDI issuer/verifier med Playwright:
- Issuance:
PID (SD-JWT VC)fra EUDI issuer medPre-Authorization Code Grantogtx_codebestod. IntegrasjonstestenTEST_CREDENTIAL_OFFER_URI='https://tester.issuer.eudiw.dev/redirect_preauth?...&tx_code=...&credential_offer=...' pnpm test:integration:live --grep 'Full Credential Issuance Flow'passerte, og credentialet ble lagret og vist i UI. - Trust: EUDI issuer-kjeden manglet i lokal trust store, så Credo traff eksisterende X.509-fallback og lagret credentialet uten full kryptografisk signaturverifisering. Dette er et trust-materiale-gap, ikke et offer parsing-gap.
- Presentation request: EUDI verifier med
All attributesga en gyldig request, men walleten fant ingen matchende credential fordi requesten var bredere enn den utstedte PID-en. - Presentation request: EUDI verifier med
Specific attributes=Family name,Given name,Birthdate, formatdc+sd-jwt, profilOpenID4VP, methodGETble løst av walleten og matchet1 bevis. - Presentation delivery: Første forsøk stoppet ved KB-JWT-signering fordi en eldre EUDI PID var lagret uten
kmsKeyIdfor holder-bindingen. Etter fixen for jwk-til-kms-key mapping ble en ny EUDI PID utstedt til en ren testbruker, samme verifier-request ble kjørt på nytt,Del bevissendte direct_post, og EUDI verifier viste1 documentsforurn:eudi:pid:1idc+sd-jwtformat.
Konkret oppfølging etter live-run:
- Bruk en ren testbruker eller slett gamle EUDI PID-er før ny VP-test. Eldre credentials som ble lagret før
kmsKeyId-fixen kan fortsatt bli valgt først og feile ved KB-JWT-signering. - Legg EUDI issuer CA/intermediate inn i lokal trust store for å fjerne X.509-fallbacken. Inntil det er gjort, er interop-resultatet protokollmessig nyttig, men ikke en full kryptografisk trust-godkjenning.
- Automatiser samme smale EUDI verifier-request når Dev Hub tilbyr stabile fixtures eller et API som ikke krever manuell browser-opprettelse av engangs-URI.
Typiske gap er mismatch mellom verifierens credential query og lagret credential, krav til mDoc/proximity, annen client binding enn walleten støtter, eller trust-materiale som ikke finnes i lokal konfigurasjon.
Ikke-mål i første runde
- mDoc og proximity testing.
- Deferred og dynamic issuance hvis hosted issuer krever mer enn eksisterende Credo-holderflyt håndterer.
- Wallet Instance Attestation, Key Attestation og en komplett Wallet Unit-modell.
- Full conformance mot ARF eller nasjonal sertifisering.
Akseptansekriterier
- Norsk sandbox-flyt med EBWOID fungerer fortsatt som domeneakseptanse.
- EUDI SD-JWT-VC offer kan løses, aksepteres, lagres og vises.
- EUDI OpenID4VP request kan åpnes og presenteres i wallet UI.
- Alle avvik skrives som konkrete gap med kilde, request type, miljø og feilsteg.