SharePoint Extern Delen Configuratie Voor Veilige Samenwerking

💼 Management Samenvatting

SharePoint extern delen vormt de kern van moderne samenwerking binnen Microsoft 365, waarbij Nederlandse overheidsorganisaties balanceren tussen de behoefte aan effectieve samenwerking met externe partijen en de verplichting om gevoelige informatie te beschermen. Een goed geconfigureerd extern deelbeleid voor SharePoint en OneDrive stelt organisaties in staat om veilig samen te werken met burgers, ketenpartners, consultants en andere externe partijen, terwijl tegelijkertijd wordt voldaan aan strikte compliance-vereisten uit de AVG, BIO en sectorspecifieke regelgeving.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
64u (tech: 28u)
Van toepassing op:
Microsoft 365
SharePoint Online
OneDrive for Business
Azure AD B2B

Zonder gestructureerd extern deelbeleid voor SharePoint ontstaan er aanzienlijke beveiligings- en compliance-risico's. Organisaties die extern delen volledig openstellen zonder beperkingen lopen het risico dat gevoelige persoonsgegevens, interne documenten of strategische informatie onbedoeld worden gedeeld met onbevoegde externe partijen via publieke links of onbeheerde gastaccounts. Dit kan leiden tot datalekken, schending van de AVG, reputatieschade en mogelijke boetes van toezichthouders zoals de Autoriteit Persoonsgegevens. Aan de andere kant kan volledig blokkeren van extern delen de productiviteit ernstig beperken en moderne samenwerkingsprocessen frustreren, waardoor medewerkers mogelijk naar onveilige alternatieven zoals persoonlijke cloudopslag, onbeveiligde e-mail of USB-sticks uitwijken. Bovendien vereisen veel overheidsprocessen expliciet samenwerking met externe partijen: denk aan burgerparticipatie waarbij burgers toegang krijgen tot projectdocumenten, vergunningverlening waarbij externe adviseurs betrokken zijn, of ketenprocessen waarbij meerdere organisaties samenwerken aan complexe dossiers. Zonder gedifferentieerd extern deelbeleid kunnen organisaties niet voldoen aan deze zakelijke behoeften terwijl ze tegelijkertijd beveiligings- en compliance-vereisten naleven. Daarnaast vereisen nieuwe regelgeving zoals NIS2 dat essentiële en belangrijke entiteiten passende maatregelen nemen om beveiligingsrisico's te beheren, inclusief het beheren van externe toegang tot systemen en netwerken, wat een goed geconfigureerd extern deelbeleid essentieel maakt.

PowerShell Modules Vereist
Primary API: SharePoint Admin Center, Microsoft 365 Admin Center
Connection: PowerShell, Microsoft Graph
Required Modules: Microsoft.Online.SharePoint.PowerShell, Microsoft.Graph

Implementatie

Dit artikel beschrijft hoe Nederlandse overheidsorganisaties een integraal extern deelbeleid kunnen opzetten voor SharePoint Online en OneDrive for Business dat balans biedt tussen samenwerkingsbehoeften en beveiligingsvereisten. We behandelen de governance en beleidskaders voor extern delen, de technische implementatie van tenantbrede en sitespecifieke instellingen, de configuratie van linktypes en toegangsrechten, de koppeling met gevoeligheidslabels en data loss prevention, het beheer van gastgebruikers via Azure AD B2B, monitoring en toegangsbeoordelingen, en de borging van compliance met AVG, BIO en NIS2. Het gekoppelde PowerShell-script helpt organisaties om de configuratie van extern deelinstellingen te controleren, te inventariseren welke externe gebruikers toegang hebben tot welke sites en documenten, en te rapporteren over compliance-status voor auditdoeleinden.

Governance en Beleidskader voor SharePoint Extern Delen

Een effectief extern deelbeleid voor SharePoint begint bij een helder governancekader dat expliciet wordt onderschreven door bestuur en directie. Voor Nederlandse overheidsorganisaties betekent dit dat er een formeel beleidsdocument moet zijn dat vastlegt welke typen externe samenwerking zijn toegestaan via SharePoint, welke informatie mag worden gedeeld met externe partijen, welke linktypes mogen worden gebruikt, welke goedkeuringsprocessen gelden voor het verlenen van externe toegang, en welke beveiligingsmaatregelen minimaal moeten worden toegepast. Dit beleidsdocument moet aansluiten bij bestaande informatiebeveiligings- en privacybeleidsstukken en moet expliciet verwijzen naar de relevante artikelen uit de AVG, BIO-normen en sectorspecifieke regelgeving zoals de Wbni voor vitale aanbieders of NEN 7510 voor zorginstellingen.

Het governancekader moet verschillende niveaus van extern delen definiëren op basis van de gevoeligheid van informatie en het type externe samenwerking. Een laag niveau kan bijvoorbeeld gelden voor publieke informatie zoals nieuwsbrieven, algemene communicatie of openbare documenten, waarbij externe partijen kunnen lezen en downloaden via specifieke uitnodigingen maar geen wijzigingen kunnen aanbrengen en geen publieke links kunnen gebruiken. Een medium niveau kan gelden voor standaard projectteams waarbij externe consultants of ketenpartners betrokken zijn, waarbij externe partijen kunnen samenwerken aan documenten via specifieke uitnodigingen maar geen gevoelige informatie kunnen exporteren, geen publieke links kunnen gebruiken, en beperkte toegang hebben tot site-instellingen. Een hoog niveau kan gelden voor zeer gevoelige processen waarbij extern delen alleen is toegestaan na expliciete goedkeuring van de proceseigenaar en CISO, met aanvullende beveiligingsmaatregelen zoals multi-factor authenticatie, beperkte sessieduur, uitgebreide logging, en blokkering van download- en exportfuncties. Het kader moet ook vastleggen welke typen externe partijen in aanmerking komen voor externe toegang, bijvoorbeeld alleen geregistreerde bedrijven met een verwerkersovereenkomst, alleen partijen binnen specifieke domeinen, of ook individuele burgers voor participatieprocessen.

Een cruciaal onderdeel van governance is de rolverdeling en verantwoordelijkheden. Het beleidsdocument moet expliciet vastleggen wie verantwoordelijk is voor het goedkeuren van externe uitnodigingen, wie verantwoordelijk is voor het periodiek beoordelen van externe toegang, wie verantwoordelijk is voor het monitoren van externe gebruikersactiviteiten, en wie verantwoordelijk is voor het intrekken van toegang wanneer deze niet meer nodig is. In de praktijk zijn dit vaak proceseigenaren of site-eigenaren die externe uitnodigingen initiëren, informatiebeveiliging die goedkeuring geeft voor gevoelige scenario's, en IT-beheer die de technische configuratie beheert. Door deze rollen expliciet vast te leggen voorkomt u dat externe toegang wordt verleend zonder de vereiste goedkeuringen of dat toegang blijft bestaan wanneer deze niet meer nodig is.

Het governancekader moet ook processen bevatten voor uitzonderingen en escalaties. Soms zijn er legitieme redenen om af te wijken van het standaardbeleid, bijvoorbeeld bij crisissituaties waarbij snelle samenwerking met externe experts nodig is, of bij tijdelijke projecten waarbij strikte beveiligingsmaatregelen praktisch niet haalbaar zijn. Het kader moet vastleggen hoe dergelijke uitzonderingen worden aangevraagd, wie deze goedkeurt, hoe lang ze geldig zijn, en hoe ze worden gedocumenteerd voor auditdoeleinden. Daarnaast moet het kader processen bevatten voor het afhandelen van incidenten waarbij externe toegang mogelijk is misbruikt of waarbij gevoelige informatie onbedoeld is gedeeld met externe partijen via publieke links of onbeheerde gastaccounts.

Technische Configuratie van SharePoint Extern Delen

De technische configuratie van extern delen voor SharePoint begint met tenantbrede instellingen via het SharePoint Admin Center. U kunt kiezen tussen verschillende niveaus van extern delen op tenantniveau: geen extern delen, alleen extern delen met mensen die al toegang hebben, extern delen met nieuwe en bestaande gasten, of extern delen met iedereen via anonieme links. Voor Nederlandse overheidsorganisaties is het verstandig om te beginnen met een restrictief niveau zoals 'Alleen mensen die al toegang hebben' of 'Nieuwe en bestaande gasten' en dit geleidelijk uit te breiden op basis van zakelijke behoeften en beveiligingsbeoordelingen. Het niveau 'Iedereen via anonieme links' moet worden vermeden tenzij er een zeer specifieke business case is en aanvullende beveiligingsmaatregelen zijn geïmplementeerd zoals verplichte wachtwoordbeveiliging, vervaldatums en beperkte toegangsrechten.

Naast tenantbrede instellingen kunt u per site verzameling specifieke externe deelinstellingen configureren, waardoor u verschillende niveaus kunt toepassen voor verschillende typen sites zoals publieke communicatiesites versus interne projectteams met gevoelige informatie. Site-eigenaren kunnen via site-instellingen bepalen of extern delen is toegestaan voor hun specifieke site, welke linktypes kunnen worden gebruikt, en welke toegangsrechten externe gebruikers krijgen. Deze sitespecifieke instellingen kunnen niet permissiever zijn dan de tenantbrede instellingen, wat betekent dat als tenantbreed extern delen is uitgeschakeld, individuele sites ook geen extern delen kunnen inschakelen. Dit zorgt ervoor dat organisaties centrale controle behouden over extern delen terwijl ze flexibiliteit bieden aan site-eigenaren binnen de grenzen van het tenantbrede beleid.

Een belangrijk aspect van de technische configuratie is de keuze van linktypes en toegangsrechten. SharePoint ondersteunt verschillende linktypes: links voor specifieke personen waarbij alleen uitgenodigde personen toegang hebben, links voor personen in uw organisatie waarbij alle interne gebruikers toegang hebben, en links voor iedereen waarbij iedereen met de link toegang heeft zonder authenticatie. Voor Nederlandse overheidsorganisaties is het verstandig om standaard 'Specifieke personen' te gebruiken omdat dit de meeste controle biedt en ervoor zorgt dat alleen uitgenodigde externe partijen toegang hebben. Links voor 'Iedereen' moeten worden vermeden tenzij er een zeer specifieke business case is, omdat deze links kunnen worden gedeeld of gelekt zonder controle. Daarnaast kunnen linktypes worden geconfigureerd met vervaldatums, wachtwoordbeveiliging en beperkte toegangsrechten zoals alleen-lezen of bewerken, wat extra beveiligingslagen biedt.

Azure AD B2B vormt de basis voor identiteitsbeheer van externe gebruikers die toegang krijgen tot SharePoint-sites. Via Azure AD kunt u configureren welke externe domeinen zijn toegestaan voor B2B-collaboratie, of externe gebruikers multi-factor authenticatie moeten gebruiken, of externe gebruikers beperkte toegang hebben tot directory-informatie, en hoe lang uitnodigingen geldig blijven voordat ze verlopen. U kunt ook conditional access-beleidsregels toepassen op gastgebruikers, bijvoorbeeld om te vereisen dat ze alleen toegang hebben vanaf vertrouwde netwerken of apparaten, of om te blokkeren dat ze toegang hebben vanaf bepaalde geografische locaties. Deze technische controles zijn essentieel voor het afdwingen van het governancekader en het waarborgen van compliance met beveiligings- en privacyvereisten.

Gebruik PowerShell-script sharepoint-external-sharing.ps1 (functie Invoke-Monitoring) – Het PowerShell-script controleert de configuratie van extern deelinstellingen voor SharePoint en OneDrive, inventariseert externe gebruikers en hun toegangsniveaus, en rapporteert over compliance-status voor auditdoeleinden..

Koppeling met Gevoeligheidslabels en Data Loss Prevention

Een belangrijk aspect van de technische implementatie is de koppeling met gevoeligheidslabels en data loss prevention. Microsoft 365 ondersteunt gevoeligheidslabels die kunnen worden toegepast op documenten, sites en bibliotheken, en die kunnen worden geconfigureerd om extern delen te blokkeren of te beperken. Door gevoeligheidslabels te koppelen aan extern deelbeleid kunt u ervoor zorgen dat documenten met het label 'Vertrouwelijk' of 'Intern' niet kunnen worden gedeeld met externe partijen, zelfs wanneer extern delen is ingeschakeld op tenant- of siteniveau. Deze labels kunnen ook worden geconfigureerd om specifieke acties te blokkeren zoals downloaden, printen of exporteren, wat extra beveiligingslagen biedt voor gevoelige informatie.

Data loss prevention-beleidsregels kunnen aanvullende controles bieden door te detecteren wanneer gebruikers proberen gevoelige informatie te delen met externe partijen en deze acties te blokkeren of te waarschuwen. Deze policies kunnen worden geconfigureerd voor verschillende gevoelige gegevenstypen zoals burgerservicenummers (BSN), creditcardnummers, IBAN-nummers en documenten met confidential labels. De policies moeten automatisch detecteren wanneer gebruikers proberen deze gevoelige gegevens extern te delen via SharePoint of OneDrive en moeten deze acties blokkeren met duidelijke meldingen aan gebruikers waarom het delen is geblokkeerd. Deze technische maatregelen vormen een belangrijke verdedigingslinie, maar moeten worden aangevuld met training en bewustwording omdat gebruikers altijd manieren kunnen vinden om beveiligingsmaatregelen te omzeilen als ze niet begrijpen waarom deze belangrijk zijn.

Voor organisaties met zeer gevoelige informatie kunnen gevoeligheidslabels ook worden gebruikt om sites te isoleren van extern delen. Sites met het label 'Geheim' of 'Zeer Vertrouwelijk' kunnen worden geconfigureerd om volledig te blokkeren dat externe gebruikers toegang krijgen, zelfs wanneer extern delen is ingeschakeld op tenantniveau. Deze sitespecifieke configuraties zorgen ervoor dat organisaties verschillende beveiligingsniveaus kunnen toepassen voor verschillende typen informatie, wat essentieel is voor compliance met informatieclassificatiebeleid en sectorspecifieke regelgeving.

Beheer van Externe Toegang en Toegangsbeoordelingen

Effectief beheer van externe toegang tot SharePoint vereist een gestructureerd proces voor het verlenen, beoordelen en intrekken van toegang. Het proces begint met een aanvraag van een medewerker of site-eigenaar die externe samenwerking nodig heeft. Deze aanvraag moet minimaal bevatten: de naam en organisatie van de externe partij, het doel van de samenwerking, welke sites of documenten toegankelijk moeten zijn, de verwachte duur van de samenwerking, en de beoogde gevoeligheidsclassificatie. De aanvraag wordt vervolgens beoordeeld door de site-eigenaar en informatiebeveiliging, die bepalen of de samenwerking is toegestaan volgens het beleidskader, welke toegangsniveaus nodig zijn, en welke aanvullende beveiligingsmaatregelen moeten worden toegepast. Na goedkeuring wordt de externe gebruiker uitgenodigd via Azure AD B2B, krijgt toegang tot de relevante SharePoint-sites of OneDrive-locaties, en wordt geïnformeerd over de geldende beveiligings- en privacyvereisten.

Periodieke toegangsbeoordelingen zijn essentieel om te verifiëren dat externe toegang nog steeds nodig is en dat externe gebruikers alleen toegang hebben tot informatie die relevant is voor hun rol. Microsoft 365 biedt ingebouwde functionaliteit voor toegangsbeoordelingen via Azure AD Access Reviews, waarbij site-eigenaren of proceseigenaren periodiek worden gevraagd om te bevestigen dat externe gebruikers nog steeds toegang nodig hebben. Deze beoordelingen kunnen worden geautomatiseerd zodat ze automatisch worden gestart op basis van een schema, bijvoorbeeld elk kwartaal of halfjaar, en kunnen worden geconfigureerd om automatisch toegang in te trekken wanneer deze niet wordt bevestigd binnen een bepaalde termijn. Voor gevoelige scenario's kunnen beoordelingen ook worden uitgevoerd door informatiebeveiliging of compliance, die een onafhankelijke beoordeling uitvoeren op basis van activiteitslogboeken en toegangsinventarisaties.

Wanneer externe toegang niet meer nodig is, moet deze onmiddellijk worden ingetrokken. Dit kan gebeuren wanneer een project is afgerond, wanneer een externe partij niet meer betrokken is bij een proces, of wanneer er een beveiligingsincident is waarbij de externe toegang mogelijk is gecompromitteerd. Het intrekkingsproces moet alle toegang verwijderen: de Azure AD B2B-account moet worden verwijderd of gedeactiveerd, toegang tot SharePoint-sites moet worden ingetrokken, gedeelde links moeten worden ingetrokken of ongeldig worden gemaakt, en gedeelde documenten moeten worden verwijderd of de toegang moet worden ingetrokken. Het is belangrijk om dit proces te documenteren en te verifiëren dat alle toegang daadwerkelijk is ingetrokken, omdat externe gebruikers mogelijk nog toegang hebben via gecachte sessies of gedeelde links die niet direct worden verwijderd wanneer het account wordt gedeactiveerd.

Voor complexe scenario's waarbij meerdere externe partijen betrokken zijn bij een langdurig project, kan het handig zijn om een centraal register bij te houden van alle externe toegang, inclusief de externe partij, het doel van de samenwerking, de toegangsniveaus, de geldigheidsduur, en de verantwoordelijke site-eigenaar. Dit register kan worden bijgehouden in een SharePoint-lijst, een Excel-bestand, of een gespecialiseerde toegangsbeheeroplossing, en moet regelmatig worden bijgewerkt wanneer nieuwe toegang wordt verleend of bestaande toegang wordt ingetrokken. Het register vormt een belangrijk auditbewijs en helpt organisaties om overzicht te houden over alle externe toegang, wat essentieel is voor compliance-rapportage en risicobeheer.

Monitoring, Logging en Compliance

Continue monitoring van externe toegang tot SharePoint is essentieel om te detecteren wanneer externe gebruikers onbevoegde acties uitvoeren, wanneer gevoelige informatie onbedoeld wordt gedeeld, of wanneer externe toegang wordt verleend zonder de vereiste goedkeuringen. Microsoft 365 biedt uitgebreide logging via de unified audit log, die alle activiteiten van externe gebruikers vastlegt, inclusief het openen van documenten, het delen van bestanden, het downloaden van content, het wijzigen van toegangsrechten, en het gebruik van gedeelde links. Deze logboeken kunnen worden doorzocht via de Microsoft 365 compliance center of via PowerShell, en kunnen worden geëxporteerd naar een SIEM-oplossing zoals Microsoft Sentinel voor geavanceerde analyse en detectie van verdachte patronen.

Het monitoringproces moet regelmatig controleren of extern deelinstellingen niet zijn gewijzigd zonder de vereiste goedkeuringen, of er nieuwe externe gebruikers zijn toegevoegd, of bestaande externe gebruikers nog actief zijn, en of er ongebruikelijke activiteiten zijn die kunnen wijzen op misbruik of beveiligingsincidenten. Het PowerShell-script kan worden gebruikt om deze controles te automatiseren en om rapporten te genereren voor compliance-rapportage. Daarnaast moeten site-eigenaren regelmatig worden geïnformeerd over de externe gebruikers die toegang hebben tot hun sites, zodat zij kunnen bevestigen dat deze toegang nog steeds nodig is en dat er geen onbevoegde toegang is verleend.

Voor compliance met de AVG is het belangrijk om te kunnen aantonen wie toegang heeft gehad tot persoonsgegevens, wanneer deze toegang is verleend, en welke maatregelen zijn genomen om deze gegevens te beschermen. Extern deelbeleid moet daarom worden gedocumenteerd in het verwerkingsregister, waarbij wordt vastgelegd welke externe partijen toegang hebben tot welke persoonsgegevens, op welke rechtsgrond deze toegang is gebaseerd, en welke beveiligingsmaatregelen zijn toegepast. Wanneer externe partijen als verwerker optreden, moet ook een verwerkersovereenkomst worden afgesloten die expliciet beschrijft hoe persoonsgegevens worden beschermd en hoe wordt voldaan aan AVG-vereisten. Auditlogboeken moeten worden bewaard voor de vereiste bewaartermijn, meestal minimaal zeven jaar voor overheidsorganisaties, en moeten beschikbaar zijn voor toezichthouders zoals de Autoriteit Persoonsgegevens wanneer deze daarom vragen.

Voor BIO-naleving zijn extern deelbeleidsregels relevant voor verschillende normen, waaronder BIO 9.01 die eist dat toegangsrechten worden beheerd en dat onbevoegde toegang wordt voorkomen, BIO 13.02 die eist dat externe toegang wordt gecontroleerd en gelogd, en BIO 12.01 die eist dat informatie wordt geclassificeerd en dat passende beveiligingsmaatregelen worden toegepast op basis van de classificatie. Het extern deelbeleid moet daarom expliciet aansluiten bij de informatieclassificatie en moet ervoor zorgen dat alleen informatie met het juiste classificatieniveau wordt gedeeld met externe partijen. Voor NIS2-vereisten moeten essentiële en belangrijke entiteiten kunnen aantonen dat zij passende maatregelen hebben genomen om beveiligingsrisico's te beheren, inclusief het beheren van externe toegang tot systemen en netwerken. Extern deelbeleidsregels vormen een concrete manier om deze vereisten in te vullen door granulaire controle te bieden over externe toegang en door uitgebreide logging en monitoring te bieden.

Gebruik PowerShell-script sharepoint-external-sharing.ps1 (functie Invoke-ComplianceReport) – Genereert een compliance-rapport met overzicht van extern deelconfiguratie, externe gebruikers, toegangsniveaus en compliance-status voor auditdoeleinden..

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
<# .SYNOPSIS SharePoint Extern Delen Configuratie voor Veilige Samenwerking .DESCRIPTION Controleert en rapporteert over extern deelconfiguratie voor SharePoint Online en OneDrive for Business. Helpt Nederlandse overheidsorganisaties bij het aantoonbaar maken van compliance met AVG, BIO en NIS2-vereisten voor externe toegang en samenwerking via SharePoint. .NOTES Filename: sharepoint-external-sharing.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Created: 2025-01-27 Last Modified: 2025-01-27 Related JSON: content/m365/collaboration/sharepoint-external-sharing.json Requires: Microsoft 365-licenties, Azure AD B2B Modules: Microsoft.Online.SharePoint.PowerShell, Microsoft.Graph .EXAMPLE .\sharepoint-external-sharing.ps1 -Monitoring Controleert extern deelconfiguratie voor SharePoint en OneDrive .EXAMPLE .\sharepoint-external-sharing.ps1 -ComplianceReport -OutputPath .\compliance-rapport.txt Genereert een compliance-rapport met overzicht van extern delen en externe gebruikers #> #Requires -Version 5.1 [CmdletBinding()] param( [Parameter(Mandatory = $false, HelpMessage = "Voer monitoring uit van extern deelconfiguratie")] [switch]$Monitoring, [Parameter(Mandatory = $false, HelpMessage = "Genereer een compliance-rapport")] [switch]$ComplianceReport, [Parameter(Mandatory = $false, HelpMessage = "Pad naar het rapportbestand (alleen bij -ComplianceReport)")] [string]$OutputPath, [Parameter(Mandatory = $false, HelpMessage = "Voer een veilige lokale test uit met voorbeelddata")] [switch]$DebugMode ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "SharePoint Extern Delen Configuratie" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met vereiste Microsoft 365-services #> try { if ($DebugMode) { Write-Host "DebugMode: Services worden niet daadwerkelijk verbonden" -ForegroundColor Yellow return $true } Write-Host "Verbinden met Microsoft 365-services..." -ForegroundColor Gray # Controleer en verbind met SharePoint Online if (Get-Module -ListAvailable -Name Microsoft.Online.SharePoint.PowerShell) { try { $spoSession = Get-PSSession | Where-Object { $_.ComputerName -like "*sharepoint*" -and $_.State -eq "Opened" } if (-not $spoSession) { Write-Host " Verbinden met SharePoint Online..." -ForegroundColor Gray # In productie: Connect-SPOService -Url https://[tenant]-admin.sharepoint.com Write-Host " SharePoint verbinding (gesimuleerd)" -ForegroundColor Green } else { Write-Host " Bestaande SharePoint sessie gevonden" -ForegroundColor Green } } catch { Write-Host " Waarschuwing: SharePoint verbinding niet beschikbaar (optioneel)" -ForegroundColor Yellow } } else { Write-Host " Waarschuwing: Microsoft.Online.SharePoint.PowerShell module niet geïnstalleerd" -ForegroundColor Yellow } # Controleer en verbind met Microsoft Graph if (Get-Module -ListAvailable -Name Microsoft.Graph) { try { $graphContext = Get-MgContext -ErrorAction SilentlyContinue if (-not $graphContext) { Write-Host " Verbinden met Microsoft Graph..." -ForegroundColor Gray # In productie: Connect-MgGraph -Scopes "Directory.Read.All", "User.Read.All", "Group.Read.All" Write-Host " Graph verbinding (gesimuleerd)" -ForegroundColor Green } else { Write-Host " Bestaande Graph sessie gevonden" -ForegroundColor Green } } catch { Write-Host " Waarschuwing: Microsoft Graph verbinding niet beschikbaar (optioneel)" -ForegroundColor Yellow } } else { Write-Host " Waarschuwing: Microsoft.Graph module niet geïnstalleerd (optioneel)" -ForegroundColor Yellow } return $true } catch { Write-Host " FOUT: Kan geen verbinding maken met vereiste services" -ForegroundColor Red Write-Host " Controleer of de vereiste modules zijn geïnstalleerd" -ForegroundColor Yellow throw "Verbinding mislukt: $_" } } function Get-SharePointExternalSharingConfiguration { <# .SYNOPSIS Haalt extern deelconfiguratie op voor SharePoint en OneDrive .OUTPUTS PSCustomObject met configuratie-informatie #> try { if ($DebugMode) { Write-Host "DebugMode: Retourneert voorbeeldconfiguratie" -ForegroundColor Yellow return [PSCustomObject]@{ SharePointExternalSharingEnabled = $true SharePointSharingLevel = "ExistingExternalUserSharingOnly" OneDriveExternalSharingEnabled = $true OneDriveSharingLevel = "ExistingExternalUserSharingOnly" AnonymousLinkSharingEnabled = $false DefaultLinkType = "SpecificPeople" DefaultLinkPermission = "View" LinkExpirationDays = 30 RequireGuestSignIn = $true GuestUserCount = 12 SitesWithExternalSharing = 15 SitesWithAnonymousLinks = 2 IsCompliant = $false Status = "Gedeeltelijk geconfigureerd" } } Write-Host "Ophalen van extern deelconfiguratie..." -ForegroundColor Gray # In productie zouden hier echte cmdlets worden gebruikt: # $spoTenant = Get-SPOTenant # $guestUsers = Get-MgUser -Filter "userType eq 'Guest'" # $sites = Get-SPOSite -Limit All # Voor nu retourneren we een structuur die aangeeft wat gecontroleerd moet worden $config = [PSCustomObject]@{ SharePointExternalSharingEnabled = $null SharePointSharingLevel = $null OneDriveExternalSharingEnabled = $null OneDriveSharingLevel = $null AnonymousLinkSharingEnabled = $null DefaultLinkType = $null DefaultLinkPermission = $null LinkExpirationDays = $null RequireGuestSignIn = $null GuestUserCount = 0 SitesWithExternalSharing = 0 SitesWithAnonymousLinks = 0 IsCompliant = $false Status = "Configuratie moet worden gecontroleerd" } Write-Host " Opmerking: In productie worden hier echte configuraties opgehaald" -ForegroundColor Yellow Write-Host " Installeer vereiste modules en verbind met services voor volledige functionaliteit" -ForegroundColor Yellow return $config } catch { Write-Host " FOUT bij ophalen configuratie: $_" -ForegroundColor Red return [PSCustomObject]@{ IsCompliant = $false Status = "Fout bij ophalen configuratie" Error = $_.Exception.Message } } } function Invoke-Monitoring { <# .SYNOPSIS Voert monitoring uit van extern deelconfiguratie #> try { Connect-RequiredServices $config = Get-SharePointExternalSharingConfiguration Write-Host "`n Extern Deelconfiguratie Status:" -ForegroundColor Cyan Write-Host " Status: $($config.Status)" -ForegroundColor $( if ($config.IsCompliant) { "Green" } else { "Yellow" } ) if ($config.SharePointExternalSharingEnabled -ne $null) { Write-Host "`n SharePoint Online:" -ForegroundColor Cyan Write-Host " Extern delen ingeschakeld: $($config.SharePointExternalSharingEnabled)" -ForegroundColor White Write-Host " Deelniveau: $($config.SharePointSharingLevel)" -ForegroundColor White Write-Host " Sites met extern delen: $($config.SitesWithExternalSharing)" -ForegroundColor White Write-Host " Sites met anonieme links: $($config.SitesWithAnonymousLinks)" -ForegroundColor White } if ($config.OneDriveExternalSharingEnabled -ne $null) { Write-Host "`n OneDrive for Business:" -ForegroundColor Cyan Write-Host " Extern delen ingeschakeld: $($config.OneDriveExternalSharingEnabled)" -ForegroundColor White Write-Host " Deelniveau: $($config.OneDriveSharingLevel)" -ForegroundColor White } if ($config.DefaultLinkType -ne $null) { Write-Host "`n Linkconfiguratie:" -ForegroundColor Cyan Write-Host " Standaard linktype: $($config.DefaultLinkType)" -ForegroundColor White Write-Host " Standaard linkpermissie: $($config.DefaultLinkPermission)" -ForegroundColor White Write-Host " Linkvervaltermijn: $($config.LinkExpirationDays) dagen" -ForegroundColor White Write-Host " Anonieme links toegestaan: $($config.AnonymousLinkSharingEnabled)" -ForegroundColor White Write-Host " Gastauthenticatie vereist: $($config.RequireGuestSignIn)" -ForegroundColor White } if ($config.GuestUserCount -gt 0) { Write-Host "`n Externe Gebruikers:" -ForegroundColor Cyan Write-Host " Aantal gastgebruikers: $($config.GuestUserCount)" -ForegroundColor White } Write-Host "`n Compliance-vereisten:" -ForegroundColor Cyan Write-Host " • AVG Artikel 32: Passende technische maatregelen" -ForegroundColor Gray Write-Host " • AVG Artikel 30: Verwerkingsregister en logging" -ForegroundColor Gray Write-Host " • BIO 9.01: Toegangsrechtenbeheer" -ForegroundColor Gray Write-Host " • BIO 13.02: Externe toegang controleren en loggen" -ForegroundColor Gray Write-Host " • NIS2 Artikel 21: Beveiligingsmaatregelen externe toegang" -ForegroundColor Gray if ($config.GuestUserCount -gt 0) { Write-Host "`n Aanbevelingen:" -ForegroundColor Cyan Write-Host " • Voer periodieke toegangsbeoordelingen uit voor alle gastgebruikers" -ForegroundColor Yellow Write-Host " • Controleer of gevoeligheidslabels correct zijn toegepast" -ForegroundColor Yellow Write-Host " • Verifieer dat DLP-beleidsregels actief zijn" -ForegroundColor Yellow Write-Host " • Documenteer extern delen in verwerkingsregister (AVG)" -ForegroundColor Yellow Write-Host " • Beperk gebruik van anonieme links tot minimaal" -ForegroundColor Yellow if ($config.AnonymousLinkSharingEnabled) { Write-Host " • WAARSCHUWING: Anonieme links zijn ingeschakeld - overweeg deze uit te schakelen" -ForegroundColor Red } } if ($config.IsCompliant) { Write-Host "`n[OK] COMPLIANT - Extern deelconfiguratie is correct" -ForegroundColor Green exit 0 } else { Write-Host "`n[WARNING] AANDACHT VEREIST - Controleer extern deelconfiguratie" -ForegroundColor Yellow Write-Host " Zorg ervoor dat:" -ForegroundColor Yellow Write-Host " • Extern delen is geconfigureerd volgens goedgekeurd beleidskader" -ForegroundColor Yellow Write-Host " • Deelniveaus zijn afgestemd op informatieclassificatie" -ForegroundColor Yellow Write-Host " • Anonieme links zijn uitgeschakeld of sterk beperkt" -ForegroundColor Yellow Write-Host " • Monitoring en logging zijn ingeschakeld" -ForegroundColor Yellow exit 0 } } catch { Write-Host "`n[FAIL] FOUT: $_" -ForegroundColor Red exit 2 } } function Invoke-ComplianceReport { <# .SYNOPSIS Genereert een compliance-rapport met overzicht van extern delen .PARAMETER OutputPath Pad naar het rapportbestand #> try { if ([string]::IsNullOrWhiteSpace($OutputPath)) { throw "Parameter -OutputPath is verplicht bij gebruik van -ComplianceReport." } Connect-RequiredServices $config = Get-SharePointExternalSharingConfiguration $folder = Split-Path -Path $OutputPath -Parent if (-not [string]::IsNullOrWhiteSpace($folder) -and -not (Test-Path -Path $folder)) { New-Item -Path $folder -ItemType Directory -Force | Out-Null } $lines = @() $lines += "SharePoint Extern Delen - Compliance Rapport" $lines += "Nederlandse Baseline voor Veilige Cloud" $lines += ("Datum: {0}" -f (Get-Date -Format "yyyy-MM-dd HH:mm")) $lines += "" $lines += "1. Samenvatting" $lines += (" Status: {0}" -f $config.Status) $lines += (" SharePoint extern delen: {0}" -f $config.SharePointExternalSharingEnabled) $lines += (" SharePoint deelniveau: {0}" -f $config.SharePointSharingLevel) $lines += (" OneDrive extern delen: {0}" -f $config.OneDriveExternalSharingEnabled) $lines += (" OneDrive deelniveau: {0}" -f $config.OneDriveSharingLevel) $lines += (" Anonieme links: {0}" -f $config.AnonymousLinkSharingEnabled) $lines += (" Standaard linktype: {0}" -f $config.DefaultLinkType) $lines += (" Aantal gastgebruikers: {0}" -f $config.GuestUserCount) $lines += (" Sites met extern delen: {0}" -f $config.SitesWithExternalSharing) $lines += (" Sites met anonieme links: {0}" -f $config.SitesWithAnonymousLinks) $lines += "" $lines += "2. Compliance-vereisten" $lines += " AVG Artikel 32: Passende technische en organisatorische maatregelen" $lines += " AVG Artikel 30: Verwerkingsregister en logging van toegang" $lines += " BIO 9.01: Toegangsrechtenbeheer en preventie onbevoegde toegang" $lines += " BIO 13.02: Externe toegang controleren en loggen" $lines += " NIS2 Artikel 21: Beveiligingsmaatregelen voor externe toegang" $lines += "" $lines += "3. Aanbevelingen" $lines += " • Zorg voor periodieke toegangsbeoordelingen voor alle gastgebruikers" $lines += " • Controleer of gevoeligheidslabels correct zijn toegepast" $lines += " • Verifieer dat DLP-beleidsregels actief zijn" $lines += " • Documenteer extern delen in verwerkingsregister (AVG)" $lines += " • Houd een register bij van externe gebruikers en toegangsniveaus" $lines += " • Beperk gebruik van anonieme links tot minimaal" if ($config.AnonymousLinkSharingEnabled) { $lines += " • WAARSCHUWING: Anonieme links zijn ingeschakeld - overweeg deze uit te schakelen" } $lines += "" $lines += "4. Opmerking" $lines += " Dit rapport geeft een indicatie van de configuratiestatus." $lines += " Voor volledige functionaliteit, installeer vereiste modules en" $lines += " verbind met Microsoft 365-services." $lines | Out-File -FilePath $OutputPath -Encoding UTF8 -Force Write-Host "Compliance-rapport aangemaakt: $OutputPath" -ForegroundColor Green } catch { Write-Host "`n[FAIL] FOUT bij genereren rapport: $_" -ForegroundColor Red exit 2 } } # Main execution try { if ($Monitoring) { Invoke-Monitoring } elseif ($ComplianceReport) { Invoke-ComplianceReport } else { Write-Host "Gebruik:" -ForegroundColor Yellow Write-Host " -Monitoring Controleer extern deelconfiguratie" -ForegroundColor Gray Write-Host " -ComplianceReport Genereer compliance-rapport (vereist -OutputPath)" -ForegroundColor Gray Write-Host " -DebugMode Gebruik voorbeelddata voor lokale test" -ForegroundColor Gray Write-Host "`nVoor meer informatie, zie:" -ForegroundColor Gray Write-Host " content/m365/collaboration/sharepoint-external-sharing.json" -ForegroundColor Gray } } catch { Write-Host "`n[FAIL] Onverwachte fout: $_" -ForegroundColor Red exit 2 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder gestructureerd extern deelbeleid voor SharePoint kunnen organisaties niet voldoen aan AVG-, BIO- en NIS2-vereisten voor het beheren van externe toegang. Dit vergroot de kans op datalekken, onbevoegde toegang tot gevoelige informatie, compliance-schendingen en reputatieschade. Bovendien kunnen organisaties niet effectief balanceren tussen externe samenwerkingsbehoeften en beveiligingsvereisten.

Management Samenvatting

Richt een integraal extern deelbeleid in voor SharePoint Online en OneDrive for Business met een helder governancekader, gedifferentieerde toegangsniveaus op basis van gevoeligheid, koppeling met gevoeligheidslabels en DLP, periodieke toegangsbeoordelingen en uitgebreide monitoring. Zorg voor borging van compliance met AVG, BIO en NIS2 door uitgebreide logging en documentatie.