Microsoft Graph mailbox‑toegang beperken met Exchange Online Application Access Policies (legacy)

Applicaties die Microsoft Graph gebruiken met Application permissions (service‑to‑service, daemon apps, backend‑integraties) krijgen standaard tenant-brede toegang tot alle Exchange Online mailboxen waarvoor deze rechten gelden. Dit komt doordat Application permissions op tenant‑niveau worden gevalideerd en niet op mailbox‑niveau. Voor veel integraties is dat een te brede scope en vormt het een aanzienlijk security‑risico.

Met een Application Access Policy kun je deze toegang beperken tot een expliciete set mailboxen. Hoewel dit mechanisme door Microsoft inmiddels als legacy wordt aangemerkt, is het nog steeds breed in gebruik en functioneel relevant. Voor nieuwe implementaties adviseert Microsoft RBAC for Applications, maar Application Access Policies blijven voorlopig ondersteund.


Waarom Application Permissions standaard te veel toegang geven

Wanneer een applicatie in Microsoft Entra ID rechten krijgt zoals:

  • Mail.Read / Mail.ReadWrite
  • Mail.Send
  • Andere Exchange Online gerelateerde Application permissions

dan krijgt deze app via Graph toegang tot alle mailboxen binnen de tenant. Dit geldt voor mail, agenda en contacten. Zonder aanvullende configuratie is er geen ingebouwde mailbox‑scope‑beperking.

Voorbeelden waar dit onwenselijk is:

  • Ticketing‑systemen die slechts één functionele mailbox hoeven te lezen
  • Integraties die alleen afdelingsmailboxen mogen benaderen
  • Externe koppelingen waarbij je de blast radius wilt minimaliseren

Een gecompromitteerde client secret of misconfiguratie kan anders direct leiden tot volledige mailbox‑exfiltratie.


Wat doet een Application Access Policy?

Een Application Access Policy is een Exchange Online‑configuratie die bepaalt welke mailboxen een specifieke Azure‑applicatie mag benaderen wanneer deze Graph‑aanroepen doet met Application permissions.

Belangrijke kenmerken:

  • De policy wordt geëvalueerd binnen Exchange Online, niet in Entra ID.
  • De policy geldt voor alle Exchange‑gerelateerde Graph‑endpoints: mail, calendar, contacts.
  • Andere Graph‑resources (Teams, SharePoint, Directory) worden niet beïnvloed.
  • De policy werkt als een extra autorisatielaag bovenop de Graph‑permissions.

Alleen mailboxen die lid zijn van een opgegeven mail‑enabled security group kunnen door de app worden benaderd.


Implementatie: Microsoft Graph beperken tot specifieke mailboxen

Stap 1: Verbinden met Exchange Online PowerShell

Install-Module ExchangeOnlineManagement
Import-Module ExchangeOnlineManagement

Connect-ExchangeOnline

Gebruik een account met minimaal Exchange Administrator‑rechten.


Stap 2: Maak een mail‑enabled security group

New-DistributionGroup -Name "GraphMailboxAccess" -PrimarySmtpAddress graphaccess@jouwdomein.nl

Deze groep fungeert als autorisatiecontainer voor mailbox‑toegang.


Stap 3: Voeg mailboxen toe aan de groep

Add-DistributionGroupMember -Identity "GraphMailboxAccess" -Member servicedesk@jouwdomein.nl
Add-DistributionGroupMember -Identity "GraphMailboxAccess" -Member support@jouwdomein.nl

Dit kunnen user‑mailboxen, shared mailboxen of resource mailboxen zijn.


Stap 4: Maak de Application Access Policy

Gebruik de Application (client) ID van de Entra‑applicatie:

New-ApplicationAccessPolicy `
  -AppId "JOUW-APP-ID-HIER" `
  -PolicyScopeGroupId "graphaccess@jouwdomein.nl" `
  -AccessRight RestrictAccess `
  -Description "Beperk Graph-toegang tot specifieke mailboxen"

Vanaf dit moment worden alle Exchange‑gerelateerde Graph‑aanroepen door deze app gefilterd op basis van de groepsleden.


Stap 5: Valideer de policy

Test-ApplicationAccessPolicy -AppId "JOUW-APP-ID-HIER" -Identity servicedesk@jouwdomein.nl

Verwachte output:

AccessCheckResult : Granted

Test een mailbox buiten de groep:

AccessCheckResult : Denied

Policy propagation en latency

Exchange Online gebruikt interne caching en replicatie. Hierdoor duurt het doorgaans 30–60 minuten voordat een nieuwe of gewijzigde policy volledig actief is.

Dit geldt ook voor wijzigingen in groepslidmaatschap.


Veelgestelde technische vragen

Beperkt dit alle Graph‑endpoints?

Alleen Exchange Online‑resources: mail, agenda en contacten. Andere Graph‑services worden niet beïnvloed.

Werkt dit voor gedeelde mailboxen?

Ja. Shared mailboxen kunnen gewoon lid worden van de mail‑enabled security group.

Is dit een vervanging voor Conditional Access?

Nee. Conditional Access werkt op identity‑niveau, niet op mailbox‑objectniveau. Application Access Policies zijn een aanvullende autorisatielaag.

Is dit de aanbevolen moderne methode?

Voor nieuwe implementaties adviseert Microsoft RBAC for Applications. Application Access Policies blijven ondersteund maar worden als legacy beschouwd.


Conclusie: essentieel voor least‑privilege Graph‑architecturen

Met Application Access Policies kun je:

  • Application permissions beperken tot een gecontroleerde mailbox‑scope
  • De blast radius van credential‑compromises minimaliseren
  • Least‑privilege en zero‑trust principes afdwingen
  • Integraties veiliger en beheersbaar maken

Hoewel dit mechanisme legacy is, blijft het relevant voor bestaande integraties. Voor nieuwe implementaties is het verstandig om RBAC for Applications te evalueren.

Categorieën: Microsoft

0 reacties

Geef een reactie

Avatar plaatshouder

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *