Bibblan Personal · Eskilstuna stadsbibliotek
Tjänstgör Eskilstuna stadsbibliotek·KFN Inloggad demo.admin
Meny

System · Användare & identitet

Hybrid identitetsmodell

Bibblan separerar vem du är från vad du får göra. Keycloak äger identiteter och lösenord, Bibblan äger rolldefinitioner och grants, och en reconciliation-job håller de två världarna synkade utan leverantörsingrepp.

Arkitektur

Dataflöde mellan Keycloak och Bibblan

Kap ITM-18 · 10.1.8 · 10.1.9
01

Keycloak

Äger identiteter och lösenord. Federerat mot Eskilstuna kommuns AD via OIDC-broker — personalen loggar in med sitt kommunkonto och får en ID-token tillbaka.

Källa för identitet
02

Bibblan

Äger rolldefinitioner (role_definition) och tilldelningar (role_grant). Verksamheten kan själv skapa nya roller och grants utan att involvera leverantör.

Källa för behörighet
03

Reconciliation

Jobbet reconcile_keycloak_roles körs var 5:e minut och speglar rolldefinitioner + aktiva grants till Keycloak-realmet, så att OIDC-tokens får rätt roles-claims. Utgångna grants tas automatiskt bort.

Synk-motor

Idempotent Jobbet kan köras hur ofta som helst och konvergerar alltid Keycloak-state mot Bibblans. Vid KC-nedtid retrybar dramatiq (max 3 försök) och nästa periodiska körning fångar upp saknade ändringar.

Snabblänkar

Relaterade administrationsvyer

AD · Mapping

AD-grupp → Keycloak-roll → Bibblan-roll

Kap ITM-18

Keycloak är konfigurerat som OIDC-broker mot Eskilstuna kommuns AD. AD-grupper mappas till Keycloak-roller via group-mapper. Nya personalmedlemmar får sina roller automatiskt baserat på AD-grupp-medlemskap.

AD-grupp bibliotek_disk
Keycloak-roll circulation_desk
Bibblan-roll Cirkulationsdisk
AD-grupp bibliotek_katalog
Keycloak-roll cataloger
Bibblan-roll Katalogisatör
AD-grupp bibliotek_chefer
Keycloak-roll tenant_admin
Bibblan-roll Nämndadministratör
AD-grupp bibliotek_redaktion
Keycloak-roll editor
Bibblan-roll Webbredaktör
AD-grupp it_bibliotek
Keycloak-roll system_admin
Bibblan-roll Systemadministratör

Mappningar konfigureras i Keycloak → Identity Providers → AD → Mappers. Ändringar träder i kraft vid nästa inloggning.

Princip

Least-privilege i praktiken

Kap 10.1.29

Minsta möjliga behörighet

Bibblan följer least-privilege: varje åtkomstväg kontrolleras på flera lager så att ett fel på ett lager inte räcker för att få tillgång till det man inte ska se.

  1. Alla FastAPI-endpoints har requires_role(...)-dependency som validerar token-claims vid varje anrop.
  2. Postgres-appanvändaren är NOSUPERUSER NOBYPASSRLS — applikationen kan aldrig kringgå databasens rättighetskontroll.
  3. Row-Level Security blockerar åtkomst över tenant-gränser på databasnivå, oberoende av applikationskoden.
  4. Audit-logg registrerar varje åtkomst till personuppgifter (PUB-avtalet, bevaras i 5 år).
  5. Roll-grants kan vara tidsbegränsade (semestervikarie och liknande) — blir automatiskt inaktiva när valid_to passeras.