Azure Identity: Apparaatgebaseerde Conditional Access Configuratie

💼 Management Samenvatting

Apparaatgebaseerde Conditional Access Policies vormen een kritieke beveiligingslaag binnen moderne Zero Trust-architecturen door organisaties in staat te stellen toegang tot gevoelige resources uitsluitend toe te staan vanaf beheerde, beveiligde en compliant apparaten. Voor Nederlandse overheidsorganisaties is het implementeren van apparaatgebaseerde toegangscontroles niet alleen een best practice, maar een essentiële vereiste die direct bijdraagt aan compliance met de Baseline Informatiebeveiliging Overheid (BIO), de NIS2-richtlijn en internationale standaarden zoals ISO 27001 door het afdwingen van apparaatcompliance, het beperken van toegang tot alleen vertrouwde apparaten, en het voorkomen van toegang vanaf onbeheerde of onbeveiligde endpoints.

Aanbeveling
IMPLEMENT
Risico zonder
Critical
Risk Score
10/10
Implementatie
36u (tech: 24u)
Van toepassing op:
Azure AD
Entra ID
Microsoft 365
Microsoft Intune

Zonder apparaatgebaseerde Conditional Access Policies kunnen gebruikers toegang krijgen tot gevoelige organisatieresources vanaf onbeheerde apparaten, persoonlijke devices zonder beveiligingscontroles, of endpoints die niet voldoen aan organisatiebeleid. Dit creëert aanzienlijke beveiligingsrisico's waarbij gestolen credentials kunnen worden misbruikt vanaf onbeveiligde apparaten, malware-geïnfecteerde devices toegang krijgen tot bedrijfskritieke data, en onbeheerde endpoints worden gebruikt om gevoelige informatie te benaderen zonder adequate beveiligingscontroles. Traditionele netwerkgebaseerde beveiliging faalt in moderne cloud-omgevingen waar gebruikers overal en vanaf elk apparaat werken, ongeacht de beveiligingsstatus van dat apparaat. Apparaatgebaseerde Conditional Access Policies lossen deze fundamentele problemen op door organisaties in staat te stellen toegangsbeslissingen te nemen die zijn gebaseerd op de compliance-status en beheerstaat van het apparaat. Door toegang te beperken tot alleen compliant en beheerde apparaten, hybride joined apparaten te vereisen voor gevoelige applicaties, en onbeheerde apparaten te blokkeren of te beperken tot alleen-lezen toegang, minimaliseren organisaties het aanvalsoppervlak aanzienlijk en verhogen zij de beveiligingspostuur door te waarborgen dat alleen beveiligde endpoints toegang hebben tot bedrijfskritieke resources.

PowerShell Modules Vereist
Primary API: Microsoft Graph API
Connection: Connect-MgGraph
Required Modules: Microsoft.Graph.Identity.SignIns, Microsoft.Graph.DeviceManagement

Implementatie

Deze control implementeert een volledig geconfigureerd apparaatgebaseerd Conditional Access-raamwerk met beleidsregels die toegang tot gevoelige applicaties en data beperken tot alleen compliant, beheerde of hybride joined apparaten. De configuratie omvat baseline-beleidsregels zoals het vereisen van compliant apparaten voor toegang tot SharePoint Online, Exchange Online en Teams, het vereisen van hybride Azure AD joined apparaten voor beheerders, het blokkeren van toegang vanaf onbeheerde apparaten, en het vereisen van goedgekeurde client-applicaties. Voor gevoelige applicaties worden aanvullende strikte beleidsregels geconfigureerd die altijd apparaatcompliance vereisen, ongeacht andere omstandigheden. Apparaatcompliance wordt afgedwongen via Microsoft Intune, waarbij apparaten moeten voldoen aan configuratiebeleidsregels zoals versleuteling, wachtwoordvereisten, beveiligingsupdates en bedreigingsbescherming. Alle beleidsregels worden geconfigureerd met uitzonderingen voor break-glass accounts en noodtoegang, en worden getest in report-only modus voordat zij worden geactiveerd om onbedoelde toegangsblokkades te voorkomen.

Vereisten

Voor het succesvol implementeren van een volledig geconfigureerd apparaatgebaseerd Conditional Access-raamwerk zijn verschillende technische en organisatorische vereisten noodzakelijk die zorgvuldig moeten worden overwogen voordat het proces wordt gestart. De belangrijkste technische vereiste is het beschikken over Azure AD Premium P1- of P2-licenties voor alle gebruikers die onder apparaatgebaseerde Conditional Access Policies vallen, evenals Microsoft Intune-licenties voor apparaatbeheer en compliance-afdwinging. Deze licenties zijn essentieel voor het gebruik van de Conditional Access-functionaliteit binnen Microsoft Entra ID en voor het beheren van apparaatcompliance via Microsoft Intune. Zonder deze licenties zijn organisaties beperkt tot basisauthenticatie en kunnen zij geen geavanceerde apparaatgebaseerde beveiligingscontroles implementeren zoals apparaatcompliance-vereisten, hybride joined apparaatvereisten of onbeheerde apparaatbeperkingen.

Een tweede kritieke vereiste betreft het beschikken over een volledige en actuele inventarisatie van alle apparaten binnen de organisatie die moeten worden beheerd en gecontroleerd. Deze inventarisatie moet alle Windows-apparaten omvatten, inclusief hybride joined apparaten, Azure AD joined apparaten, en persoonlijke apparaten die worden gebruikt voor werkdoeleinden. Daarnaast moeten alle mobiele apparaten worden geïnventariseerd, inclusief iOS- en Android-apparaten die zijn geregistreerd via Microsoft Intune. Voor elk apparaat moet worden vastgelegd of het apparaat is beheerd, of het voldoet aan compliance-vereisten, en welke applicaties en data toegankelijk zijn vanaf dat apparaat. Zonder een complete en nauwkeurige inventarisatie bestaat het reële risico dat bepaalde apparaten over het hoofd worden gezien tijdens de configuratie, waardoor het beoogde beveiligingsniveau niet wordt bereikt en potentiële beveiligingsrisico's blijven bestaan.

Het configureren van Microsoft Intune voor apparaatbeheer en compliance vormt een derde essentiële vereiste die cruciaal is voor de effectiviteit van apparaatgebaseerde Conditional Access Policies. Microsoft Intune moet worden geconfigureerd met apparaatcompliance-beleidsregels die specificeren welke vereisten apparaten moeten voldoen om als compliant te worden beschouwd, zoals versleuteling, wachtwoordvereisten, beveiligingsupdates, bedreigingsbescherming en jailbreak- of root-detectie. Apparaatconfiguratieprofielen moeten worden geconfigureerd om beveiligingsinstellingen af te dwingen op beheerde apparaten. Apparaten moeten worden geregistreerd in Microsoft Intune en moeten voldoen aan compliance-beleidsregels voordat zij toegang kunnen krijgen tot gevoelige applicaties. Het is belangrijk om te realiseren dat zonder correct geconfigureerde Intune-compliance-beleidsregels, Conditional Access Policies die apparaatcompliance vereisen, gebruikers kunnen blokkeren van toegang tot applicaties, wat kan leiden tot operationele verstoringen en gebruikersontevredenheid.

Een vastgesteld en duidelijk gedocumenteerd beleidsraamwerk is eveneens cruciaal voor het succes van het proces en moet zorgvuldig worden afgestemd op de specifieke behoeften en risicoprofiel van de organisatie. Het beleidsraamwerk moet expliciet maken welke apparaatgebaseerde Conditional Access Policies worden geïmplementeerd, welke gebruikers en applicaties worden afgedekt, welke apparaatvereisten worden afgedwongen, welke uitzonderingen worden gemaakt en waarom, en hoe beleidsregels worden getest voordat zij worden geactiveerd. Het raamwerk moet ook voorzien in een duidelijk proces voor het afhandelen van toegangsverzoeken die worden geblokkeerd door apparaatgebaseerde Conditional Access Policies, inclusief wie verantwoordelijk is voor het evalueren van verzoeken, hoe uitzonderingen worden goedgekeurd en gedocumenteerd, en hoe beleidsregels worden aangepast wanneer zakelijke vereisten wijzigen. Het schema moet duidelijk worden gecommuniceerd naar alle betrokken partijen en moet worden vastgelegd in het formele beveiligingsbeleid van de organisatie om consistentie en naleving te waarborgen.

Ten slotte moet een duidelijk gedefinieerd en gedocumenteerd proces worden opgesteld voor het testen en valideren van apparaatgebaseerde Conditional Access Policies voordat zij worden geactiveerd. Dit proces moet in detail specificeren hoe beleidsregels worden getest in report-only modus, hoe de impact wordt geëvalueerd op gebruikers en apparaten, hoe uitzonderingen worden geïdentificeerd en geconfigureerd, en hoe beleidsregels geleidelijk worden gerold naar productie. Het proces moet ook voorzien in monitoring en alerting voor wanneer Conditional Access Policies gebruikers blokkeren vanwege niet-compliant apparaten, zodat beheerders snel kunnen reageren op problemen en gebruikers kunnen ondersteunen wanneer zij toegangsproblemen ervaren. Daarnaast moet het proces voorzien in een mechanisme voor het registreren en beheren van persoonlijke apparaten die worden gebruikt voor werkdoeleinden, waarbij gebruikers worden begeleid bij het registreren van hun apparaten en het voldoen aan compliance-vereisten.

Implementatie

Gebruik PowerShell-script device-based-conditional-access.ps1 (functie Invoke-Remediation) – Configureert apparaatgebaseerde Conditional Access Policies volgens best practices.

De implementatie van een volledig geconfigureerd apparaatgebaseerd Conditional Access-raamwerk begint met het configureren van Microsoft Intune voor apparaatbeheer en compliance. Dit omvat het navigeren naar de Microsoft Intune-portal en het configureren van apparaatcompliance-beleidsregels die specificeren welke vereisten apparaten moeten voldoen om als compliant te worden beschouwd. Voor Windows-apparaten moeten compliance-beleidsregels worden geconfigureerd die versleuteling vereisen via BitLocker, wachtwoordvereisten afdwingen, beveiligingsupdates vereisen, en bedreigingsbescherming afdwingen via Microsoft Defender. Voor iOS-apparaten moeten compliance-beleidsregels worden geconfigureerd die versleuteling vereisen, wachtwoordvereisten afdwingen, jailbreak-detectie inschakelen, en minimale iOS-versies vereisen. Voor Android-apparaten moeten compliance-beleidsregels worden geconfigureerd die versleuteling vereisen, wachtwoordvereisten afdwingen, root-detectie inschakelen, en minimale Android-versies vereisen.

Na het configureren van Intune-compliance-beleidsregels wordt het Conditional Access-raamwerk geconfigureerd via de Microsoft Entra ID-portal. Vanuit de Security-sectie wordt de Conditional Access-functionaliteit geselecteerd, waarna nieuwe beleidsregels worden aangemaakt voor verschillende apparaatgebaseerde beveiligingsscenario's. Voor baseline-beveiliging wordt een eerste beleid aangemaakt dat vereist dat apparaten compliant zijn of hybride Azure AD joined zijn voordat gebruikers toegang krijgen tot gevoelige applicaties zoals SharePoint Online, Exchange Online en Teams. Dit beleid vormt de fundament van het apparaatgebaseerde Conditional Access-raamwerk en zorgt ervoor dat alleen beheerde en beveiligde apparaten toegang hebben tot bedrijfskritieke data. Het beleid wordt geconfigureerd met 'Alle gebruikers' als doelgroep, specifieke gevoelige applicaties als scope, en 'Apparaat vereisen dat compliant is of hybride Azure AD joined is' als toegangscontrole. Uitzonderingen worden geconfigureerd voor break-glass accounts en noodtoegang om te voorkomen dat beheerders worden uitgesloten van kritieke systemen tijdens noodsituaties. Het beleid wordt eerst getest in report-only modus om de impact te evalueren voordat het wordt geactiveerd.

Voor het blokkeren van toegang vanaf onbeheerde apparaten wordt een tweede beleid aangemaakt dat alle toegangspogingen vanaf onbeheerde apparaten blokkeert of beperkt tot alleen-lezen toegang. Onbeheerde apparaten zijn apparaten die niet zijn geregistreerd in Microsoft Intune, niet zijn joined aan Azure AD, en niet voldoen aan organisatiebeleid. Het beleid wordt geconfigureerd met 'Alle gebruikers' als doelgroep, 'Alle cloud-applicaties' als scope, en 'Apparaat vereisen dat compliant is of hybride Azure AD joined is' als toegangscontrole. De toegangscontrole wordt ingesteld op 'Toegang blokkeren' om alle toegangspogingen vanaf onbeheerde apparaten te weigeren. Alternatief kan het beleid worden geconfigureerd om toegang toe te staan maar te beperken tot alleen-lezen toegang of web-gebaseerde applicaties zonder de mogelijkheid om data te downloaden. Uitzonderingen worden geconfigureerd voor specifieke gebruikers of groepen die toegang nodig hebben vanaf onbeheerde apparaten voor legitieme zakelijke doeleinden, waarbij deze gebruikers worden beperkt tot alleen-lezen toegang of specifieke applicaties.

Voor beheerders worden aanvullende strikte beleidsregels geconfigureerd die altijd hybride Azure AD joined apparaten vereisen, ongeacht andere omstandigheden. Dit omvat een beleid dat specifiek is gericht op beheerdersrollen zoals Globale beheerder, Bevoorrechte rolbeheerder, Gebruikersbeheerder en Beveiligingsbeheerder. Het beleid wordt geconfigureerd met beheerdersrollen als doelgroep, 'Alle cloud-applicaties' als scope, en 'Apparaat vereisen dat hybride Azure AD joined is' als toegangscontrole zonder uitzonderingen. Daarnaast wordt een beleid geconfigureerd dat beheerders blokkeert van toegang vanaf persoonlijke apparaten, waarbij alleen organisatie-eigendom apparaten worden toegestaan voor beheerdersaanmeldingen. Deze strikte beleidsregels zijn essentieel omdat beheerders toegang hebben tot gevoelige resources en configuraties, en omdat gecompromitteerde beheerdersaccounts aanzienlijke schade kunnen veroorzaken.

Voor gevoelige applicaties worden aanvullende strikte beleidsregels geconfigureerd die altijd apparaatcompliance vereisen, ongeacht andere omstandigheden. Dit omvat applicaties die gevoelige data bevatten, zoals financiële systemen, HR-systemen, of applicaties die persoonsgegevens verwerken. Het beleid wordt geconfigureerd met 'Alle gebruikers' als doelgroep, specifieke gevoelige applicaties als scope, en 'Apparaat vereisen dat compliant is' als toegangscontrole zonder uitzonderingen. Daarnaast wordt een beleid geconfigureerd dat vereist dat apparaten voldoen aan specifieke compliance-vereisten, zoals versleuteling, bedreigingsbescherming, en beveiligingsupdates. Deze strikte beleidsregels zijn essentieel omdat gevoelige applicaties kritieke data bevatten die beschermd moeten worden tegen onbeveiligde apparaten.

Na het configureren van alle beleidsregels is het essentieel om de voortgang actief te monitoren en ervoor te zorgen dat alle beleidsregels correct functioneren zonder onbedoelde toegangsblokkades. Het systeem biedt uitgebreide dashboards en rapporten die real-time inzicht geven in de werking van alle apparaatgebaseerde Conditional Access Policies, inclusief hoeveel aanmeldpogingen worden geblokkeerd vanwege niet-compliant apparaten, hoeveel apparaten niet-compliant zijn en waarom, welke beleidsregels het meest actief zijn, en welke gebruikers of applicaties het vaakst worden beïnvloed. Deze dashboards kunnen worden gebruikt om trends te identificeren, zoals of bepaalde apparaattypen consistent problemen veroorzaken, of of bepaalde gebruikersgroepen meer ondersteuning nodig hebben bij het configureren van hun apparaten. Actieve monitoring helpt om problemen vroegtijdig te detecteren en zorgt ervoor dat het apparaatgebaseerde Conditional Access-raamwerk effectief blijft functioneren zonder onnodige gebruikersimpact.

Compliance en Auditing

Apparaatgebaseerde Conditional Access Policies vormen een fundamentele en onmisbare vereiste binnen meerdere belangrijke beveiligings- en compliance-frameworks die wereldwijd worden erkend en toegepast. De CIS Microsoft 365 Benchmark versie 1.4.0 specificeert in meerdere controles expliciet dat organisaties apparaatgebaseerde Conditional Access Policies moeten implementeren om toegang te beperken tot compliant en beheerde apparaten, onbeheerde apparaten te blokkeren, en hybride joined apparaten te vereisen voor beheerders. Deze controles vallen onder zowel niveau L1 als L2, wat betekent dat basisbeveiligingsmaatregelen door alle organisaties moeten worden geïmplementeerd, terwijl geavanceerde maatregelen worden aanbevolen voor organisaties met hogere beveiligingsvereisten. De CIS Benchmark biedt uitgebreide en specifieke richtlijnen voor de configuratie van apparaatgebaseerde Conditional Access Policies, waarbij wordt benadrukt dat het raamwerk gestructureerd, volledig gedocumenteerd en regelmatig geëvalueerd moet zijn om effectief te zijn.

Voor Nederlandse overheidsorganisaties is de Baseline Informatiebeveiliging Overheid (BIO) van bijzonder en kritiek belang, aangezien deze baseline specifiek is ontwikkeld voor de Nederlandse publieke sector en verplicht is voor alle overheidsorganisaties. BIO-controle 08.03 vereist expliciet en zonder uitzondering dat organisaties passende authenticatiemethoden implementeren, inclusief apparaatgebaseerde toegangscontroles voor toegang tot gevoelige systemen en gegevens. BIO-controle 09.01 vereist dat organisaties toegangscontroles implementeren die zijn gebaseerd op de principes van minimale bevoegdheden en need-to-know. Apparaatgebaseerde Conditional Access Policies maken een integraal onderdeel uit van deze controles door organisaties in staat te stellen toegangsbeslissingen te nemen die zijn gebaseerd op de compliance-status en beheerstaat van het apparaat. De BIO benadrukt sterk het belang van volledig gedocumenteerde beveiligingsprocessen waarbij alle beleidsregels, uitzonderingen en configuraties worden vastgelegd voor audit- en compliance-doeleinden.

De internationale standaard ISO 27001:2022 bevat in meerdere controles specifieke en gedetailleerde vereisten voor toegangscontrole en apparaatbeveiliging. Controle A.5.17 vereist dat organisaties toegangsrechten beheren en controleren, inclusief het regelmatig beoordelen en intrekken van toegangsrechten. Controle A.5.18 vereist dat organisaties authenticatiemechanismen implementeren die geschikt zijn voor het beoogde gebruik. Controle A.8.3 vereist dat organisaties toegangscontroles implementeren die zijn gebaseerd op de principes van minimale bevoegdheden en need-to-know. Controle A.8.9 vereist dat organisaties beveiligingscontroles implementeren voor mobiele apparaten en remote access. Apparaatgebaseerde Conditional Access Policies maken een integraal onderdeel uit van deze controles door organisaties in staat te stellen toegangsbeslissingen te nemen die zijn gebaseerd op de compliance-status en beheerstaat van het apparaat. Implementatie van apparaatgebaseerde Conditional Access Policies helpt organisaties niet alleen te voldoen aan deze ISO-vereisten, maar draagt ook aanzienlijk bij aan het behalen en behouden van ISO 27001-certificering.

De Europese NIS2-richtlijn bevat in Artikel 21 specifieke en bindende vereisten voor toegangsbeheer en apparaatbeveiliging. De richtlijn vereist expliciet dat organisaties passende en effectieve maatregelen treffen voor toegangsbeheer, inclusief apparaatgebaseerde toegangscontroles voor toegang tot kritieke systemen en gegevens. Voor Nederlandse organisaties die onder de reikwijdte van NIS2 vallen, is het implementeren van apparaatgebaseerde Conditional Access Policies niet alleen een best practice of aanbeveling, maar een wettelijke verplichting die moet worden nageleefd. Niet-naleving van NIS2-vereisten kan leiden tot aanzienlijke financiële boetes, die kunnen oplopen tot miljoenen euro's, evenals ernstige reputatieschade en mogelijke gevolgen voor de continuïteit van bedrijfsvoering.

Monitoring

Gebruik PowerShell-script device-based-conditional-access.ps1 (functie Invoke-Monitoring) – Controleert de configuratie en status van apparaatgebaseerde Conditional Access Policies.

Effectieve monitoring van apparaatgebaseerde Conditional Access Policies is essentieel om te waarborgen dat het beveiligingsraamwerk correct blijft functioneren en dat organisaties altijd beschikken over actuele en effectieve apparaatgebaseerde toegangscontroles. Monitoring omvat het continu volgen van de werking van alle actieve beleidsregels, het verifiëren dat beleidsregels gebruikers en applicaties correct afdekken, het controleren van de effectiviteit van apparaatgebaseerde toegangscontroles, en het waarborgen dat alle beveiligingsscenario's worden afgedekt door passende beleidsregels.

De basis van monitoring wordt gevormd door regelmatige verificatie van de status van alle actieve apparaatgebaseerde Conditional Access Policies via de Microsoft Entra ID-portal of via PowerShell met behulp van de Microsoft Graph API. Beheerders moeten wekelijks controleren of alle beleidsregels actief zijn, of er geen waarschuwingen of foutmeldingen zijn die kunnen wijzen op problemen met het beleidsraamwerk, en of beleidsregels gebruikers en applicaties correct afdekken. Deze verificatie kan worden geautomatiseerd via PowerShell-scripts die de status van alle beleidsregels controleren en waarschuwingen genereren wanneer problemen worden gedetecteerd.

Naast het controleren van de status van beleidsregels moeten organisaties regelmatig verifiëren dat apparaatgebaseerde Conditional Access Policies effectief zijn en dat apparaatgebaseerde toegangscontroles correct functioneren. Dit kan worden gedaan door de Conditional Access Insights and Reporting-dashboards te monitoren die real-time inzicht geven in hoeveel aanmeldpogingen worden geblokkeerd vanwege niet-compliant apparaten, hoeveel apparaten niet-compliant zijn en waarom, welke beleidsregels het meest actief zijn, en welke gebruikers of applicaties het vaakst worden beïnvloed. Organisaties moeten processen implementeren voor het regelmatig uitvoeren van deze verificaties, waarbij wekelijks wordt gecontroleerd of beleidsregels effectief zijn en waarbij waarschuwingen worden gegenereerd wanneer onverwachte patronen worden gedetecteerd.

Voor organisaties die Microsoft Intune gebruiken voor apparaatbeheer en compliance, is het essentieel om te monitoren of apparaatcompliance-beleidsregels correct functioneren en of apparaten voldoen aan compliance-vereisten. Dit omvat het controleren of apparaten correct zijn geregistreerd in Microsoft Intune, of apparaatcompliance-beleidsregels correct zijn geconfigureerd en toegepast, of apparaten voldoen aan compliance-vereisten zoals versleuteling, wachtwoordvereisten en beveiligingsupdates, en of er geen valse positieven zijn die legitieme apparaten onterecht als niet-compliant markeren. Problemen met apparaatcompliance kunnen leiden tot situaties waarin gebruikers onterecht worden geblokkeerd van toegang tot applicaties of waarin niet-compliant apparaten toegang krijgen tot gevoelige resources. Organisaties moeten processen implementeren voor het monitoren van apparaatcompliance, waarbij dagelijks wordt gecontroleerd of apparaatcompliance-beleidsregels correct zijn en waarbij waarschuwingen worden gegenereerd wanneer problemen worden gedetecteerd.

Remediatie

Gebruik PowerShell-script device-based-conditional-access.ps1 (functie Invoke-Remediation) – Herstelt of configureert apparaatgebaseerde Conditional Access Policies wanneer deze ontbreken of onjuist zijn geconfigureerd.

Remediatie van apparaatgebaseerde Conditional Access Policies omvat het opzetten van nieuwe beleidsregels wanneer deze ontbreken, het corrigeren van configuratiefouten in bestaande beleidsregels, en het waarborgen dat alle beveiligingsscenario's worden afgedekt door passende beleidsregels. Het is belangrijk om te realiseren dat wanneer apparaatgebaseerde Conditional Access Policies niet zijn geconfigureerd, organisaties niet beschikken over een gestructureerd proces om toegangsbeslissingen te nemen die zijn gebaseerd op de compliance-status en beheerstaat van het apparaat, wat kan resulteren in onbeveiligde toegang tot gevoelige resources vanaf onbeheerde of niet-compliant apparaten en niet-naleving van compliance-vereisten.

Wanneer apparaatgebaseerde Conditional Access Policies ontbreken voor specifieke beveiligingsscenario's, kunnen nieuwe beleidsregels worden aangemaakt via de Microsoft Entra ID-portal door te navigeren naar Security, Conditional Access, en vervolgens Nieuw beleid te selecteren. De configuratiewizard leidt gebruikers door het volledige opzetten van het beleid, waarbij alle benodigde instellingen worden geconfigureerd, inclusief naam, gebruikers en groepen, cloud-apps of acties, voorwaarden zoals apparaatfilters, toegangscontroles zoals apparaatcompliance-vereisten, en sessiecontroles. Na het voltooien van de configuratie wordt het beleid eerst getest in report-only modus om de impact te evalueren voordat het wordt geactiveerd.

Voor bestaande beleidsregels met configuratiefouten kunnen de instellingen worden bijgewerkt via de Microsoft Entra ID-portal door te navigeren naar de specifieke beleidsregel en de instellingen te bewerken. Dit omvat het bijwerken van gebruikers en groepen wanneer deze niet langer geschikt zijn, het aanpassen van voorwaarden zoals apparaatfilters wanneer dit nodig is, en het corrigeren van toegangscontroles zoals apparaatcompliance-vereisten wanneer deze niet correct functioneren. Het is belangrijk om te verifiëren dat alle wijzigingen correct zijn toegepast en dat het beleid correct blijft functioneren na de wijzigingen, waarbij het beleid opnieuw wordt getest in report-only modus voordat het wordt geactiveerd.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Device-based Conditional Access Policies Configuration .DESCRIPTION CIS Microsoft 365 Benchmark - Controls 1.1.1, 1.1.2, 1.1.3, 1.2.1, 1.2.2 Controleert en configureert apparaatgebaseerde Conditional Access Policies voor apparaatcompliance, hybride joined apparaten en onbeheerde apparaatbeperkingen. .NOTES Filename: device-based-conditional-access.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 CIS Controls: 1.1.1, 1.1.2, 1.1.3, 1.2.1, 1.2.2 Requires: Azure AD Premium P1/P2, Microsoft Intune, Microsoft.Graph.Identity.SignIns, Microsoft.Graph.DeviceManagement #> #Requires -Version 5.1 #Requires -Modules Microsoft.Graph.Identity.SignIns, Microsoft.Graph.DeviceManagement [CmdletBinding()] param( [Parameter(Mandatory = $false)] [switch]$Monitoring, [Parameter(Mandatory = $false)] [switch]$Remediation, [Parameter(Mandatory = $false)] [switch]$Revert, [Parameter(Mandatory = $false)] [switch]$WhatIf ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Device-based Conditional Access Policies" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met Microsoft Graph #> try { $context = Get-MgContext -ErrorAction SilentlyContinue if (-not $context -or $context.Scopes -notcontains "Policy.ReadWrite.ConditionalAccess") { Write-Host "Connecting to Microsoft Graph..." -ForegroundColor Gray Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess", "Directory.Read.All", "User.Read.All", "DeviceManagementConfiguration.Read.All", "DeviceManagementManagedDevices.Read.All" -ErrorAction Stop -NoWelcome Write-Host " [OK] Connected to Microsoft Graph" -ForegroundColor Green } else { Write-Host " [OK] Already connected to Microsoft Graph" -ForegroundColor Green } } catch { Write-Host " [FAIL] Failed to connect to Microsoft Graph: $_" -ForegroundColor Red throw } } function Invoke-Monitoring { <# .SYNOPSIS Controleert de configuratie en status van apparaatgebaseerde Conditional Access Policies #> try { Connect-RequiredServices Write-Host "Checking Device-based Conditional Access Policies configuration..." -ForegroundColor Gray # Haal alle Conditional Access Policies op $policies = Get-MgIdentityConditionalAccessPolicy -ErrorAction Stop $result = @{ totalPolicies = 0 enabledPolicies = 0 reportOnlyPolicies = 0 disabledPolicies = 0 deviceCompliancePolicies = 0 hybridJoinedPolicies = 0 unmanagedDevicePolicies = 0 adminDevicePolicies = 0 compliant = $false } if ($policies) { $result.totalPolicies = $policies.Count foreach ($policy in $policies) { # Categoriseer op basis van status switch ($policy.State) { "enabled" { $result.enabledPolicies++ } "enabledForReportingButNotEnforced" { $result.reportOnlyPolicies++ } "disabled" { $result.disabledPolicies++ } } # Analyseer beleidsregels op basis van toegangscontroles $grantControls = $policy.GrantControls # Device compliance policies if ($grantControls -and ($grantControls.BuiltInControls -contains "compliantDevice" -or $grantControls.BuiltInControls -contains "domainJoinedDevice")) { $result.deviceCompliancePolicies++ Write-Host " [OK] Device Compliance Policy: $($policy.DisplayName)" -ForegroundColor Green Write-Host " State: $($policy.State)" -ForegroundColor Cyan if ($grantControls.BuiltInControls -contains "compliantDevice") { Write-Host " Requires: Compliant Device" -ForegroundColor Gray } if ($grantControls.BuiltInControls -contains "domainJoinedDevice") { Write-Host " Requires: Hybrid Azure AD Joined Device" -ForegroundColor Gray } } # Hybrid joined device policies if ($grantControls -and $grantControls.BuiltInControls -contains "domainJoinedDevice") { $result.hybridJoinedPolicies++ Write-Host " [OK] Hybrid Joined Device Policy: $($policy.DisplayName)" -ForegroundColor Green Write-Host " State: $($policy.State)" -ForegroundColor Cyan } # Unmanaged device policies (block or restrict) if ($policy.Conditions -and $policy.Conditions.Devices) { $deviceFilter = $policy.Conditions.Devices if ($deviceFilter -and ($grantControls.BuiltInControls -contains "block" -or $grantControls.BuiltInControls -contains "compliantDevice")) { $result.unmanagedDevicePolicies++ Write-Host " [OK] Unmanaged Device Policy: $($policy.DisplayName)" -ForegroundColor Green Write-Host " State: $($policy.State)" -ForegroundColor Cyan } } # Admin device policies if ($policy.Conditions -and $policy.Conditions.Users -and $policy.Conditions.Users.IncludeRoles -and $policy.Conditions.Users.IncludeRoles.Count -gt 0) { if ($grantControls -and ($grantControls.BuiltInControls -contains "domainJoinedDevice" -or $grantControls.BuiltInControls -contains "compliantDevice")) { $result.adminDevicePolicies++ Write-Host " [OK] Admin Device Policy: $($policy.DisplayName)" -ForegroundColor Green Write-Host " State: $($policy.State)" -ForegroundColor Cyan } } } } # Controleer Intune compliance policies Write-Host "`nChecking Microsoft Intune Device Compliance Policies..." -ForegroundColor Gray try { $compliancePolicies = Get-MgDeviceManagementDeviceCompliancePolicy -ErrorAction SilentlyContinue if ($compliancePolicies) { Write-Host " [OK] Found $($compliancePolicies.Count) Intune Compliance Policies" -ForegroundColor Green foreach ($policy in $compliancePolicies) { Write-Host " - $($policy.DisplayName) (Platform: $($policy.PlatformType))" -ForegroundColor Cyan } } else { Write-Host " [WARNING] No Intune Compliance Policies found" -ForegroundColor Yellow Write-Host " Device-based Conditional Access requires Intune Compliance Policies" -ForegroundColor Gray } } catch { Write-Host " [WARNING] Could not retrieve Intune Compliance Policies: $_" -ForegroundColor Yellow Write-Host " Ensure Microsoft Intune is configured and licensed" -ForegroundColor Gray } Write-Host "`n Summary:" -ForegroundColor Cyan Write-Host " Total Policies: $($result.totalPolicies)" -ForegroundColor White Write-Host " Enabled Policies: $($result.enabledPolicies)" -ForegroundColor White Write-Host " Report-Only Policies: $($result.reportOnlyPolicies)" -ForegroundColor White Write-Host " Disabled Policies: $($result.disabledPolicies)" -ForegroundColor White Write-Host " Device Compliance Policies: $($result.deviceCompliancePolicies)" -ForegroundColor White Write-Host " Hybrid Joined Device Policies: $($result.hybridJoinedPolicies)" -ForegroundColor White Write-Host " Unmanaged Device Policies: $($result.unmanagedDevicePolicies)" -ForegroundColor White Write-Host " Admin Device Policies: $($result.adminDevicePolicies)" -ForegroundColor White # Bepaal compliance status $hasDeviceCompliance = $result.deviceCompliancePolicies -gt 0 $hasHybridJoined = $result.hybridJoinedPolicies -gt 0 $hasUnmanagedDeviceControl = $result.unmanagedDevicePolicies -gt 0 $hasAdminDevicePolicy = $result.adminDevicePolicies -gt 0 if ($hasDeviceCompliance -and $hasHybridJoined -and $hasUnmanagedDeviceControl -and $hasAdminDevicePolicy) { $result.compliant = $true Write-Host "`n [OK] COMPLIANT" -ForegroundColor Green Write-Host " Device-based Conditional Access Policies zijn geconfigureerd voor kritieke beveiligingsscenario's" -ForegroundColor Cyan exit 0 } else { Write-Host "`n [WARNING] PARTIALLY COMPLIANT" -ForegroundColor Yellow Write-Host " Aanbevolen: Configureer Device-based Conditional Access Policies voor alle beveiligingsscenario's" -ForegroundColor Yellow if (-not $hasDeviceCompliance) { Write-Host " - Apparaatcompliance vereisen voor gevoelige applicaties" -ForegroundColor Gray } if (-not $hasHybridJoined) { Write-Host " - Hybride joined apparaten vereisen voor beheerders" -ForegroundColor Gray } if (-not $hasUnmanagedDeviceControl) { Write-Host " - Onbeheerde apparaten blokkeren of beperken" -ForegroundColor Gray } if (-not $hasAdminDevicePolicy) { Write-Host " - Strikte apparaatvereisten voor beheerders" -ForegroundColor Gray } exit 1 } } catch { Write-Host "`n [FAIL] ERROR: $_" -ForegroundColor Red Write-Host " Error Details: $($_.Exception.Message)" -ForegroundColor Red Write-Host "`n Note: Device-based Conditional Access vereist Azure AD Premium P1/P2 en Microsoft Intune licenties" -ForegroundColor Yellow exit 2 } } function Invoke-Remediation { <# .SYNOPSIS Configureert apparaatgebaseerde Conditional Access Policies wanneer deze ontbreken .DESCRIPTION Deze functie biedt richtlijnen voor het handmatig configureren van apparaatgebaseerde Conditional Access Policies via de Microsoft Entra ID-portal en Microsoft Intune, omdat geautomatiseerde configuratie complex is en specifieke zakelijke vereisten vereist. #> try { Connect-RequiredServices Write-Host "Device-based Conditional Access Policies Configuration" -ForegroundColor Gray Write-Host "`n [INFO] Device-based Conditional Access Policies configuratie vereist handmatige stappen" -ForegroundColor Yellow Write-Host " via de Microsoft Entra ID-portal en Microsoft Intune vanwege complexiteit en" -ForegroundColor Gray Write-Host " specifieke zakelijke vereisten." -ForegroundColor Gray Write-Host "`n Configuratiestappen:" -ForegroundColor Cyan Write-Host " 1. Configureer Microsoft Intune Compliance Policies" -ForegroundColor White Write-Host " - Navigeer naar: https://endpoint.microsoft.com" -ForegroundColor Gray Write-Host " - Ga naar: Devices > Compliance policies" -ForegroundColor Gray Write-Host " - Maak compliance policies voor Windows, iOS en Android" -ForegroundColor Gray Write-Host "`n 2. Configureer Conditional Access Policies" -ForegroundColor White Write-Host " - Navigeer naar: https://entra.microsoft.com" -ForegroundColor Gray Write-Host " - Ga naar: Security > Conditional Access" -ForegroundColor Gray Write-Host " - Klik op: Nieuw beleid" -ForegroundColor Gray Write-Host "`n Aanbevolen configuraties:" -ForegroundColor Cyan Write-Host "`n Apparaatcompliance voor gevoelige apps:" -ForegroundColor Yellow Write-Host " - Naam: CA-DEVICE-001 - Apparaatcompliance vereisen voor gevoelige apps" -ForegroundColor Gray Write-Host " - Gebruikers: Alle gebruikers (uitzondering: break-glass accounts)" -ForegroundColor Gray Write-Host " - Cloud-apps: SharePoint Online, Exchange Online, Teams" -ForegroundColor Gray Write-Host " - Toegangscontrole: Apparaat vereisen dat compliant is of hybride Azure AD joined is" -ForegroundColor Gray Write-Host " - Status: Report-only (testen), daarna Enabled" -ForegroundColor Gray Write-Host "`n Hybride joined apparaten voor beheerders:" -ForegroundColor Yellow Write-Host " - Naam: CA-DEVICE-002 - Hybride joined voor beheerders" -ForegroundColor Gray Write-Host " - Gebruikers: Beheerdersrollen (Globale beheerder, etc.)" -ForegroundColor Gray Write-Host " - Cloud-apps: Alle cloud-apps" -ForegroundColor Gray Write-Host " - Toegangscontrole: Apparaat vereisen dat hybride Azure AD joined is" -ForegroundColor Gray Write-Host " - Status: Enabled (geen report-only voor beheerders)" -ForegroundColor Gray Write-Host "`n Onbeheerde apparaten blokkeren:" -ForegroundColor Yellow Write-Host " - Naam: CA-DEVICE-003 - Blokkeer onbeheerde apparaten" -ForegroundColor Gray Write-Host " - Gebruikers: Alle gebruikers (uitzondering: service accounts indien nodig)" -ForegroundColor Gray Write-Host " - Cloud-apps: Alle cloud-apps" -ForegroundColor Gray Write-Host " - Apparaatfilters: Include > Filter for devices > Device state > Unmanaged" -ForegroundColor Gray Write-Host " - Toegangscontrole: Toegang blokkeren" -ForegroundColor Gray Write-Host " - Status: Report-only (testen), daarna Enabled" -ForegroundColor Gray Write-Host "`n Apparaatcompliance voor gevoelige data:" -ForegroundColor Yellow Write-Host " - Naam: CA-DEVICE-004 - Apparaatcompliance voor gevoelige data" -ForegroundColor Gray Write-Host " - Gebruikers: Alle gebruikers" -ForegroundColor Gray Write-Host " - Cloud-apps: Specifieke gevoelige applicaties (HR, Finance, etc.)" -ForegroundColor Gray Write-Host " - Toegangscontrole: Apparaat vereisen dat compliant is" -ForegroundColor Gray Write-Host " - Status: Report-only (testen), daarna Enabled" -ForegroundColor Gray Write-Host "`n Intune Compliance Policy vereisten:" -ForegroundColor Yellow Write-Host " - Windows: BitLocker versleuteling, wachtwoordvereisten, Windows Defender" -ForegroundColor Gray Write-Host " - iOS: Versleuteling, wachtwoordvereisten, jailbreak-detectie, minimale iOS-versie" -ForegroundColor Gray Write-Host " - Android: Versleuteling, wachtwoordvereisten, root-detectie, minimale Android-versie" -ForegroundColor Gray Write-Host "`n [INFO] Na configuratie, voer -Monitoring uit om te verifiëren" -ForegroundColor Cyan Write-Host " [INFO] Test alle beleidsregels eerst in report-only modus" -ForegroundColor Yellow Write-Host " [INFO] Monitor Conditional Access Insights voor impact" -ForegroundColor Yellow Write-Host " [INFO] Zorg dat apparaten zijn geregistreerd in Microsoft Intune" -ForegroundColor Yellow Write-Host " [INFO] Verifieer dat Intune Compliance Policies correct zijn geconfigureerd" -ForegroundColor Yellow exit 0 } catch { Write-Host "`n [FAIL] ERROR: $_" -ForegroundColor Red Write-Host " Error Details: $($_.Exception.Message)" -ForegroundColor Red exit 2 } } function Invoke-Revert { <# .SYNOPSIS Verwijdert apparaatgebaseerde Conditional Access Policies (NIET AANBEVOLEN!) #> try { Write-Host "⚠️ WARNING: Verwijderen van Device-based Conditional Access Policies is een BEVEILIGINGSRISICO!" -ForegroundColor Red Write-Host "Dit verwijdert kritieke apparaatgebaseerde beveiligingscontroles en verhoogt het risico op" -ForegroundColor Red Write-Host "ongewenste toegang vanaf onbeheerde of niet-compliant apparaten en niet-naleving van" -ForegroundColor Red Write-Host "compliance-vereisten`n" -ForegroundColor Red if (-not $WhatIf) { Write-Host "Gebruik -WhatIf om te zien wat zou worden verwijderd" -ForegroundColor Yellow Write-Host "Verwijdering van Device-based Conditional Access Policies moet handmatig via de portal" -ForegroundColor Yellow Write-Host "worden uitgevoerd na zorgvuldige overweging en goedkeuring." -ForegroundColor Yellow } exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } try { if ($Revert) { Invoke-Revert } elseif ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Usage:" -ForegroundColor Yellow Write-Host " -Monitoring Controleer Device-based Conditional Access Policies configuratie" -ForegroundColor Gray Write-Host " -Remediation Toon configuratie-instructies" -ForegroundColor Gray Write-Host " -Revert Waarschuwing voor verwijdering (NIET AANBEVOLEN!)" -ForegroundColor Red Write-Host "`n Voorbeeld:" -ForegroundColor Cyan Write-Host " .\device-based-conditional-access.ps1 -Monitoring" -ForegroundColor White } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
Critical: Kritiek - Zonder apparaatgebaseerde Conditional Access Policies kunnen gebruikers toegang krijgen tot gevoelige resources vanaf onbeheerde apparaten, persoonlijke devices zonder beveiligingscontroles, of endpoints die niet voldoen aan organisatiebeleid. Dit creëert aanzienlijke beveiligingsrisico's en niet-naleving van compliance-vereisten zoals BIO 08.03, ISO 27001 A.8.9 en NIS2 Artikel 21.

Management Samenvatting

Configureer apparaatgebaseerde Conditional Access Policies voor apparaatcompliance vereisen (gevoelige apps), hybride joined apparaten vereisen (beheerders), en onbeheerde apparaten blokkeren. Vereist Azure AD Premium P1/P2 en Microsoft Intune. Implementatietijd: 36 uur.