2.0 KiB
2.0 KiB
Services — SlpModularCms.Api
Dit document beschrijft de service-laag en de orkestratie van componenten.
1. Module Orchestrator (Binnen API Shell)
Verantwoordelijk voor het ontdekken en laden van modules bij het opstarten.
- Proces:
- Identificeer statisch gerefereerde projecten die
IModuleimplementeren. - Scan de geconfigureerde "Modules" directory voor DLL's (dynamisch laden).
- Roep
RegisterServicesaan op alle gevonden module-instanties. - Voeg de controllers van de modules toe aan de MVC-pipeline via
AddApplicationPart.
- Identificeer statisch gerefereerde projecten die
2. Identity Service Orchestratie
De IAuthService maakt gebruik van ASP.NET Core Identity onder water om authenticatie te regelen.
- Workflow Login:
AuthServiceroeptUserManageraan voor validatie.- Bij succes genereert
TokenServiceeen JWT met claims (ID, Rol). - Refresh token wordt opgeslagen in de database.
3. Availability Check Flow
Cross-cutting concern dat door de hele applicatie heen loopt.
- Interceptors/Middleware:
- Elk inkomend request kan worden gecontroleerd tegen de
IAvailabilityService. - Als
IAvailabilityService.IsAvailableAsync()false retourneert, stopt de pipeline met een503 Service Unavailable.
- Elk inkomend request kan worden gecontroleerd tegen de
4. RBAC Policy Orchestratie
Het framework configureert globale policies op basis van de rollenhiërarchie.
- Policies:
RequireOwnerRole: Vereist expliciet de Owner claim.RequireAdminRole: Vereist Admin OF Owner claim.RequireUserRole: Vereist User, Admin OF Owner claim.
5. Module-Specifieke Autorisatie
Naast de globale rollen kunnen Beheerders en Eigenaars rechten per module toekennen aan Gebruikers.
- Mechanisme:
- Het systeem houdt een koppeling bij tussen
UserenModulemet bijbehorende permissies (bijv.HasAccess). - Custom Requirement: Er wordt een
ModuleAccessRequirementgedefinieerd die controleert of de huidige gebruiker expliciete toegang heeft tot de module die hij probeert te benaderen. - Override: Eigenaars en Beheerders hebben standaard toegang tot alle modules (hiërarchie bypass).
- Het systeem houdt een koppeling bij tussen