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

Description

Passwordless WebAuthn passkey enrollment and sign-in as a modern alternative to email/password and to biometric session unlock. Users enroll a passkey bound to their device or platform account (iCloud Keychain, Google Password Manager) and use it for both the Mobile App and Admin Web Portal. Passkeys provide phishing-resistant authentication without the per-tenant cost of BankID/Vipps and without the password-management burden of email/password. Positioned as a Phase 3 (Growth & Engagement) deliverable since it is not required for MVP and provides marginal value over biometric unlock for already-authenticated users.

Sources & reasoning

Passkeys are not named in source docs; included because the blueprint authoritatively lists 'Passkeys (WebAuthn)' as a required feature in Authentication & Access Control. With no source signal it falls under §5 Phase 3 'Vekst og engasjement' as a forward-looking auth enhancement; target_release uses that phase's verbatim name 'Growth & Engagement'.

No source references — this artifact was included based on reasoning alone (see above).

Analysis

Business Value

Passkeys are the long-term replacement for passwords and reduce credential-reset support load over time. For Meander specifically, passkey support lets the Admin Web Portal offer phishing-resistant sign-in for Org Admins and Global Admins - the audit-sensitive roles that handle multi-tenant data and Bufdir exports - without depending on BankID/Vipps integration cost. They also offer a credible auth path for any future partner integration that needs to reuse the Authentication Module outside Norway, where BankID is unavailable. Deferring to Phase 3 keeps the MVP focused while leaving the option open.

Implementation Notes

Implemented inside the Authentication Module behind the same generic identity contract as the other auth paths so consumers see no API change. WebAuthn relying-party configuration is per-product (mobile RP-ID, admin RP-ID) to satisfy platform attestation rules. Public keys stored alongside the user record; the auth module persists no private key material. The Passkey Store is logically separate from the credential store to keep crypto material isolated and to ease later extraction of the auth module into its own service. No new subprocessor is required - WebAuthn is a browser/OS-native capability.

Quality Assurance

Peer Mentor (mobil-registrering) · Organization Administrator (admin-portal-registrering)
2
Scenarios
10
UAT Steps
20
A11y Annotations
2
Role Boundaries
Peer Mentor (Likeperson)

Peer Mentor (Likeperson)

Quick UAT

  1. Logg inn i Meander-mobilappen med e-post og passord.
  2. Når banneret 'Registrer passnøkkel' vises på Hjem-skjermen, trykk 'Registrer nå'.
  3. Fullfør plattformens biometriske seremoni (Face ID / fingeravtrykk / enhetspinkode) når operativsystemet ber om det.
  4. Bekreft at bekreftelsesskjermen viser 'Passnøkkel registrert' og enhetsnavnet (f.eks. 'iPhone 14').
  5. Logg ut, start ny innlogging, og velg 'Logg inn med passnøkkel' - bekreft at du kommer inn uten å taste passord.

Quick UAT — Accessibility

  1. Logg inn i Meander-mobilappen med e-post og passord.
    • Screen reader VoiceOver/TalkBack annonserer skjermtittel 'Logg inn' og leser feltlabels 'E-post' og 'Passord'.
    • Focus visibility Synlig fokusring på e-postfelt ved åpning; tab-rekkefølge e-post → passord → Logg inn.
  2. Når banneret 'Registrer passnøkkel' vises på Hjem-skjermen, trykk 'Registrer nå'.
    • Screen reader Banner annonseres som 'Forslag: Registrer passnøkkel, knapp Registrer nå, knapp Ikke nå'.
    • Touch target Knappen 'Registrer nå' er minst 24×24 CSS-piksler (44×44 anbefalt på iOS).
  3. Fullfør plattformens biometriske seremoni (Face ID / fingeravtrykk / enhetspinkode) når operativsystemet ber om det.
    • Screen reader OS-systemdialog tar over og annonserer 'Bruk Face ID for å lagre passnøkkel for meander.no'.
    • Keyboard / focus Brukere uten biometri kan fullføre med enhetspinkode via tastatur i OS-dialogen.
  4. Bekreft at bekreftelsesskjermen viser 'Passnøkkel registrert' og enhetsnavnet (f.eks. 'iPhone 14').
    • Live region 'Passnøkkel registrert for iPhone 14. Du kan nå logge inn uten passord.'
    • Contrast Suksess-ikon ledsages av tekst - status formidles ikke kun med grønn farge.
  5. Logg ut, start ny innlogging, og velg 'Logg inn med passnøkkel' - bekreft at du kommer inn uten å taste passord.
    • Screen reader Knappen 'Logg inn med passnøkkel' annonseres med rolle 'knapp'; Hjem-skjermens overskrift annonseres etter vellykket innlogging.
    • Focus visibility Synlig fokus flytter automatisk til Hjem-skjermens hovedoverskrift etter innlogging.
Organization Administrator

Organization Administrator

Quick UAT

  1. Logg inn i Admin-portalen med e-post og passord på en laptop.
  2. Åpne 'Min profil' → 'Sikkerhet' og trykk 'Legg til passnøkkel'.
  3. Velg lagringssted i nettleserdialogen (iCloud Keychain, Google Password Manager eller maskinvarenøkkel) og fullfør seremonien.
  4. Bekreft at den nye passnøkkelen vises i listen 'Mine passnøkler' med opprettelsesdato og enhetsnavn.
  5. Logg ut og logg inn igjen via 'Logg inn med passnøkkel' - bekreft at du lander på admin-dashbordet uten passord.

Quick UAT — Accessibility

  1. Logg inn i Admin-portalen med e-post og passord på en laptop.
    • Keyboard / focus Tab-rekkefølge: e-post → passord → Logg inn; ingen tastaturfeller.
    • Focus visibility Synlig fokusring (minst 2 px, 3:1 kontrast) på alle felter og knapp.
  2. Åpne 'Min profil' → 'Sikkerhet' og trykk 'Legg til passnøkkel'.
    • Screen reader JAWS annonserer overskriftsnivå 'Sikkerhet' (h2) og knappen 'Legg til passnøkkel'.
    • Keyboard / focus Sikkerhet-fanen nåes via Tab eller piltaster fra profilnavigasjonen.
  3. Velg lagringssted i nettleserdialogen (iCloud Keychain, Google Password Manager eller maskinvarenøkkel) og fullfør seremonien.
    • Screen reader Nettleserens WebAuthn-dialog overtar fokus og annonserer tilgjengelige autentikatorer.
    • Keyboard / focus Dialogen kan navigeres kun med tastatur (Tab + Enter); ingen drag-interaksjoner.
  4. Bekreft at den nye passnøkkelen vises i listen 'Mine passnøkler' med opprettelsesdato og enhetsnavn.
    • Live region 'Passnøkkel lagt til. Listen har nå N passnøkler.'
    • Zoom Listen forblir lesbar og uten horisontal scroll ved 200% zoom.
  5. Logg ut og logg inn igjen via 'Logg inn med passnøkkel' - bekreft at du lander på admin-dashbordet uten passord.
    • Focus visibility Etter innlogging flyttes fokus til dashbordets hovedoverskrift (h1).
    • Contrast Tekst på Logg inn-knappen oppfyller 4.5:1 kontrast mot bakgrunn.

Role Boundaries

2 role(s) must NOT access this feature
  • Global Administrator

    Global Admins autentiserer seg separat uten org-kontekst og har ikke 'Legg til passnøkkel' i sin profilmeny i tenant-kontekst. Direkte API-kall til /webauthn/register med global-admin-token returnerer 403.

  • Prospective Buyer

    Sales-nettstedet har ingen pålogging; passnøkkel-registrering finnes ikke som funksjon og er ikke nåbar via deep-link.

Expected End State

  • Peer Mentor (Likeperson)

    En ny rad i user_passkeys er knyttet til brukerens konto med credential ID, public key, signature counter = 0 og enhetsmetadata. Brukeren kan logge inn på mobilappen via WebAuthn-seremoni uten å bruke passord.

  • Organization Administrator

    En ny rad i user_passkeys er knyttet til admin-brukerens konto, synlig i 'Mine passnøkler'-listen i admin-portalen. Påfølgende innlogginger via 'Logg inn med passnøkkel' produserer en gyldig sesjon uten passord.

User Stories

No user stories have been generated for this feature yet.