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

Description

Enables users to authenticate using BankID, the Norwegian national digital identity solution. BankID is the preferred first-time login method across all partner organisations and provides verified identity, reducing onboarding friction for users already familiar with it from banking. The OAuth-based flow redirects the user to the BankID provider, returns an identity token, and links the verified identity to the user's Meander account. A key side benefit is the ability to retrieve and store the user's national identity number (personnummer) in the member system.

User Flow

BankID Authentication user flow
Click to expand

Analysis

Business Value

BankID authentication was explicitly requested by all three workshop organisations as the preferred initial login method. It removes password friction for returning users, provides strong identity verification without manual KYC, and crucially returns the user's personnummer to the member system — a long-standing data gap for NHF, Blindeforbundet, and HLF. This integration directly supports regulatory compliance and simplifies Bufdir reporting by linking verified identities to activity records. Implementing BankID positions Meander as a professional, trustworthy platform in the Norwegian public sector landscape.

Implementation Notes

Implemented as an OAuth 2.0 / OIDC flow using a certified Norwegian BankID broker (e.g., Criipto or BankID Norge). The Flutter app opens the BankID flow in a secure in-app browser (flutter_web_auth or app_links for deep-link callback). The backend exchanges the authorization code for an identity token, extracts the personnummer, and either creates a new account or links to an existing one. The BankID provider adapter is abstracted behind an interface to allow swapping brokers. Monthly cost (350–750 NOK) must be distributed across partner organisations. Sandbox environment available for testing without real BankID credentials.

Components (112)

User Interface (2)

Service Layer (2)

Infrastructure (2)

Shared Components

These components are reused across multiple features

Service Layer (34)

Data Layer (22)

Infrastructure (38)

infrastructure Keychain/Keystore Adapter low Shared infrastructure JWT Claims Extractor low Shared infrastructure Organization Labels Adapter low Shared infrastructure Keychain/Keystore Adapter low Shared infrastructure Auth API Client medium Shared infrastructure REST API Client medium Shared infrastructure WCAG Accessibility Adapter low Shared infrastructure Registration API Client low Shared infrastructure Accounting API Client high Shared infrastructure PDF Renderer Adapter medium Shared infrastructure File Share Adapter low Shared infrastructure FCM/APNs Adapter high Shared infrastructure Share Sheet Adapter low Shared infrastructure Share Plus Adapter low Shared infrastructure Platform Accessibility Bridge medium Shared infrastructure Semantics Override Adapter high Shared infrastructure URL Launcher Adapter low Shared infrastructure Markdown Content Renderer low Shared infrastructure Network Connectivity Monitor low Shared infrastructure Expense Receipt Storage Adapter low Shared infrastructure Audit Log Writer low Shared infrastructure Feature Flag Checker low Shared infrastructure Logo Upload Adapter low Shared infrastructure Terminology Constants Registry low Shared infrastructure Feature Flag Cache Adapter low Shared infrastructure Org Scope JWT Resolver medium Shared infrastructure Association Audit Logger low Shared infrastructure Token Blocklist medium Shared infrastructure Analytics Tracker low Shared infrastructure SEO Metadata Config low Shared infrastructure Analytics Tracker low Shared infrastructure Analytics Tracker low Shared infrastructure Sales Analytics Tracker low Shared infrastructure Email Provider Adapter low Shared infrastructure Terms of Service Content Provider low Shared infrastructure Legal PDF Asset Provider low Shared infrastructure Consent-Gated Script Loader low Shared infrastructure Legal Page Layout low Shared

User Stories

No user stories have been generated for this feature yet.