UC-GEN-ACC-002 — Inloggen en sessie verwerken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-GEN-ACC-002 |
| Naam | Inloggen en sessie verwerken |
| Domein | Generiek / Account |
| Primaire actor | Gebruiker |
| Secundaire actor(en) | Identity provider, OefenHub frontend, OefenHub backend, autorisatieservice, profiel-/instellingendienst |
| Rolcontext | Nog niet definitief bij start van de usecase. Na succesvolle sessieverwerking wordt de actieve OefenHub-context server-side bepaald op basis van Users, actieve UserRoles, Roles, UserSettings en eventuele verplichte vervolgflows. |
| Betrokken schermen | Publieke OefenHub-pagina of beveiligde route; externe identity-provider-login; OefenHub-authentication callback; geauthenticeerde frontpage; profiel- of vervolgflow indien nodig. |
| Gerelateerde usecases | UC-GEN-ACC-001 — Eerste login en account provisioning; UC-GEN-PROF-003 — Verplicht niveau instellen; UC-GEN-PROF-006 — Toegankelijkheid vóór en na login synchroniseren; UC-GEN-NOT-001 — Systeemnotificatie tonen |
| Primaire entiteiten | Users, UserRoles, Roles, UserSettings |
| Secundaire entiteiten / events | SiteFeatureToggles, technische sessiecontext, identity-providerclaims, accountlogkanaal |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe OefenHub een succesvolle authenticatie via de externe identity provider vertaalt naar een geldige applicatiesessie binnen OefenHub.
De gebruiker voert credentials niet in bij OefenHub zelf. Authenticatie, wachtwoorden, wachtwoord vergeten, e-mailverificatie en de primaire sessie bij de identity provider vallen buiten OefenHub. OefenHub ontvangt na succesvolle authenticatie een callback of tokencontext, valideert de ontvangen identity-context en koppelt die aan het interne Users-record via ExternalId.
Wanneer voor de ontvangen ExternalId nog geen intern OefenHub-account bestaat, wordt de provisioningflow uit UC-GEN-ACC-001 uitgevoerd. Wanneer het interne account wel bestaat, controleert OefenHub of het account actief is, werkt de laatste activiteit bij, laadt de actieve rollen en instellingen, synchroniseert relevante toegankelijkheidsinstellingen en bepaalt naar welke OefenHub-route de gebruiker wordt geleid.
Deze usecase beschrijft dus niet het registreren of provisionen zelf, maar het reguliere inloggen en verwerken van de OefenHub-sessie.
3. Scope
Deze usecase omvat wel:
- starten van een loginactie vanuit OefenHub;
- doorverwijzing naar de externe identity provider;
- verwerken van de terugkeer naar OefenHub na succesvolle authenticatie;
- valideren van identity-providerclaims die OefenHub nodig heeft;
- ophalen van het interne account via
Users.ExternalId; - doorvallen naar UC-GEN-ACC-001 wanneer het interne account nog ontbreekt;
- blokkeren van inloggen wanneer het interne OefenHub-account gedeactiveerd is;
- bijwerken van
Users.LastSeenAtUtcvoor actieve accounts; - bepalen van actieve rollen en mogelijke frontendcontexten;
- laden van
UserSettings; - synchroniseren van toegankelijkheidsinstellingen volgens UC-GEN-PROF-006;
- routeren naar frontpage, profiel of verplichte vervolgflow;
- veilig afhandelen van sessieverloop, ongeldige callback, ontbrekende claims of uitgeschakelde login.
Deze usecase omvat niet:
- Keycloak-registratie;
- invoeren of controleren van wachtwoorden;
- wachtwoord vergeten of wachtwoord resetten;
- e-mailverificatie binnen de identity provider;
- account provisioning zelf, behalve als verwijzing naar UC-GEN-ACC-001;
- verplicht niveau inhoudelijk instellen;
- accepteren of afwijzen van relatie-uitnodigingen;
- account verwijderen, deactiveren of anonimiseren;
- beheer van rollen of autorisaties;
- aanmaken van systeemnotificaties of systeemberichten.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker heeft toegang tot een OefenHub-route waar inloggen mogelijk of vereist is. |
| PRE-002 | De identity provider is beschikbaar voor authenticatie. |
| PRE-003 | OefenHub kent de configuratie om de identity-providercallback, tokenvalidatie en ExternalId-claim te verwerken. |
| PRE-004 | De relevante loginfunctionaliteit is niet sitebreed geblokkeerd voor de actuele gebruikerscategorie, tenzij de gebruiker een toegestane beheer- of herstelroute gebruikt. |
| PRE-005 | Voor bestaande accounts bestaat maximaal één actief of gedeactiveerd Users-record met dezelfde ExternalId. |
| PRE-006 | Voor sessieverwerking zijn Roles, UserRoles en UserSettings beschikbaar of veilig initialiseerbaar via de accountprovisioningflow. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | Bij succesvolle login bestaat er één geldige OefenHub-sessiecontext voor de gebruiker. |
| POST-002 | De sessiecontext is gekoppeld aan exact één intern Users.Id. |
| POST-003 | Users.LastSeenAtUtc is bijgewerkt voor een actief bestaand account. |
| POST-004 | De actieve rollen en beschikbare frontendcontexten zijn server-side bepaald. |
| POST-005 | Toegankelijkheidsinstellingen zijn volgens de synchronisatieregels toegepast. |
| POST-006 | De gebruiker is naar de juiste vervolgroute geleid: frontpage, profiel/verplicht niveau, of een andere geautoriseerde terugkeerroute. |
| POST-007 | Bij ontbrekend intern account is UC-GEN-ACC-001 uitgevoerd of gestart als onderdeel van de loginverwerking. |
| POST-008 | Bij een gedeactiveerd of ongeldig account ontstaat geen geautoriseerde OefenHub-sessie. |
| POST-009 | Er worden geen wachtwoorden, credentials of identity-provider-sessiegegevens in OefenHub opgeslagen. |
6. Trigger
De usecase start wanneer de gebruiker:
- op Inloggen klikt;
- een beveiligde OefenHub-route opent zonder geldige sessie;
- terugkeert van de identity provider na succesvolle authenticatie;
- een verlopen OefenHub-sessie opnieuw wil activeren via de loginflow.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Gebruiker | Publieke pagina of beveiligde route | Start login of opent een route waarvoor authenticatie vereist is. | OefenHub bepaalt dat een geldige OefenHub-sessie ontbreekt. | Routeguard controleert uitsluitend sessieaanwezigheid, niet credentials. |
| 2 | OefenHub frontend | Routeguard / logincomponent | Stuurt gebruiker naar de externe identity provider. | De identity-providerlogin wordt geopend. | OefenHub toont geen eigen wachtwoordformulier. |
| 3 | Gebruiker | Identity-providerlogin | Doorloopt authenticatie bij de identity provider. | De identity provider authenticeert de gebruiker of weigert de login. | Credentials blijven buiten OefenHub. |
| 4 | Identity provider | Callback naar OefenHub | Stuurt gebruiker na succesvolle authenticatie terug naar OefenHub. | OefenHub ontvangt een callback of tokencontext. | Callback bevat minimaal een stabiele identity-provider-id en bruikbare accountclaims. |
| 5 | OefenHub backend | Authenticatieverwerking | Valideert callback, token, issuer, audience, geldigheid en vereiste claims. | Bij geldige context wordt de interne accountkoppeling bepaald. | ExternalId is de stabiele koppelsleutel. |
| 6 | OefenHub backend | Accountservice | Zoekt Users op basis van ExternalId. | Bestaand intern account wordt geladen. | Bij ontbrekend account gaat de flow naar UC-GEN-ACC-001. |
| 7 | OefenHub backend | Accountservice | Controleert Users.IsActive. | Alleen actieve accounts krijgen een OefenHub-sessie. | Gedeactiveerde of geanonimiseerde accounts worden niet regulier ingelogd. |
| 8 | OefenHub backend | Accountservice | Werkt Users.LastSeenAtUtc bij. | Laatste activiteit is vastgelegd. | Dit is een lichte accountmutatie bij succesvolle login. |
| 9 | OefenHub backend | Autorisatieservice | Laadt actieve UserRoles en bijbehorende Roles. | Beschikbare rolcontexten worden bepaald. | Frontendcontext wordt niet vertrouwd op basis van clientstate. |
| 10 | OefenHub backend | Profiel-/instellingendienst | Laadt UserSettings. | Profiel- en voorkeurencontext is beschikbaar. | Instellingen zijn gebruikersspecifiek en geen sessiebron van waarheid. |
| 11 | OefenHub backend / frontend | Toegankelijkheidslaag | Synchroniseert toegankelijkheidsinstellingen volgens UC-GEN-PROF-006. | De juiste toegankelijkheidsweergave wordt toegepast. | Profielinstellingen zijn leidend na login; cookie/browserwaarde is afgeleid. |
| 12 | OefenHub backend | Routering / contextbepaling | Bepaalt of verplichte vervolgflows nodig zijn. | Gebruiker wordt naar profiel, verplichte niveauflow of frontpage geleid. | Ontbrekend verplicht niveau leidt naar UC-GEN-PROF-003. |
| 13 | OefenHub frontend | Frontpage of terugkeerroute | Toont de geauthenticeerde OefenHub-context. | Gebruiker kan de applicatie gebruiken binnen zijn of haar autorisatie. | Systeemnotificaties kunnen daarna via UC-GEN-NOT-001 worden getoond. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 3 | Gebruiker annuleert of faalt authenticatie bij de identity provider. | OefenHub ontvangt geen geldige callback en blijft in publieke of niet-geauthenticeerde context. | Identity-providerafhandeling; geen OefenHub-popup. | Geen. |
| ALT-002 | 5 | Callback, token of vereiste claim is ongeldig of verlopen. | OefenHub weigert sessieopbouw en stuurt naar login of generieke fout-/toegangspagina. | Generieke authenticatiefout, buiten popupregister. | Geen. |
| ALT-003 | 6 | Er bestaat nog geen Users-record voor de ontvangen ExternalId. | OefenHub voert UC-GEN-ACC-001 uit. Na succesvolle provisioning keert de flow terug naar contextbepaling. | Geen aparte popup vanuit deze usecase. | Volgens UC-GEN-ACC-001. |
| ALT-004 | 6 | Er bestaan meerdere interne records met dezelfde ExternalId. | OefenHub blokkeert sessieopbouw en registreert een technische fout voor beheeronderzoek. | Generieke foutmelding, buiten popupregister. | Geen reguliere datamutatie. |
| ALT-005 | 7 | Intern account bestaat maar Users.IsActive = false. | OefenHub bouwt geen applicatiesessie op en toont een generieke toegang-geweigerd- of accountstatusmelding. | Geen domeinspecifieke popup. | Geen, behalve eventuele technische logging. |
| ALT-006 | 9 | Gebruiker heeft geen actieve rol. | OefenHub leidt naar een no-role/onvolledige-accountcontext of blokkeert toegang tot rolgebonden pagina’s. | Generieke accountstatusmelding, buiten popupregister. | Geen. |
| ALT-007 | 12 | Gebruiker heeft een rol waarvoor een verplicht niveau ontbreekt. | OefenHub leidt naar UC-GEN-PROF-003. | Popupverwerking hoort bij UC-GEN-PROF-003. | Geen vanuit deze usecase, behalve eerdere LastSeenAtUtc. |
| ALT-008 | 11 | Toegankelijkheidscookie ontbreekt, is ongeldig of kan niet worden geschreven. | OefenHub gebruikt profielinstellingen en gaat door zonder de cookie als bron te vertrouwen. | Geen. | Geen of alleen volgens UC-GEN-PROF-006. |
| ALT-009 | 1 | Login is sitebreed uitgeschakeld voor reguliere gebruikers. | OefenHub start geen reguliere loginflow of blokkeert sessieopbouw na terugkeer, afhankelijk van de route. | Generieke beschikbaarheidsmelding, buiten popupregister. | Geen. |
| ALT-010 | 13 | Terugkeerroute is na login niet langer toegestaan. | OefenHub negeert de oorspronkelijke route en leidt naar de passende frontpage of toegang-geweigerdafhandeling. | Geen domeinspecifieke popup. | Geen. |
| ALT-011 | 13 | Sessie verloopt tijdens later gebruik. | Routeguard start opnieuw de loginflow of stuurt naar publieke context. | Geen domeinspecifieke popup. | Geen. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | OefenHub verwerkt geen wachtwoorden en valideert geen credentials; dit is verantwoordelijkheid van de identity provider. |
| BR-002 | Een OefenHub-sessie mag alleen worden opgebouwd na een geldige identity-providercontext én een actief intern Users-record. |
| BR-003 | Users.ExternalId is de primaire koppelsleutel tussen identity-provideraccount en intern OefenHub-account. |
| BR-004 | Loginverwerking is idempotent: opnieuw inloggen met dezelfde ExternalId mag nooit een tweede Users-record aanmaken. |
| BR-005 | Wanneer een intern account ontbreekt, wordt accountaanmaak uitsluitend via UC-GEN-ACC-001 uitgevoerd. |
| BR-006 | Users.IsActive = false blokkeert reguliere applicatietoegang, ook wanneer de identity provider de gebruiker succesvol authenticeert. |
| BR-007 | De actieve rolcontext wordt server-side bepaald uit actieve UserRoles en Roles; clientstate of routeparameters zijn niet leidend. |
| BR-008 | Een gebruiker met meerdere rollen krijgt alleen de frontendcontexten die volgens de OefenHub-rolregels zijn toegestaan. |
| BR-009 | De keuze van frontendcontext is applicatielogica; alleen persistente voorkeuren of niveaukeuzes die functioneel nodig zijn worden in UserSettings opgeslagen. |
| BR-010 | Users.LastSeenAtUtc wordt bijgewerkt bij succesvolle verwerking van een actieve OefenHub-login. |
| BR-011 | Toegankelijkheidsinstellingen uit het profiel zijn na login leidend boven browserwaarden. |
| BR-012 | Browserwaarden voor toegankelijkheid zijn afgeleid en mogen geen autorisatie, identiteit of persoonsgegevens bevatten. |
| BR-013 | Een ontbrekend verplicht niveau wordt niet stilzwijgend opgelost binnen deze usecase, maar leidt naar UC-GEN-PROF-003. |
| BR-014 | Systeemnotificaties worden pas na succesvolle frontpage- of contextweergave verwerkt en blokkeren de loginflow niet. |
| BR-015 | Login- of sessiefouten leveren geen domeinspecifieke popup op; zij vallen onder generieke authenticatie- of toegangafhandeling. |
| BR-016 | E-mailgegevens uit identity-providerclaims mogen alleen volgens expliciete synchronisatieregels worden gebruikt; de identity provider blijft bronhouder voor het authenticatie-e-mailadres. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Identity-providercallback | Moet afkomstig zijn van de geconfigureerde provider en cryptografisch geldig zijn. |
| Token / claims | Issuer, audience, geldigheid, handtekening en vereiste claims moeten geldig zijn. |
ExternalId | Verplicht, stabiel en uniek binnen Users. |
Email claim | Moet bruikbaar zijn als identity-context en volgens OefenHub-normalisatieregels worden verwerkt wanneer relevant. |
Users.IsActive | Moet true zijn voor reguliere sessieopbouw. |
UserRoles | Alleen actieve roltoekenningen tellen mee voor frontendcontext en autorisatie. |
Roles.IsActive | Inactieve rollen mogen geen actieve frontendcontext opleveren. |
UserSettings | Moet bestaan of via provisioning beschikbaar zijn; ontbrekende settings bij een bestaand account worden veilig hersteld via beheerste initialisatie. |
| Terugkeerroute | Mag alleen worden gebruikt wanneer de gebruiker na sessieverwerking server-side toegang heeft tot die route. |
| Toegankelijkheidscookie | Mag ontbreken of ongeldig zijn; profielinstellingen blijven leidend. |
| Featuretoggle login | Wanneer loginfunctionaliteit functioneel uitstaat, moet de routeguard dit respecteren behalve voor expliciet toegestane beheer- of herstelroutes. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 6 | Delegatie | UC-GEN-ACC-001 | Alleen wanneer het interne account ontbreekt; provisioning en uitnodigingskoppeling worden daar afgehandeld. |
| 8 | Update | Users | LastSeenAtUtc wordt bijgewerkt naar het actuele UTC-moment. |
| 11 | Delegatie / optioneel | UserSettings / browserwaarde | Toegankelijkheidssynchronisatie wordt uitgevoerd volgens UC-GEN-PROF-006. Databasewijziging vindt alleen plaats wanneer die usecase dat voorschrijft. |
| 13 | Technisch | Sessiestate / claims-cache | Applicatiesessiecontext wordt opgebouwd of vernieuwd. Dit is geen domeintabelmutatie. |
| ALT-004 | Technisch event | Accountlog / applicatielog | Dubbele ExternalId-situatie wordt gelogd voor beheeronderzoek. |
| ALT-005 | Technisch event | Accountlog / applicatielog | Poging tot login met gedeactiveerd intern account kan worden gelogd. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Identity-providercredentials | OefenHub beheert geen wachtwoorden of credentials. |
Roles | Login wijzigt de beschikbare rollen niet. |
UserRoles | Login kent geen nieuwe rollen toe en trekt geen rollen in. |
ProfileAvatars | Login wijzigt geen profielfoto. |
RelationshipInvitations | Alleen UC-GEN-ACC-001 koppelt pending uitnodigingen bij eerste provisioning. Reguliere login doet dit niet opnieuw als standaardmutatie. |
SystemMessages | Reguliere login maakt geen systeemberichten aan. |
UserRelationships | Login maakt, wijzigt of beëindigt geen relaties. |
PrivateMessageThreads / PrivateMessages | Login maakt geen privécommunicatie aan. |
Tickets | Login maakt of wijzigt geen meldingen. |
SiteNotifications | Login maakt of wijzigt geen site-notificaties. |
SiteFeatureToggles | Login leest toggles, maar wijzigt ze niet. |
13. State diagram
Niet van toepassing. Deze usecase raakt geen persistent statusobject zoals een uitnodiging, ticket of oefenrun.
De identity-provider- en applicatiesessie kennen wel technische toestanden, maar die worden niet als OefenHub-domeinstatus in de database gemodelleerd.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Succesvolle login met bestaand intern account
16.2 Succesvolle login zonder intern account
16.3 Login geweigerd wegens gedeactiveerd intern account
17. Popupverwijzingen
| PopupKey | Moment | Variant | Doel |
|---|---|---|---|
| Niet van toepassing | Login, sessieverwerking en toegang geweigerd | Niet van toepassing | Authenticatie- en toegangafhandeling verlopen via routeguard, identity provider of generieke fout-/toegangspagina’s, niet via domeinspecifieke popups. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijf dat OefenHub zelf geen wachtwoordlogin afhandelt, maar na identity-providerlogin de applicatiesessie en frontendcontext bepaalt. |
| Functioneel Ontwerp | Beschrijft dat een gedeactiveerd intern OefenHub-account geen toegang krijgt, ook wanneer de identity provider nog een geldige authenticatiecontext levert. |
| Functioneel Ontwerp | Beschrijf de routering na login: frontpage, terugkeerroute, verplicht niveau of no-role/onvolledige-accountcontext. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontend | Beschrijft de callbackverwerking, tokenvalidatie, ExternalId-lookup, idempotente provisioningdelegatie en sessiecontextopbouw uit. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontend | Beschrijft dat LastSeenAtUtc bij succesvolle login wordt bijgewerkt en dat technische sessiestate geen domeintabel is. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontend | Beschrijft hoe identity-providerclaims worden gesynchroniseerd zonder credentials of wachtwoordgegevens op te slaan. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontend | Beschrijft hoe toegankelijkheidscookie en profielinstellingen bij login worden gesynchroniseerd volgens UC-GEN-PROF-006. |
| Technisch Ontwerp: identiteit, authenticatie en rolcontext, autorisatie, Blazor frontend | Beschrijft veilige fallback bij ontbrekende claims, dubbele ExternalId, gedeactiveerd account en uitgeschakelde loginfunctionaliteit. |
| Software Requirements Specification | Bevat requirements voor login via identity provider, sessieverwerking, accountkoppeling, actieve-accountcontrole, rolcontextbepaling, sessieverloop en veilige foutafhandeling. |
| Database-informatie | Bevestig dat geen aparte sessietabel nodig is voor reguliere login; persistente effecten blijven beperkt tot Users.LastSeenAtUtc en eventuele gedelegeerde provisioning- of synchronisatiemutaties. |
| Architectuur | Leg de grens vast tussen identity-providerauthenticatie en OefenHub-applicatieautorisatie. |
19. SRS-trace
Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.
| Usecase-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-GEN-ACC-002-001 | SRS-ACC-002 SRS-NFR-SEC-001 SRS-ARCH-002 AC-ACC-002 AC-NFR-SEC-001 AC-ARCH-002 | Gebruikers voor authenticatie doorverwijzen naar de externe identity provider en mag geen eigen wachtwoordvalidatie uitvoeren |
REQ-UC-GEN-ACC-002-002 | SRS-ACC-002 AC-ACC-002 | Na succesvolle identity-providerlogin de ontvangen callback en vereiste claims valideren voordat een OefenHub-sessie wordt opgebouwd |
REQ-UC-GEN-ACC-002-003 | SRS-ACC-002 AC-ACC-002 | Het interne account koppelen via Users.ExternalId |
REQ-UC-GEN-ACC-002-004 | SRS-ACC-001 AC-ACC-001 | Bij ontbrekend intern account de provisioningflow UC-GEN-ACC-001 uitvoeren of activeren |
REQ-UC-GEN-ACC-002-005 | SRS-ACC-002 AC-ACC-002 | Geen tweede Users-record aanmaken wanneer al een account met dezelfde ExternalId bestaat |
REQ-UC-GEN-ACC-002-006 | SRS-AUTH-001 SRS-ACC-002 AC-AUTH-001 AC-ACC-002 | Reguliere applicatietoegang weigeren wanneer het interne OefenHub-account gedeactiveerd is |
REQ-UC-GEN-ACC-002-007 | SRS-RDM-001 SRS-ACC-002 AC-RDM-001 AC-ACC-002 | Users.LastSeenAtUtc bijwerken na succesvolle sessieverwerking voor een actief account |
REQ-UC-GEN-ACC-002-008 | SRS-AUTH-001 SRS-ACC-002 AC-AUTH-001 AC-ACC-002 | Actieve rollen en toegestane frontendcontexten server-side bepalen |
REQ-UC-GEN-ACC-002-009 | SRS-ACC-002 SRS-ACC-003 SRS-ACC-005 SRS-NFR-ACC-001 AC-ACC-002 AC-ACC-003 AC-ACC-005 AC-NFR-ACC-001 | Na login gebruikersinstellingen laden en toegankelijkheidsinstellingen synchroniseren volgens de centrale toegankelijkheidsregels |
REQ-UC-GEN-ACC-002-010 | SRS-ACC-002 SRS-CAT-001 AC-ACC-002 AC-CAT-001 | Gebruikers met ontbrekend verplicht niveau naar de verplichte niveauflow leiden |
REQ-UC-GEN-ACC-002-011 | SRS-AUTH-001 SRS-ACC-002 AC-AUTH-001 AC-ACC-002 | Een oorspronkelijke terugkeerroute alleen gebruiken wanneer de gebruiker daar na sessieverwerking server-side toegang toe heeft |
REQ-UC-GEN-ACC-002-012 | SRS-ACC-002 SRS-NFR-SEC-001 AC-ACC-002 AC-NFR-SEC-001 | Sessieverloop veilig afhandelen door opnieuw te authenticeren of terug te vallen naar publieke context zonder domeindata te wijzigen |
REQ-UC-GEN-ACC-002-013 | SRS-ACC-002 SRS-SHR-001 SRS-NFR-SEC-001 AC-ACC-002 AC-SHR-001 AC-NFR-SEC-001 | Fouten zoals ontbrekende claims, dubbele ExternalId of gedeactiveerd account veilig afhandelen zonder gedeeltelijke sessieopbouw |
REQ-UC-GEN-ACC-002-014 | SRS-ACC-002 SRS-REL-001 SRS-MSG-001 SRS-TIC-002 SRS-POP-002 AC-ACC-002 AC-REL-001 AC-MSG-001 AC-TIC-002 AC-POP-002 | Login en sessieverwerking scheiden van mailboxberichten, systeemnotificaties, tickets, relaties en privéberichten |
Aanvulling - remote authentication failure
Wanneer de identity-providercallback niet aan een geldige OefenHub-authenticatiepoging kan worden gekoppeld, bijvoorbeeld door ontbrekende correlation-cookie, toont OefenHub een veilige foutpagina in plaats van een Developer Exception. Het systeem logt de technische oorzaak met correlation-id en vraagt de gebruiker opnieuw aan te melden of verder te gaan in het venster waarin de login wel is afgerond.