Anleitung · EU Wallet

Anmeldung mit dem Aloaha Web Wallet.

Diese Anleitung führt Sie durch die Anmeldung auf jeder Aloaha-Instanz über logineu.html mit dem browserbasierten Web Wallet — vom ersten Credential-Import bis zur signierten Sitzung. Jeder Schritt beschreibt das aktuelle Verhalten; nichts ist geplant oder theoretisch.

Web Wallet öffnen logineu.html öffnen Was ist das Web Wallet?

Neu am 2026-07-20. Das Wallet hat einen nativen QR-Code-Kamera-Scanner (auf Basis von BarcodeDetector), erste ISO 18013-5 mDoc-Primitiven (CBOR + COSE_Sign1 + mDoc-Ausstellung/Verifikation im Wallet, serverseitig MDocIssuer + MDocVerifier) und der OID4VCI-Issuer beherrscht neben dem bestehenden pre-authorized_code-Grant nun den authorization_code + PAR + PKCE-Flow. Alle Bausteine sind wallet- und issuer-seitig heute nutzbar; die End-to-End-mDoc-Verifikation benötigt zusätzlich Betreiber-bereitgestellte Vertrauensanker unter App_Data/<tenant>/trust/mdoc-issuers/ (fehlt das Verzeichnis, liefert der Endpoint HTTP 501). CWT-Proof-of-Possession (RFC 8747 / RFC 8392, HAIP §5.4) wird am Credential-Endpoint jetzt zusätzlich zum bestehenden JWT-Proof akzeptiert — Wallets wählen genau eine Variante pro Anfrage. Der weiter unten beschriebene Anmeldeflow bleibt unverändert.

Sie benötigen genau ein Credential für die Anmeldung: eine E-Mail-Attestierung. Das Wallet stellt es sich in wenigen Sekunden selbst aus dem OIDC-Profil aus. Danach ist jede weitere Anmeldung auf logineu.html zwei Klicks: Wallet öffnen, bestätigen.

Inhalt
  1. Voraussetzungen
  2. Ablauf im Überblick
  3. Schritt 1 — Wallet öffnen
  4. Schritt 2 — Im Wallet anmelden
  5. Schritt 3 — Attestierung importieren
  6. Schritt 4 — Zu logineu.html
  7. Schritt 5 — Web Wallet öffnen
  8. Schritt 6 — Bestätigen
  9. Schritt 7 — Angemeldet
  10. Welche Credentials passen
  11. Fehlerbehebung
  12. Unter der Haube

1. Voraussetzungen

2. Ablauf im Überblick

# Einmalig pro Browser 1. /de/web-wallet.html öffnen 2. Sign in tippen → OIDC PKCE 3. Import bei Verified email address # Jede Anmeldung (~4 Sekunden) 1. /de/logineu.html öffnen 2. Aloaha Web Wallet öffnen (neuer Tab) tippen 3. Im Wallet: Approve & present 4. logineu.html leitet nach /account.html weiter

3. Schritt 1 — Wallet öffnen

1

Rufen Sie /de/web-wallet.html auf Ihrer Instanz auf.

Beispiel: phone.aloaha.com/de/web-wallet.html. Der erste Besuch registriert den Service Worker — das Wallet ist danach als PWA verfügbar. Optional per Browser-Menü »Zum Startbildschirm hinzufügen«.

4. Schritt 2 — Im Wallet anmelden

2

Tippen Sie oben rechts auf Sign in.

Das Wallet nutzt OpenID Connect mit PKCE. Sie landen auf login.html, geben Passwort oder Passkey ein und werden zurück ins Wallet geleitet. Der Bearer-Token wird nur für den nächsten Schritt (Credential-Ausstellung) genutzt.

5. Schritt 3 — E-Mail-Attestierung importieren

3

Unter Available attestations from your profile auf Import bei Verified email address tippen.

Das Wallet fragt einen Pre-Authorized-Code bei /vci.ashx an. Der Issuer signiert einen kleinen SD-JWT VC (urn:aloaha:vc:email-verified), gebunden an den nicht-exportierbaren Wallet-Schlüssel (RFC 7800 cnf.jwk). Er wird lokal unter My credentials gespeichert.

6. Schritt 4 — Zu logineu.html

4

Rufen Sie /de/logineu.html auf.

Die Seite erzeugt sofort eine OpenID4VP-Session mit frischer Nonce und ephemer P-256-Verschlüsselungsschlüsseln. Der QR ist für offizielle EU-Wallets — für den Web-Wallet-Pfad ignorieren Sie ihn.

Geräteübergreifend: Sie können den Anmelde-QR auch mit dem Web Wallet auf dem Handy scannen (Button »QR-Code scannen«) — die Anmeldung schließt auf dem Handy ab. Benötigt Chrome auf Android oder Safari 17+ auf macOS/iOS.

7. Schritt 5 — »Aloaha Web Wallet öffnen« antippen

5

Ein Klick startet die Web-Wallet-spezifische Anfrage.

Die Seite ruft /oidc.ashx?action=vp-start&query=aloaha-identity auf, erhält einen frischen openid4vp://-Deep-Link und öffnet das Wallet mit vorbelegtem Link in einem neuen Tab: /de/web-wallet.html?openid4vp=....

8. Schritt 6 — Präsentation bestätigen

6

Im Wallet-Tab prüfen und bestätigen.

Das Wallet holt den signierten JWT Authorization Request (JAR), prüft das x509_san_dns-Zertifikat des Verifiers gegen die Vertrauensanker und zeigt Ihnen an:

  • Wer fragt (Verifier-client_id)
  • Welche Credentials verlangt sind (urn:aloaha:vc:email-verified oder urn:aloaha:vc:email)
  • Welche Claims offengelegt werden (email)
  • Welches Credential das Wallet präsentiert

Tippen Sie auf Approve & present. Das Wallet signiert ein frisches Key-Binding-JWT, baut das VP-Token und postet die Antwort (optional JWE-verschlüsselt für direct_post.jwt) an den Verifier.

9. Schritt 7 — Angemeldet

7

Zurück zum logineu.html-Tab.

Der Poll registriert HTTP 200 mit dem User, speichert die sso_assertion unter codeb.oidc.sso_assertion im localStorage und leitet nach /account.html weiter. Alle anderen Aloaha-Seiten im selben Browser erkennen die Sitzung automatisch.

10. Welche Credentials die Anmeldung akzeptiert

Der Web-Wallet-Button auf logineu.html ruft vp-start?query=aloaha-identity auf und baut eine DCQL-Abfrage für folgende Credential-Typen (eines reicht):

vctVerlangte ClaimsWallet-Quelle
urn:aloaha:vc:email-verified email Kachel »Verified email address«
urn:aloaha:vc:email email Kachel »Email address«

Die weiteren urn:aloaha:vc:*-Credentials (Name, Telefon-verifiziert, Postanschrift, Geburtsdatum, Über-18, Wunsch-Benutzername, Tenant-Mitgliedschaft) erfüllen die Login-Abfrage nicht, sind aber für Verifier-Flows wie Altersnachweis oder KYC-Vorprüfung nützlich — solche Verifier stellen sie über eigene vp-start-Aufrufe an.

Standardkonforme Verifier, die urn:eu.europa.ec.eudi:pid:1 (Mitgliedstaats-PID) verlangen, werden mit einem Aloaha-ausgestellten Credential nicht zufrieden sein. Dafür benötigen Sie das offizielle EUDI-Wallet mit einer national ausgestellten PID. Das Aloaha Web Wallet ist bei seiner Obergrenze ehrlich: maximal LoA-Substantial, keine Mitgliedstaats-PID.

11. Fehlerbehebung

»No attestations available from your OIDC profile« im Wallet.

Sich vorher anmelden (Button oben rechts). Die Liste kommt über einen Bearer-Token, der erst nach PKCE existiert.

Jede Kachel zeigt not ready.

Ihr OIDC-Profil hat noch keine Felder gefüllt. Unter account.html oder register.html mindestens E-Mail eintragen, dann Wallet neu laden.

Telefon / Adresse zeigt not ready.

Telefonnummer + »Verifiziert«-Haken bzw. Adresse (Straße + Ort + Land) im Profil hinterlegen. Dann Wallet neu laden. Falls die Kachel nicht wechselt, im Wallet einmal Sign out und wieder anmelden — damit der erweiterte OIDC-Scope aktiv wird.

logineu.html sagt »Presentation sent« ohne Weiterleitung.

Der Verifier hat die Antwort verworfen. Browser-Konsole im logineu.html-Tab zeigt den JSON-Fehler an, meist invalid_kb_jwt, nonce_mismatch oder trust_anchor_fail.

»Session abgelaufen — neu laden für neue Präsentation«.

Verifier-Sessions leben 5 Minuten. Wenn Sie länger gebraucht haben, logineu.html neu laden. Das entspricht der OpenID4VP-Empfehlung.

Wallet öffnet den Deep-Link-Tab, zeigt aber »JAR fetch failed«.

Selten. Die request_uri im Deep-Link zeigt auf /oidc.ashx?action=vp-request, das auf Ihre Instanz auflösen muss. Bei Captive-Portal oder DNS-Ausfall schlägt der Abruf fehl — sobald das Netz wieder läuft, erneut versuchen.

Browserdaten gelöscht — was passiert?

Wallet-Schlüssel und alle Credentials sind weg. Erneut ins Wallet anmelden, Credentials neu importieren. Serverseitig ist nichts an Ihren Wallet-Schlüssel gebunden — der Verifier kennt Sie ausschließlich über den SD-JWT-VC-Inhalt.

12. Unter der Haube

Für Entwickler, die sehen wollen, was tatsächlich auf der Leitung passiert:

SchrittEndpointZweck
Wallet-Anmeldung /oidc.ashx?action=authorize (PKCE) Bearer für /vci.ashx
Importierbare auflisten /vci.ashx?available-attributes Wallet-Kacheln
Credential importieren /vci.ashx (POST credential-offer + pre-auth code) Signierter SD-JWT VC + cnf.jwk
Präsentation starten /oidc.ashx?action=vp-start&query=aloaha-identity Frische Nonce, JAR, EPK
JAR abrufen /oidc.ashx?action=vp-request&id=<sid> ES256-signiertes Request-Object + x5c
Antwort posten /oidc.ashx?action=vp-response&id=<sid> VP-Token + KB-JWT + state
Ergebnis pollen GET /oidc.ashx?action=vp-response&id=<sid> Session-Lookup durch logineu.html

Alles standardkonform: OpenID4VP 1.0, HAIP 1.0, SD-JWT VC (draft-ietf-oauth-sd-jwt-vc), OpenID4VCI, RFC 7800 Holder-Binding.

Web Wallet öffnen Direkt bei logineu.html testen Wallet-Erklärung

Häufige Fragen

Muss ich etwas installieren?

Nein. Die Web Wallet ist eine Progressive Web App, die von Ihrem Aloaha-Mandanten ausgeliefert wird. Sie läuft in dem Browser-Tab, den Sie bereits geöffnet haben. Wenn Sie sie als App-Symbol möchten, können Sie sie über das Browsermenü zum Startbildschirm hinzufügen – sie funktioniert aber so oder so.

Welchen Nachweis brauche ich?

Für die Anmeldung über logineu.html fordert der Verifier urn:aloaha:vc:email-verified (oder urn:aloaha:vc:email) an. Importieren Sie einen der beiden aus dem Bereich „Available attestations from your profile“ der Wallet. Die E-Mail-Adresse im Nachweis wird zu Ihrer Benutzeridentität für die Anmeldung.

Wo liegt der private Schlüssel der Wallet?

In der IndexedDB Ihres Browsers als nicht exportierbarer CryptoKey (WebCrypto). Er berührt nie das Netzwerk, und der Browser exportiert ihn nicht einmal an Ihr eigenes JavaScript. Die Wallet signiert mit diesem Schlüssel das Key-Binding-JWT für jede Präsentation.

Was passiert, wenn ich meine Browserdaten lösche?

Sie verlieren den Wallet-Schlüssel und alle darunter gespeicherten Nachweise. Importieren Sie diese nach einer erneuten Anmeldung wieder. Wenn Sie den verschlüsselten Vault in den Wallet-Einstellungen eingerichtet haben, holen Sie Ihre Nachweise von dort zurück; andernfalls gilt: Das Browserprofil ist die Wallet.

Kann ich die Wallet auf Smartphone und Laptop nutzen?

Ja, aber jeder Browser ist eine eigene Wallet mit eigenem Schlüssel. Importieren Sie den Nachweis einmal pro Browser. Eine geräteübergreifende Kopplung (eine Wallet, viele Browser) ist über die Recovery-Vault-Funktion geplant.

Warum zeigt der Anmeldeablauf Telefon oder Adresse als „not ready“ an?

Die Wallet zeigt für jeden Nachweistyp, den Ihr OIDC-Profil unterstützen könnte, eine Kachel an. „Not ready“ bedeutet, dass dieser Claim in Ihrem Profil noch nicht befüllt ist. Tragen Sie in account.html unter „Profile“ eine Telefonnummer oder Postanschrift ein, laden Sie die Wallet neu, und die Kachel wechselt zu „Import“.

Kommuniziert die Web Wallet mit der EU-LSP-Wallet?

Die Wallet spricht dasselbe Protokoll aus OpenID4VP, SD-JWT VC und HAIP wie die EUDI-Referenz-Wallets, sodass ein Verifier, der die eine akzeptiert, auch die andere akzeptiert. Sie ist nicht die offizielle EUDI Wallet Instance und enthält keine PID eines Mitgliedstaats. Für nationale Identitätsabläufe mit Vertrauensniveau „hoch“ benötigen Sie weiterhin die Wallet Ihres Landes.

Ist die Antwort der Wallet verschlüsselt?

Wenn der Verifier direct_post.jwt anfordert, verschlüsselt die Wallet die Antwort als JWE mit ECDH-ES + A128GCM an den ephemeren P-256-Schlüssel des Verifiers aus der Anfrage. Bei einfachem direct_post ist die Nutzlast nur per TLS geschützt. Beide Modi enthalten eine frische Nonce und ein Key-Binding-JWT.

Wie lange dauert die Anmeldesitzung?

Nach einer erfolgreichen Präsentation erzeugt der Verifier eine Single-Sign-On-Assertion (sso_assertion), die der Browser unter codeb.oidc.sso_assertion speichert. Nachgelagerte Relying Parties übernehmen sie automatisch. Die Assertion folgt denselben OIDC-Token-Laufzeiten wie die Passwort-Anmeldung.