Files
slp-modular-cms/aidlc-docs/features/slp-modular-cms-api/construction/identity-rbac/functional-design/business-rules.md
T

2.3 KiB

Business Rules — Unit 02: Identity & RBAC

Dit document beschrijft de validatieregels en logica voor identiteitsbeheer en autorisatie.

1. Hiërarchische Rollen (BR-ID-01)

  • Hiërarchie: Owner (100) > Administrator (50) > User (10).
  • Beperking: Een gebruiker kan alleen acties uitvoeren op gebruikers met een lagere rol in de hiërarchie.
    • Uitzondering: Een Owner kan acties uitvoeren op andere Owners (bijv. de-activeren, mits niet de laatste Owner).
    • Een Administrator kan een User beheren, maar geen andere Administrator of Owner.
  • Rolverandering: Een gebruiker kan een andere gebruiker nooit een rol toekennen die hoger is dan zijn eigen rol.

2. Gebruikerscreatie & Uitnodiging (BR-ID-02)

  • Geen Zelfregistratie: Het systeem staat geen publieke registratie toe.
  • Uitnodigingsflow:
    1. Administrator/Owner maakt een uitnodiging aan (e-mail + rol).
    2. Systeem genereert een InvitationToken met een beperkte geldigheidsduur (bijv. 24 uur).
    3. Gebruiker moet via een specifiek endpoint (POST /api/setup/complete-invitation) zijn wachtwoord instellen met dit token.
    4. Na succesvolle instelling wordt het token ongeldig en het account geactiveerd.

3. Bootstrapping (BR-ID-03)

  • Setup Endpoint: Bij een lege database is een eenmalig endpoint POST /api/setup/init beschikbaar.
  • Eerste Owner: Dit endpoint accepteert de gegevens voor de eerste Owner. Na succesvolle aanmaak wordt dit endpoint permanent geblokkeerd of verwijderd uit de routing.

4. Authenticatie & Sessies (BR-ID-04)

  • Wachtwoord Hashen: Wachtwoorden moeten gehasht worden volgens de ASP.NET Core Identity standaard (PBKDF2 met HMAC-SHA256).
  • Refresh Tokens:
    • Refresh tokens zijn gekoppeld aan een specifieke gebruiker en client/apparaat.
    • Refresh tokens kunnen maar één keer worden gebruikt (Rotation-principe).
    • Bij gebruik van een oud refresh token worden alle actieve sessies van die gebruiker ongeldig gemaakt (beveiligingsmaatregel tegen token diefstal).

5. Module-specifieke Rechten (BR-ID-05)

  • Fine-grained Access: Naast de globale rollen kunnen Beheerders specifieke rechten per module toekennen aan Users.
  • Default: Zonder expliciete module-rechten heeft een User alleen leesrechten of basisrechten binnen een module (afhankelijk van de module-implementatie).