Groepen, rollen & inlogniveaus
BeID levert de bouwstenen voor autorisatie: groepen en rollen in de tokens, plus afdwingbare inlogniveaus (step-up) per applicatie.
Groepen
Een tenantbeheerder maakt groepen aan (Beheer → Groepen) en wijst gebruikers toe. Groepsnamen komen mee als groups-claim in het ID-token, zodat jouw applicatie er autorisatie op kan baseren.
Rollen
| Rol | Mag |
|---|---|
member | Normale gebruiker. |
reviewer | KYC-aanvragen beoordelen. |
admin | Gebruikers, groepen en applicaties beheren. |
De rol komt mee als roles-claim in het token.
Rollen automatisch toewijzen via groepen
Een groep kan een rol toewijzen (Beheer → Groepen → "Wijst rol toe"). Komt een gebruiker in zo'n groep — handmatig of via SCIM-provisioning — dan krijgt die automatisch de bijbehorende rol. Zit iemand in meerdere groepen met een rol, dan wint de hoogste rol (beheerder > beoordelaar > lid). Zo beheer je rollen centraal vanuit je IdP of HR-systeem.
Geen verrassende verlagingen
Hoort een gebruiker bij geen enkele groep met een roltoewijzing, dan blijft de handmatig ingestelde rol staan. Een vertrekkende medewerker wordt via SCIM gedeactiveerd, niet stilletjes verlaagd.Inlogniveaus (assurance levels)
Elke sessie krijgt een niveau op basis van hoe sterk de gebruiker zich heeft geauthenticeerd. Dit volgt het idee van NIST AAL / eIDAS LoA:
| Niveau | Hoe | Vergelijkbaar met |
|---|---|---|
| 1 | Wachtwoord | AAL1 |
| 2 | Wachtwoord + TOTP (MFA) | AAL2 |
| 3 | Passkey (phishing-bestendig) | AAL3-achtig |
Het niveau komt mee als auth_level en acr (bijv. level2).
Step-up per applicatie
Geef een OAuth-client een minimaal inlogniveau mee. Logt een gebruiker in op een lager niveau, dan dwingt BeID automatisch sterkere authenticatie af vóór er een token wordt uitgegeven.
curl -X POST https://id.becyber.nl/v1/developer/clients \
-H "Content-Type: application/json" --cookie "..." \
-d '{"name":"HR-portaal","redirectUris":["https://hr.bedrijf.nl/cb"],"minAuthLevel":2}'Voorbeeld
Zet gevoelige apps (HR, finance) op niveau 2 of 3. Gebruikers met alleen een wachtwoord worden dan gevraagd MFA of een passkey te gebruiken voordat ze toegang krijgen — zonder dat jij die logica hoeft te bouwen.Voorbeeld-claims
{
"sub": "cmpv...",
"email": "jan@bedrijf.nl",
"tenant": "Acme BV",
"groups": ["Engineers", "Beheerders"],
"roles": ["admin"],
"auth_level": 2,
"acr": "level2",
"kyc_status": "approved"
}