Architektur & Setup
Docs
Standards
- ·
OID4VCI Draft 15Pre-Authorized Code Flow - ·
OID4VP Draft 24direct_post mit signiertem Request-Object - ·
SD-JWT VC (vc+sd-jwt)mit selective disclosure - ·
did:jwk·ES256· Key-Binding-JWT für Holder-Auth - ·
StatusList 2021-Bitstring für Revocation
Endpoints (öffentlich, CORS *)
- GET/api/public/.well-known/openid-credential-issuer
- GET/api/public/.well-known/jwt-vc-issuer
- GET/api/public/oid4vci/credential-offer/$id
- POST/api/public/oid4vci/token
- POST/api/public/oid4vci/credential
- GET/api/public/oid4vci/status/$listId
- GET/api/public/oid4vp/request/$id
- POST/api/public/oid4vp/response/$id
- GET/api/public/oid4vp/result/$id
End-to-End-Test mit Sphereon Wallet
- 1. Projekt publishen — Sphereon braucht eine echte HTTPS-URL, kein localhost.
- 2. Im Issuer-Dashboard ein Event + Ticket anlegen, „Offer & QR" klicken.
- 3. Sphereon Wallet öffnen → Scan-Button → QR scannen → Ticket annehmen.
- 4. Im Verifier ein Request erstellen, am Telefon scannen → Policy-Result erscheint.
Policy-Engine
Jede Präsentation wird gegen 6 Regeln geprüft:
- · issuer_trusted
- · not_expired
- · not_revoked (StatusList-Bit)
- · block_allowed
- · transfer_within_limit
- · holder_binding (cnf.jwk + KB-JWT-Signatur)
Bekannte Demo-Limits
- · Issuer-Keys liegen in der DB, nicht im HSM.
- · Trust-Liste ist single-issuer (der lokale Issuer).
- · StatusList wird als signiertes JWT geliefert, aber ohne Crypto-Kette publiziert.
- · Kein DPoP, kein Replay-Schutz auf Token-Endpoint.