Security Dashboard
Feature Detail
Description
The Security Dashboard provides Organization Administrators and Global Administrators with a centralized view of the platform's security posture. It surfaces key metrics including active sessions, failed login attempts, support access grants, and tenant isolation status. The dashboard enables proactive security monitoring so administrators can detect and respond to anomalies before they escalate into incidents. Drill-down links connect to the Audit Log and Session Management pages for detailed investigation of any flagged event or suspicious activity pattern.
Sources & reasoning
Line 258 establishes that Global Admin support access is time-bounded, revocable, and logged in the org's audit trail - all three concerns require a security surface where admins can monitor and act on this data. Admin-security is listed as always-on for the Admin Web Portal, confirming Security Dashboard ships at MVP launch.
-
docs/source/likeperson.md · line 258Orgs can grant a Global Admin time-bounded support access via a flag in Organization Settings; revoking the flag or hitting the expiry immediately removes access. Every support-access session is logged in the org's audit trail.
Analysis
A security dashboard is foundational for multi-tenant platforms serving regulated organizations that handle sensitive personal and health-related data. With multiple organizations sharing backend infrastructure, administrators must be able to verify that tenant isolation is enforced and detect unauthorized access attempts in real time. The dashboard provides the visibility needed to satisfy GDPR data protection obligations and organizational security policies. For Norse Digital Products, a credible security posture is a commercial differentiator when onboarding regulated organizations such as NHF and Blindeforbundet. Administrators need a single pane of glass for daily security hygiene rather than navigating multiple subsystems to assess the current risk state of their tenant.
The Security Dashboard is implemented as a Next.js server-rendered page in the Admin Web Portal. Metrics are sourced from the audit_log_entries, auth_sessions, and support_access_grants tables via SecurityMetricsService. All queries are tenant-scoped using PostgreSQL row-level security to prevent cross-organization data leakage. The UI presents stat cards for active session counts, recent login events, and anomaly flags, with deep links to Audit Log and Session Management for drill-down. Role-based middleware restricts access to Org Admin and Global Admin roles exclusively. Time-series aggregation uses PostgreSQL window functions. A Global Admin may only see metrics for organizations where support access has been granted.
Quality Assurance
Organization Administrator (primary) · Global Administrator (primary, requires support access grant)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Sikkerhet → Sikkerhetsdashbord.
- Bekreft at dashbordet viser metrikkort for aktive sesjoner, mislykkede innloggingsforsøk, støttetilganger og leietakerisoleringstatus.
- Kontroller at antallet aktive sesjoner stemmer overens med forventet antall innloggede brukere i organisasjonen.
- Klikk på kortet for mislykkede innloggingsforsøk og bekreft at lenken navigerer til Revisjonslogg-siden med forhåndsfiltrert visning.
- GĂĄ tilbake til dashbordet og klikk pĂĄ kortet for aktive sesjoner. Bekreft at lenken navigerer til Sesjonsadministrasjon-siden.
- Bekreft at leietakerisoleringsstatusen viser grønt / OK og at ingen varsler er synlige.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Sikkerhet → Sikkerhetsdashbord.
- Screen reader Sideoverskrift 'Sikkerhetsdashbord' annonseres ved sideinnlasting; navigasjonselement 'Sikkerhet' annonseres som utvidet.
- Keyboard / focus Tab-rekkefølge: sidenavigasjon → overskrift → metrikkort.
- Focus visibility Synlig fokusring pĂĄ aktivt navigasjonselement i sidemenyen.
-
Bekreft at dashbordet viser metrikkort for aktive sesjoner, mislykkede innloggingsforsøk, støttetilganger og leietakerisoleringstatus.
- Screen reader Hvert metrikkort annonseres med navn og verdi, f.eks. 'Aktive sesjoner: 12'.
- Keyboard / focus Alle metrikkort er nĂĄbare med Tab; Enter aktiverer drill-down-lenken.
- Zoom Alle fire kort synlige og lesbare ved 200 % zoom uten horisontal rulling.
- Contrast Metrikkort-tekst har minst 4.5:1 kontrast mot bakgrunn; statusindikator ikke formidlet kun ved farge.
-
Kontroller at antallet aktive sesjoner stemmer overens med forventet antall innloggede brukere i organisasjonen.
- Screen reader Tallverdi leses som statisk tekst; ingen uønsket live-region-avbrudd ved innlasting.
- Focus visibility Kortgrensen er visuelt tydelig; fokusring ikke skjult av kortskygge.
-
Klikk på kortet for mislykkede innloggingsforsøk og bekreft at lenken navigerer til Revisjonslogg-siden med forhåndsfiltrert visning.
- Screen reader Lenke annonseres som 'Mislykkede innloggingsforsøk – gå til Revisjonslogg'.
- Keyboard / focus Kortlenken nĂĄs med Tab og aktiveres med Enter eller Mellomrom.
- Focus visibility Fokus flyttes til Revisjonslogg-sidens overskrift etter navigasjon.
-
GĂĄ tilbake til dashbordet og klikk pĂĄ kortet for aktive sesjoner. Bekreft at lenken navigerer til Sesjonsadministrasjon-siden.
- Screen reader Lenke annonseres som 'Aktive sesjoner – gå til Sesjonsadministrasjon'.
- Keyboard / focus Tilbake-knapp nĂĄs med Tab og aktiveres med Enter; fokus gjenopprettes til Sikkerhetsdashbord-overskriften.
- Focus visibility Synlig fokusring pĂĄ kortlenken.
-
Bekreft at leietakerisoleringsstatusen viser grønt / OK og at ingen varsler er synlige.
- Screen reader Status annonseres som 'Leietakerisolering: OK' – ikke kun fargenavn.
- Contrast Isolasjonsstatus ikke formidlet kun ved grønn farge; ledsaget av tekstlig 'OK' eller ikon med aria-label.
Global Administrator
Quick UAT
- Logg inn i Admin-portalen som Global Administrator. Bekreft at ingen organisasjonsdata er synlig uten aktiv støttetilgang.
- Naviger til Sikkerhet → Sikkerhetsdashbord. Bekreft at dashbordet viser metrikkort scoped til den organisasjonen du har fått tidsavgrenset støttetilgang til.
- Kontroller at støttetilgangskortet viser aktiv tilgang med utløpsdato og den innvilgende organisasjonens navn.
- Klikk på kortet for mislykkede innloggingsforsøk og bekreft navigasjon til Revisjonslogg med riktig organisasjonskontekst.
- Gå tilbake og bekreft at leietakerisoleringsstatusen viser at Global Administrator sin tilgang er loggført i organisasjonens revisjonslogg.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Global Administrator. Bekreft at ingen organisasjonsdata er synlig uten aktiv støttetilgang.
- Screen reader Side annonseres med overskrift som indikerer ingen aktiv organisasjonskontekst; ingen metrikkort leses opp.
- Keyboard / focus Tab-rekkefølge inneholder ingen interaktive metrikkort når tilgang mangler.
- Focus visibility Fokus lander på informasjonsbanner om manglende støttetilgang.
-
Naviger til Sikkerhet → Sikkerhetsdashbord. Bekreft at dashbordet viser metrikkort scoped til den organisasjonen du har fått tidsavgrenset støttetilgang til.
- Screen reader Sideoverskrift inkluderer organisasjonsnavn, f.eks. 'Sikkerhetsdashbord – NHF'.
- Keyboard / focus Alle metrikkort nåbare med Tab i logisk rekkefølge.
- Zoom Organisasjonsbanner og alle metrikkort lesbare ved 200 % zoom.
- Contrast Organisasjonskontekst-banner har minst 4.5:1 kontrast.
-
Kontroller at støttetilgangskortet viser aktiv tilgang med utløpsdato og den innvilgende organisasjonens navn.
- Screen reader Støttetilgangskort annonseres med utløpsdato inkludert, f.eks. 'Støttetilgang aktiv til 10. mai 2026'.
- Focus visibility Kortgrensen visuelt tydelig; utløpsdato ikke kun formidlet ved farge.
- Contrast Utløpsdato-tekst og statusindikator 4.5:1 kontrast.
-
Klikk på kortet for mislykkede innloggingsforsøk og bekreft navigasjon til Revisjonslogg med riktig organisasjonskontekst.
- Screen reader Lenke annonseres med organisasjonskontekst: 'Mislykkede innloggingsforsøk – gå til Revisjonslogg for NHF'.
- Keyboard / focus Kortlenken aktiveres med Enter; fokus flyttes til Revisjonslogg-sidens overskrift.
- Focus visibility Fokus synlig på kortlenken før aktivering.
-
Gå tilbake og bekreft at leietakerisoleringsstatusen viser at Global Administrator sin tilgang er loggført i organisasjonens revisjonslogg.
- Screen reader Status annonseres som 'Leietakerisolering: OK – støttetilgang loggført'.
- Contrast Loggført-indikator ikke kun grønn farge; ledsaget av tekst eller aria-label.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor
Admin-portalen er ikke tilgjengelig for Peer Mentor; innloggingsforsøk omdirigerer til mobilappen. Deep-link til /admin/security returnerer 403.
-
Coordinator
Admin-portalen er ikke tilgjengelig for Coordinator; innloggingsforsøk omdirigerer til mobilappen. Deep-link til /admin/security returnerer 403.
-
Prospective Organization Representative
Har ingen konto i Admin-portalen; innloggingsforsøk avvises. Deep-link til /admin/security returnerer 401.
Expected End State
-
Organization Administrator
Organisasjonsadministrator har verifisert alle fire sikkerhetsmetrikkort, navigert til Revisjonslogg og Sesjonsadministrasjon via drill-down-lenker, og bekreftet at leietakerisoleringsstatusen er OK uten aktive varsler.
-
Global Administrator
Global Administrator har verifisert sikkerhetsmetrikker scoped til den innvilgende organisasjonen, bekreftet at støttetilgangskortet viser korrekt utløpsdato, og at tilgangen er loggført i organisasjonens revisjonslogg.
Components (23)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.