high complexity extracted Authentication & Access Control Confidence: 100%
9
Components
18
Shared
0
User Stories
Yes
Analyzed

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

Business Value

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.

Implementation Notes

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)
1
Scenarios
6
UAT Steps
22
A11y Annotations
3
Role Boundaries
Peer Mentor

Peer Mentor

Quick UAT

  1. Logg inn i appen med e-post og passord. Naviger til Innstillinger → Sikkerhet → Passkeys.
  2. Trykk «Legg til passkey». Bekreft at enheten viser en biometrisk- eller PIN-prompt fra operativsystemet.
  3. Fullfør autentisering med Face ID, fingeravtrykk eller PIN. Bekreft at den nye passkeyen vises i listen med enhetsnavn og opprettelsesdato.
  4. Logg ut av appen. Bekreft at innloggingsskjermen viser alternativet «Logg inn med passkey» under e-post/passord-skjemaet.
  5. Trykk «Logg inn med passkey» og fullfør biometrisk bekreftelse. Bekreft at du er logget inn uten å ha tastet inn passord.
  6. Å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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Å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.

User Stories

No user stories have been generated for this feature yet.