27 lines
756 B
Markdown
27 lines
756 B
Markdown
|
|
# 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å
|