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.
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.
1. Voraussetzungen
- Ein Aloaha-Konto (Benutzername/Passwort) für die Instanz, auf der Sie sich anmelden. Registrieren Sie sich sonst unter register.html.
- Ein moderner Browser mit IndexedDB und SubtleCrypto — Chrome, Edge, Firefox oder Safari 14+.
- Eine ausgefüllte E-Mail-Adresse im Profil (account.html).
2. Ablauf im Überblick
3. Schritt 1 — Wallet öffnen
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
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
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
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
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
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-verifiedoderurn: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
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):
| vct | Verlangte Claims | Wallet-Quelle |
|---|---|---|
| urn:aloaha:vc:email-verified | Kachel »Verified email address« | |
| urn:aloaha:vc: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:
| Schritt | Endpoint | Zweck |
|---|---|---|
| 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.