Initial commit with inital CMS
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
# NFR Requirements — Unit 02: Identity & RBAC
|
||||
|
||||
Dit document specificeert de non-functionele vereisten voor identiteitsbeheer en autorisatie.
|
||||
|
||||
## 1. Beveiliging (Security)
|
||||
|
||||
- **ID-SEC-01: Wachtwoordbeleid**:
|
||||
- Minimale lengte: 8 tekens.
|
||||
- Geen verplichte complexiteitseisen (hoofdletters/cijfers), focus op lengte voor gebruiksvriendelijkheid.
|
||||
- **ID-SEC-02: Token Lifecycle**:
|
||||
- Access Token (JWT) vervaltijd: 1 uur.
|
||||
- Refresh Token vervaltijd: 7 dagen.
|
||||
- **ID-SEC-03: Audit Logging**:
|
||||
- Verplichte persistente logging van:
|
||||
- Gebruikerscreatie en uitnodigingen.
|
||||
- Rolwijzigingen.
|
||||
- Activatie/Deactivatie van accounts.
|
||||
- Mislukte login pogingen.
|
||||
- **ID-SEC-04: Data Privacy**:
|
||||
- Wachtwoorden worden nooit in plain-text opgeslagen.
|
||||
- Persoonlijke gegevens (PII) worden alleen via HTTPS ontsloten.
|
||||
|
||||
## 2. Performance
|
||||
|
||||
- **ID-PERF-01: Token Validatie**:
|
||||
- De validatie van het JWT token bij elk request mag niet meer dan 5ms overhead toevoegen.
|
||||
- **ID-PERF-02: Database Querying**:
|
||||
- Het ophalen van een gebruiker inclusief rollen en permissies moet binnen 20ms gebeuren (geïndexeerd op Email).
|
||||
|
||||
## 3. Onderhoudbaarheid (Maintainability)
|
||||
|
||||
- **ID-MAINT-01: Database Schema**:
|
||||
- Gebruik van schone tabelnamen zonder `AspNet` prefix (bijv. `Users`, `Roles`, `UserRoles`).
|
||||
- **ID-MAINT-02: EF Core Migrations**:
|
||||
- Alle wijzigingen aan het identiteitsschema worden via code-first migrations bijgehouden.
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
# Tech Stack Decisions — Unit 02: Identity & RBAC
|
||||
|
||||
Dit document beschrijft de definitieve technische keuzes voor Unit 02.
|
||||
|
||||
## 1. Core Frameworks
|
||||
|
||||
- **Identity**: Microsoft.AspNetCore.Identity.
|
||||
- **ORM**: Entity Framework Core.
|
||||
- **Database**: Microsoft SQL Server.
|
||||
|
||||
## 2. Authenticatie & Autorisatie
|
||||
|
||||
- **JWT Library**: Microsoft.AspNetCore.Authentication.JwtBearer.
|
||||
- **Policy Engine**: Native ASP.NET Core Authorization Policies & RequirementHandlers.
|
||||
- **Hashing**: PBKDF2 (standaard Identity).
|
||||
|
||||
## 3. Database Schema Mapping
|
||||
|
||||
Conform ID-MAINT-01 worden de standaard Identity tabellen hernoemd in de `OnModelCreating` van de `DbContext`:
|
||||
|
||||
| Standaard Naam | Nieuwe Naam |
|
||||
|---|---|
|
||||
| AspNetUsers | Users |
|
||||
| AspNetRoles | Roles |
|
||||
| AspNetUserRoles | UserRoles |
|
||||
| AspNetUserClaims | UserClaims |
|
||||
| AspNetUserLogins | UserLogins |
|
||||
| AspNetRoleClaims | RoleClaims |
|
||||
| AspNetUserTokens | UserTokens |
|
||||
|
||||
## 4. Testing Tools
|
||||
|
||||
- **Unit Tests**: xUnit + FluentAssertions + NSubstitute.
|
||||
- **Data Generation**: AutoFixture.
|
||||
- **PBT**: FsCheck (alleen voor token-logic en mapping functies, conform NFR-06).
|
||||
Reference in New Issue
Block a user