Inloggen met Microsoft (Entra ID) lukt niet: diagnose en scope-troubleshooting
Deze pagina helpt bij het diagnosticeren van een mislukte aanmelding via de Microsoft (Entra ID) OAuth-provider. Typische melding: «Beheerderstoestemming vereist» (Microsoft-foutcode AADSTS90094). Voor de inrichting zelf: zie Hoe kan ik inloggen mogelijk maken met Microsoft (Entra ID)?.
Waarom gebeurt dit?
i-Reserve vraagt bij het inloggen de volgende machtigingen (scopes) aan: openid User.Read Contacts.Read offline_access. Deze zijn allemaal gedelegeerd (namens de ingelogde gebruiker). Toch kan Microsoft om beheerderstoestemming vragen wanneer:
- in de tenant is ingesteld dat gebruikers zelf geen toestemming mogen geven aan toepassingen, of
- er nog geen tenant-brede beheerderstoestemming is verleend voor de app.
De melding verschijnt op de toestemmingspagina van Microsoft zelf — de browser keert dan niet terug bij i-Reserve. Daarom is er aan de i-Reserve-kant geen inlogpoging of fout te zien; het probleem ligt in de Entra-configuratie.
Snelle controle in de Entra-portal
- Open App-registraties > [uw app] > API-machtigingen en controleer of de vier machtigingen (openid, User.Read, offline_access, Contacts.Read) op «Verleend voor [organisatie]» staan.
- Is dat niet zo, klik dan op «Beheerderstoestemming verlenen voor [organisatie]» (hiervoor zijn beheerdersrechten nodig).
- Controleer ter kruiscontrole ook Bedrijfstoepassingen > [uw app] > Machtigingen: daar hoort dezelfde toestemming te staan.
- Na het verlenen kan het enkele minuten duren voordat Microsoft dit overal heeft doorgevoerd. Probeer daarna opnieuw in een verse browsersessie (incognito), zodat een onthouden foutpagina wordt uitgesloten.
Diagnose via PowerShell (alleen lezen)
Met onderstaand script controleert u vanaf de opdrachtregel of alles aan de Entra-kant klopt. Het is uitsluitend lezend (alleen *.Read.All-rechten) en gebruikt de moderne Microsoft Graph PowerShell-module. Vul bovenaan uw tenant-ID en client-ID in (te vinden onder App-registraties > Overzicht).
# --- In te vullen / Fill in / Ausfüllen ---
$tenantId = "<TENANT_ID>" # Map-(tenant-)ID
$appId = "<CLIENT_ID>" # Toepassings-(client-)ID
Install-Module Microsoft.Graph -Scope CurrentUser # alleen de eerste keer / first time only
Connect-MgGraph -TenantId $tenantId `
-Scopes "Application.Read.All","DelegatedPermissionGrant.Read.All","Policy.Read.All","AuditLog.Read.All"
# 1. Bedrijfstoepassing ophalen + controleren of er maar EEN is
$sp = Get-MgServicePrincipal -Filter "appId eq '$appId'"
$sp | Format-List DisplayName, Id, AppId, AccountEnabled, ServicePrincipalType
"Aantal app-instanties: $($sp.Count) (verwacht: 1)"
# 2. De daadwerkelijk verleende toestemming (de kern)
Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $sp.Id |
Select-Object ConsentType, PrincipalId, Scope | Format-List
# 3. Tenant-instelling voor gebruikers-toestemming (leeg = alleen beheerder mag toestemmen)
(Get-MgPolicyAuthorizationPolicy).DefaultUserRolePermissions.PermissionGrantPoliciesAssigned
# 4. Laatste inlogpogingen voor deze app (vereist Entra ID P1/P2)
Get-MgAuditLogSignIn -Filter "appId eq '$appId'" -Top 20 |
Select-Object CreatedDateTime, UserPrincipalName,
@{n='Error';e={$_.Status.ErrorCode}},
@{n='Reason';e={$_.Status.FailureReason}} |
Format-Table -AutoSizeBij de eerste Connect-MgGraph vraagt Microsoft zelf om toestemming voor «Microsoft Graph Command Line Tools»; die kan een beheerder goedkeuren. Stap 4 (aanmeldingslogboeken) vereist een Entra ID P1- of P2-licentie.
Wat «goed» eruitziet
| Controle | Verwachte uitkomst |
|---|---|
| Aantal app-instanties | Precies 1. Meer betekent een dubbele app die opgeschoond moet worden. |
| Verleende toestemming (stap 2) | Een regel met ConsentType : AllPrincipals en in Scope minimaal openid User.Read Contacts.Read offline_access. Principal = alleen per gebruiker; leeg = niet verleend. |
| Gebruikers-toestemming (stap 3) | Leeg betekent dat alleen een beheerder mag toestemmen — dat verklaart de melding, en is geen probleem zodra stap 2 klopt. |
| Aanmeldingslogboeken (stap 4) | Geen nieuwe 90094-fouten meer na het moment waarop toestemming is verleend. |
De belangrijkste controles zijn stap 2 (staat de toestemming tenant-breed?) en stap 3 (is zelf-toestemmen uitgezet?).





