Passkeys (WebAuthn)
Feature Detail
Description
Passkeys (WebAuthn) provides phishing-resistant, passwordless authentication using the W3C Web Authentication standard. Users register a platform-bound or synced passkey on their device and subsequent logins use a cryptographic challenge-response without transmitting a password or redirecting to an external provider. This feature targets a post-Phase 2 roadmap slot as an optional modern authentication method that complements BankID and Vipps for users who prefer a fully on-device flow, and reduces dependency on third-party identity providers that carry monthly costs and external availability risks.
Sources & reasoning
Passkeys are not explicitly mentioned in the source documentation. The feature is required by the authoritative blueprint which assigns it to Authentication & Access Control at v1.1. Target release v1.1 follows the blueprint's phase assignment; no earlier phase evidence exists in the source doc, and the feature is clearly post-BankID/Vipps (Fase 2) in any logical delivery sequence.
No source references — this artifact was included based on reasoning alone (see above).
Analysis
Passkeys eliminate phishing and credential-theft risks inherent in password-based authentication and reduce dependency on BankID and Vipps, which carry monthly provider costs and external availability dependencies. As WebAuthn adoption grows through browser and OS-level support in Norway, offering passkeys positions Meander as a forward-looking platform aligned with emerging digital identity standards. The feature also benefits users in organizations that do not mandate BankID or Vipps, providing a secure and frictionless on-device alternative without a redirect, monthly fee, or requirement to have a specific app installed.
Passkeys require WebAuthn support on both the relying party (backend) and the client. On mobile, Flutter platform channels or a dedicated WebAuthn package bridge to the OS passkey APIs (iOS 16+ / Android 9+ FIDO2). The Authentication Module must be extended with a passkey credential store (public key, credential ID, AAGUID) per user, and the sign-in contract updated to accept a WebAuthn assertion alongside existing flows. Attestation and assertion verification must follow the W3C WebAuthn Level 3 specification. Synced passkeys via iCloud Keychain and Google Password Manager require careful testing across device transitions to avoid user lockout scenarios.
Quality Assurance
Peer Mentor · Coordinator (same flow)Peer Mentor
Quick UAT
- Logg inn i appen med e-post og passord. Naviger til Innstillinger → Sikkerhet → Passkeys.
- Trykk «Legg til passkey». Bekreft at enheten viser en biometrisk- eller PIN-prompt fra operativsystemet.
- Fullfør autentisering med Face ID, fingeravtrykk eller PIN. Bekreft at den nye passkeyen vises i listen med enhetsnavn og opprettelsesdato.
- Logg ut av appen. Bekreft at innloggingsskjermen viser alternativet «Logg inn med passkey» under e-post/passord-skjemaet.
- Trykk «Logg inn med passkey» og fullfør biometrisk bekreftelse. Bekreft at du er logget inn uten å ha tastet inn passord.
- Åpne Innstillinger → Sikkerhet → Passkeys og slett passkeyen. Bekreft at den forsvinner fra listen og at appen ikke lenger tilbyr passkey-innlogging på denne enheten.
Quick UAT — Accessibility
-
Logg inn i appen med e-post og passord. Naviger til Innstillinger → Sikkerhet → Passkeys.
- Screen reader Skjermleser annonserer «Innstillinger» som destinasjon; «Sikkerhet» og «Passkeys» som menypunkter med rolle 'knapp'.
- Keyboard / focus Tab-rekkefølge: Innstillinger-ikon → Sikkerhet → Passkeys. Enter åpner hvert nivå.
- Focus visibility Synlig fokusring pĂĄ aktivt menypunkt; ingen fokus-tap ved navigasjon.
-
Trykk «Legg til passkey». Bekreft at enheten viser en biometrisk- eller PIN-prompt fra operativsystemet.
- Screen reader «Legg til passkey»-knapp annonseres med navn og rolle; systemdialogen fra OS håndteres av plattform-tilgjengelighetslaget.
- Keyboard / focus «Legg til passkey» nås med Tab; aktiveres med Enter eller Mellomrom.
- Focus visibility Fokus flyttes til systemdialogen automatisk; returnerer til knappen ved avbryt.
- Touch target «Legg til passkey»-knapp ≥ 24×24 CSS px.
-
Fullfør autentisering med Face ID, fingeravtrykk eller PIN. Bekreft at den nye passkeyen vises i listen med enhetsnavn og opprettelsesdato.
- Screen reader Etter vellykket registrering annonserer live region: «Passkey lagt til. [Enhetsnavn], opprettet [dato].»
- Focus visibility Fokus flyttes til den nye raden i passkey-listen etter bekreftelse.
- Live region 'Passkey lagt til. Enheten er nĂĄ registrert for passkey-innlogging.'
- Contrast Enhetsnavn og dato: 4.5:1 mot bakgrunn; statusikon ikke alene om ĂĄ formidle suksess.
-
Logg ut av appen. Bekreft at innloggingsskjermen viser alternativet «Logg inn med passkey» under e-post/passord-skjemaet.
- Screen reader «Logg inn med passkey»-knapp annonseres med navn og rolle etter skjermleser-fokus ankommer innloggingsskjermen.
- Keyboard / focus Tab-rekkefølge på innloggingsskjermen: E-postfelt → Passord-felt → Logg inn → Logg inn med passkey.
- Focus visibility Synlig fokusring på «Logg inn med passkey»-knapp; ingen skjulte fokusfeller.
- Touch target «Logg inn med passkey»-knapp ≥ 24×24 CSS px.
-
Trykk «Logg inn med passkey» og fullfør biometrisk bekreftelse. Bekreft at du er logget inn uten å ha tastet inn passord.
- Screen reader Systemdialogen for biometri hĂĄndteres av OS-tilgjengelighetslaget (VoiceOver/TalkBack). Etter innlogging annonseres hjemskjermens tittel.
- Live region 'Innlogging vellykket.' annonseres via polite live region etter redirect til hjemskjerm.
- Zoom Innloggingsskjerm og passkey-prompt er fullt brukbare ved 200 % tekstforstørring uten horisontal scrolling.
-
Åpne Innstillinger → Sikkerhet → Passkeys og slett passkeyen. Bekreft at den forsvinner fra listen og at appen ikke lenger tilbyr passkey-innlogging på denne enheten.
- Screen reader Sletteknapp for passkey annonseres med navn «Slett [enhetsnavn]» og rolle 'knapp'; bekreftelsesdialog annonseres som modal.
- Keyboard / focus Sletteknapp nås med Tab; bekreftelsesdialog har fokus på «Bekreft»-knapp ved åpning; Escape avbryter.
- Focus visibility Etter sletting flyttes fokus til «Legg til passkey»-knapp eller tom-liste-melding.
- Live region 'Passkey slettet. Ingen passkeys registrert pĂĄ denne enheten.'
Role Boundaries
3 role(s) must NOT access this feature-
Organization Administrator
Organisasjonsadministrator logger kun inn i Admin Web Portal, ikke i mobilappen. Passkey-innstillingsskjermen finnes ikke i admin-portalnavigasjonen; et forsøk på deep-link til mobil-passkey-flyten returnerer 403.
-
Global Administrator
Global Administrator logger utelukkende inn i Admin Web Portal. Passkey-funksjonaliteten i mobilappen er ikke tilgjengelig; direkte API-kall til WebAuthn-registreringspunktet for en global-admin-sesjon returnerer 403.
-
Prospective Organization Representative
Prospective Organization Representative har ingen brukerkonto i plattformen og kan ikke nĂĄ noen autentisert skjerm, inkludert passkey-innstillinger.
Expected End State
Brukeren er autentisert i mobilappen via en enhetsbundet passkey uten å ha tastet inn passord. Passkeyen er synlig i Innstillinger → Sikkerhet → Passkeys med enhetsnavn, opprettelsesdato og sist-brukt-tidsstempel, og kan slettes av brukeren selv.
Components (27)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.