# SECURITY.md — AAMOS Ledger ## Auth-flöde ### Production (RS256) 1. Identity Service signerar JWT med privat RS256-nyckel 2. aamos-ledger verifierar med publik nyckel (`jwt-public.pem`) 3. JWT måste innehålla `roles`-claim ### Development (HS256) 1. Delad secret via `AMOS_JWT_SECRET` 2. Ingen roll-kontroll krävs (dev-fallback aktiveras) ### Roller - `admin` — fulla rättigheter - `accountant` — skapa/kontera verifikationer - `viewer` — läs-only ### Service-to-Service - `LEDGER_INTERNAL_TOKEN` i Authorization-header - Endast för intern kommunikation (agents, cron-jobs) ## Säkerhetsprinciper - Inga hårdkodade secrets - Env-variabler valideras vid startup - JWT utan roller nekas i production - Tenant-isolering på databasnivå