Skip to content

Sphereon-Opensource/edu-matching-portal

Repository files navigation

eduID Wallet Matching Portal

Privacy-preserving identity matching portal that connects eduID wallet credentials with institutional identities via SURFconext federation. Both federated login (OIDC via SURFconext) and wallet-based login (OID4VP) produce identical OIDC tokens from the Security Token Service, so downstream systems are unaware of which authentication method was used.

Documentation

Full documentation is available at docs.sphereon.com/eduid-wallet-matching-portal.

Topics covered:

Quick Start

cd deploy/docker
docker compose up

Portal: http://localhost:3000 | STS: http://localhost:8092 | Auth Bridge: http://localhost:8090

Architecture

Service Port Technology Purpose
Portal (BFF) 3000 Next.js 15, NextAuth.js v5 Frontend, session management, BFF proxy
Service-STS 8092 Kotlin/JVM, Ktor, IDK OAuth2/OIDC authorization server
Service-Auth-Bridge 8090 Kotlin/JVM, Ktor, IDK OID4VP, identity matching, reconciliation
PostgreSQL 5432 PostgreSQL 15 Encrypted identity storage

Key Design Principles

  • Zero plaintext identifiers in the database (HMAC-SHA256 hashed, AES-256-GCM encrypted)
  • Domain-separated keys (Key A for holder hashing, Key B for institution hashing, Key C for encryption)
  • GDPR-by-architecture (data minimization, crypto-shredding, right to erasure)
  • Standard OIDC output (downstream systems don't know which auth method was used)
  • Configuration-driven reconciliation (no code changes for new providers or rules)

License

Apache-2.0. Copyright Sphereon International B.V.

About

Portal that can reconcile eduID (SURFConext) or other OIDC IAM solutions with wallet based logins

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors