Hybrid Identity Federation: Federatieve Authenticatie Tussen On-Premises En Cloud

💼 Management Samenvatting

Hybrid identity federation vormt een geavanceerde authenticatiestrategie waarbij organisaties gebruik maken van federatieve protocollen zoals SAML en WS-Federation om naadloze single sign-on te bieden tussen on-premises Active Directory omgevingen en cloudservices, zonder dat wachtwoorden of wachtwoordhashes worden gesynchroniseerd naar de cloud. Voor Nederlandse overheidsorganisaties die werken met zeer gevoelige gegevens en strikte compliance-vereisten, biedt federatieve authenticatie de hoogste mate van controle over authenticatieprocessen en de mogelijkheid om geavanceerde authenticatiemethoden zoals smartcards, hardware-tokens en biometrische authenticatie te gebruiken die niet direct beschikbaar zijn in cloud-only omgevingen.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
8/10
Implementatie
60u (tech: 40u)
Van toepassing op:
Azure AD
Entra ID
Active Directory Federation Services
On-Premises Active Directory
SAML
WS-Federation

Traditionele wachtwoordhashsynchronisatie en pass-through authenticatie methoden vereisen dat wachtwoorden of wachtwoordhashes worden opgeslagen of gevalideerd in de cloudomgeving, wat beveiligingsrisico's kan opleveren wanneer cloudservices worden gecompromitteerd of wanneer organisaties strikte eisen hebben over waar wachtwoorden mogen worden opgeslagen. Bovendien bieden deze methoden beperkte mogelijkheden voor het gebruik van geavanceerde authenticatiemethoden zoals smartcards, hardware-tokens of biometrische authenticatie die vaak worden gebruikt in hoogbeveiligde omgevingen zoals die van Nederlandse overheidsorganisaties. Federatieve authenticatie lost deze problemen op door organisaties in staat te stellen om authenticatie volledig te beheren binnen de on-premises omgeving, waarbij cloudservices vertrouwen op tokens die worden uitgegeven door de on-premises identiteitsprovider. Deze aanpak biedt organisaties volledige controle over authenticatieprocessen, maakt het mogelijk om geavanceerde authenticatiemethoden te gebruiken, en elimineert de noodzaak om wachtwoorden of wachtwoordhashes te synchroniseren naar de cloud, wat de beveiligingspostuur aanzienlijk verbetert en compliance-risico's vermindert.

PowerShell Modules Vereist
Primary API: Microsoft Graph API, AD FS Management
Connection: Connect-MgGraph, Connect-AdfsServer
Required Modules: Microsoft.Graph.Identity.DirectoryManagement, Microsoft.Graph.Identity.SignIns, AdfsAdministration

Implementatie

Deze controle beschrijft de implementatie en configuratie van een volledig geconfigureerde hybrid identity federation oplossing waarbij Active Directory Federation Services (AD FS) of een andere SAML-compatibele identiteitsprovider wordt gebruikt voor federatieve authenticatie tussen on-premises Active Directory en Azure Active Directory. De configuratie omvat het opzetten van een AD FS farm met hoge beschikbaarheid, het configureren van vertrouwensrelaties tussen de on-premises identiteitsprovider en Azure AD, het implementeren van geavanceerde authenticatiemethoden zoals smartcards en hardware-tokens, het configureren van claims rules voor het doorgeven van gebruikersattributen, het implementeren van monitoring en logging voor alle federatieve authenticatieactiviteiten, en het waarborgen dat de federatie-infrastructuur adequaat is beveiligd tegen aanvallen. De oplossing biedt naadloze single sign-on voor gebruikers terwijl alle authenticatie volledig wordt beheerd binnen de on-premises omgeving, wat de beveiligingspostuur aanzienlijk verbetert en compliance-vereisten ondersteunt.

Federatieve Authenticatie en Identity Federation

Federatieve authenticatie vormt een geavanceerde benadering van identiteitsbeheer waarbij organisaties gebruik maken van gestandaardiseerde protocollen zoals Security Assertion Markup Language (SAML) en WS-Federation om authenticatie te delegeren aan een vertrouwde identiteitsprovider, terwijl applicaties en services vertrouwen op tokens die door deze provider worden uitgegeven. In een hybrid identity federation scenario fungeert de on-premises Active Directory omgeving als de identiteitsprovider die verantwoordelijk is voor het authenticeren van gebruikers en het uitgeven van beveiligingstokens, terwijl cloudservices zoals Azure Active Directory en Microsoft 365 fungeren als relying parties die deze tokens accepteren en valideren om gebruikers toegang te verlenen. Deze architectuur elimineert de noodzaak om wachtwoorden of wachtwoordhashes te synchroniseren naar de cloud, omdat alle authenticatie plaatsvindt binnen de on-premises omgeving, wat de beveiligingspostuur aanzienlijk verbetert en compliance-risico's vermindert.

Active Directory Federation Services (AD FS) is de primaire Microsoft technologie die wordt gebruikt voor het implementeren van federatieve authenticatie in hybride omgevingen. AD FS fungeert als een volledig functionele Security Token Service (STS) die gebruikers kan authenticeren tegen on-premises Active Directory en die beveiligingstokens kan uitgeven die worden geaccepteerd door cloudservices. Wanneer een gebruiker toegang probeert te krijgen tot een cloudservice, wordt de gebruiker doorgestuurd naar de AD FS server voor authenticatie. Na succesvolle authenticatie geeft AD FS een beveiligingstoken uit dat claims bevat over de identiteit van de gebruiker, zoals de gebruikersnaam, e-mailadres, groepen en andere attributen. Dit token wordt vervolgens teruggestuurd naar de cloudservice, die het token valideert en de gebruiker toegang verleent op basis van de claims in het token. Dit proces is volledig transparant voor de gebruiker, die slechts één keer hoeft in te loggen bij de on-premises omgeving om toegang te krijgen tot alle geautoriseerde cloudservices.

De voordelen van federatieve authenticatie zijn talrijk en omvatten verbeterde beveiliging door het elimineren van de noodzaak om wachtwoorden of wachtwoordhashes te synchroniseren naar de cloud, volledige controle over authenticatieprocessen binnen de on-premises omgeving, de mogelijkheid om geavanceerde authenticatiemethoden te gebruiken zoals smartcards, hardware-tokens en biometrische authenticatie, en verbeterde compliance door het kunnen voldoen aan strikte eisen over waar wachtwoorden mogen worden opgeslagen. Bovendien biedt federatieve authenticatie naadloze single sign-on voor gebruikers, waardoor zij slechts één keer hoeven in te loggen om toegang te krijgen tot zowel on-premises als cloudservices. Deze voordelen maken federatieve authenticatie bijzonder geschikt voor Nederlandse overheidsorganisaties die werken met zeer gevoelige gegevens en die strikte compliance-vereisten hebben die kunnen vereisen dat wachtwoorden niet buiten de organisatie mogen worden opgeslagen of gesynchroniseerd.

De implementatie van federatieve authenticatie vereist echter ook aanzienlijke technische expertise en infrastructuur, omdat organisaties moeten beschikken over een robuuste en hoog beschikbare AD FS farm, uitgebreide monitoring en logging voor alle federatieve authenticatieactiviteiten, en processen voor het beheren van certificaten, token signing keys en vertrouwensrelaties. Bovendien vereist federatieve authenticatie dat de on-premises identiteitsprovider altijd beschikbaar is voor authenticatie, wat betekent dat organisaties moeten investeren in redundantie en disaster recovery om te waarborgen dat authenticatie kan blijven functioneren zelfs wanneer componenten tijdelijk niet beschikbaar zijn. Deze complexiteit maakt federatieve authenticatie minder geschikt voor kleinere organisaties of organisaties met beperkte technische expertise, maar is essentieel voor organisaties die de hoogste mate van beveiliging en controle vereisen.

Vereisten en Voorbereiding

De implementatie van een volledig geconfigureerde hybrid identity federation oplossing vereist een grondige voorbereiding waarbij zowel technische als organisatorische aspecten zorgvuldig moeten worden geëvalueerd en geadresseerd. Het succes van deze beveiligingsmaatregel hangt direct samen met de volledigheid van de voorbereiding, omdat het ontbreken van essentiële componenten kan leiden tot beveiligingsproblemen, authenticatiefouten of onvolledige implementaties die de beveiligingsdoelstellingen niet volledig realiseren. Nederlandse overheidsorganisaties dienen daarom een gestructureerde aanpak te volgen waarbij alle vereisten systematisch worden geïnventariseerd, geëvalueerd en geadresseerd voordat de daadwerkelijke implementatie wordt gestart.

De primaire technische vereiste betreft de beschikbaarheid van een geschikte Windows Server infrastructuur voor het hosten van de AD FS farm. Voor productieomgevingen wordt sterk aanbevolen om minimaal twee AD FS servers te implementeren voor hoge beschikbaarheid, waarbij elke server beschikt over Windows Server 2016 of hoger met de nieuwste service packs en beveiligingsupdates geïnstalleerd, minimaal 8 GB RAM geheugen, voldoende schijfruimte voor logbestanden en certificaten, en netwerkconnectiviteit naar zowel de on-premises Active Directory domain controllers als Azure Active Directory via internet of ExpressRoute. De servers moeten lid zijn van het on-premises Active Directory domein en moeten beschikken over netwerkconnectiviteit naar alle domain controllers die nodig zijn voor authenticatie. Bovendien moeten de servers worden beveiligd met meervoudige authenticatie voor beheerders, regelmatige beveiligingsupdates, en monitoring voor verdachte activiteiten. Het is sterk aanbevolen om de AD FS servers te isoleren in een beveiligd netwerksegment met beperkte toegang tot andere systemen, om het aanvalsoppervlak te minimaliseren en de impact van een mogelijke compromittering te beperken.

Voor de configuratie van AD FS zijn specifieke certificaten vereist die worden gebruikt voor het ondertekenen en versleutelen van beveiligingstokens. Deze certificaten zijn kritiek voor de beveiliging van de federatie-infrastructuur, omdat een gecompromitteerd certificaat kan leiden tot volledige compromittering van de authenticatieomgeving. Organisaties moeten beschikken over een geldig SSL-certificaat voor de AD FS service, een token signing certificate voor het ondertekenen van beveiligingstokens, en een token encryption certificate voor het versleutelen van gevoelige claims in tokens. Deze certificaten moeten worden uitgegeven door een vertrouwde Certificate Authority (CA) en moeten voldoen aan moderne cryptografische standaarden zoals RSA 2048-bit of hoger voor token signing en encryptie. Bovendien moeten organisaties processen implementeren voor het regelmatig vernieuwen van certificaten voordat zij verlopen, omdat verlopen certificaten kunnen leiden tot authenticatiefouten en toegangsproblemen voor gebruikers. Het is sterk aanbevolen om certificaatvernieuwing te automatiseren om te voorkomen dat certificaten onbedoeld verlopen en om de beveiliging van de federatie-infrastructuur te waarborgen.

Een kritieke vereiste betreft de configuratie van vertrouwensrelaties tussen de on-premises identiteitsprovider en Azure Active Directory. Deze vertrouwensrelaties vormen de basis voor federatieve authenticatie en moeten zorgvuldig worden geconfigureerd om te waarborgen dat alleen geautoriseerde tokens worden geaccepteerd en dat de integriteit van de authenticatieprocessen wordt gewaarborgd. De configuratie omvat het configureren van een federation trust in Azure AD die verwijst naar de on-premises AD FS farm, het configureren van claim rules in AD FS die bepalen welke claims worden doorgegeven in tokens, en het configureren van certificaten en metadata voor het valideren van tokens. Organisaties moeten ervoor zorgen dat de vertrouwensrelaties correct zijn geconfigureerd met de juiste certificaten en metadata, en dat er processen zijn geïmplementeerd voor het regelmatig controleren en bijwerken van deze configuraties om te waarborgen dat de federatie-infrastructuur correct blijft functioneren.

Voor organisaties die gebruik willen maken van geavanceerde authenticatiemethoden zoals smartcards of hardware-tokens, zijn aanvullende vereisten noodzakelijk. Dit omvat het beschikken over de benodigde hardware-infrastructuur zoals smartcard readers, het configureren van Certificate Authority (CA) voor het uitgeven van certificaten voor smartcards, en het configureren van AD FS voor het accepteren van certificaat-gebaseerde authenticatie. Bovendien moeten organisaties ervoor zorgen dat gebruikers zijn uitgerust met de benodigde hardware en dat er processen zijn geïmplementeerd voor het beheren en vernieuwen van certificaten. Deze geavanceerde authenticatiemethoden bieden aanzienlijke beveiligingsvoordelen maar vereisen ook aanzienlijke investeringen in infrastructuur en beheer, waardoor organisaties zorgvuldig moeten evalueren of deze methoden passen bij hun specifieke beveiligingsbehoeften en operationele capaciteiten.

Ten slotte moet een duidelijk gedefinieerd en gedocumenteerd proces worden opgesteld voor het testen en valideren van de federatie-configuratie voordat deze wordt geactiveerd in productie. Dit proces moet in detail specificeren hoe authenticatie wordt getest voor verschillende gebruikersscenario's, hoe failover wordt getest wanneer AD FS servers tijdelijk niet beschikbaar zijn, hoe certificaatvernieuwing wordt getest, en hoe monitoring en logging worden geconfigureerd. Het proces moet ook voorzien in monitoring en alerting voor wanneer federatieve authenticatie faalt of wanneer verdachte activiteiten worden gedetecteerd, zodat beheerders snel kunnen reageren op problemen en gebruikers kunnen ondersteunen wanneer zij authenticatieproblemen ervaren.

Implementatie en Configuratie

Gebruik PowerShell-script hybrid-identity-federation.ps1 (functie Invoke-Remediation) – Configureert en valideert hybrid identity federation met AD FS.

De implementatie van hybrid identity federation begint met het installeren en configureren van Active Directory Federation Services op minimaal twee Windows Server systemen voor hoge beschikbaarheid. De installatie kan worden uitgevoerd met behulp van de Server Manager of PowerShell, waarbij de AD FS rol wordt geïnstalleerd samen met de benodigde afhankelijkheden zoals .NET Framework en Windows Identity Foundation. Na de installatie wordt de AD FS farm geconfigureerd met behulp van de AD FS Configuration Wizard, waarbij een farm wordt aangemaakt met een farm database die wordt opgeslagen in een SQL Server database voor betere prestaties en schaalbaarheid, of in de Windows Internal Database voor eenvoudigere implementaties. Tijdens de configuratie moet een service account worden opgegeven dat wordt gebruikt voor het uitvoeren van AD FS services, waarbij dit account minimale rechten moet hebben volgens het least-privilege principe en waarbij het account moet worden beveiligd met meervoudige authenticatie en regelmatige wachtwoordrotatie.

Na de configuratie van de AD FS farm moeten certificaten worden geconfigureerd voor token signing en encryptie. Deze certificaten zijn kritiek voor de beveiliging van de federatie-infrastructuur en moeten worden uitgegeven door een vertrouwde Certificate Authority. Het token signing certificate wordt gebruikt voor het ondertekenen van alle beveiligingstokens die door AD FS worden uitgegeven, waardoor relying parties kunnen verifiëren dat tokens authentiek zijn en niet zijn gewijzigd. Het token encryption certificate wordt gebruikt voor het versleutelen van gevoelige claims in tokens, waardoor deze claims niet kunnen worden gelezen door onbevoegde partijen. Organisaties moeten ervoor zorgen dat deze certificaten voldoen aan moderne cryptografische standaarden en dat er processen zijn geïmplementeerd voor het regelmatig vernieuwen van certificaten voordat zij verlopen. Bovendien moeten organisaties ervoor zorgen dat certificaten worden opgeslagen in beveiligde locaties zoals de Windows Certificate Store met de juiste toegangsrechten, en dat er processen zijn geïmplementeerd voor het monitoren en reageren op certificaatverlopen.

De volgende stap betreft het configureren van een federation trust tussen de on-premises AD FS farm en Azure Active Directory. Deze configuratie kan worden uitgevoerd met behulp van de Azure AD Connect wizard, die automatisch de benodigde vertrouwensrelaties configureert, of handmatig via de Azure AD portal en AD FS Management Console. Tijdens de configuratie moet de federation metadata worden geconfigureerd, waarbij de Azure AD Connect wizard automatisch de benodigde configuraties doorvoert, of waarbij beheerders handmatig de federation endpoint URL, certificaten en metadata moeten configureren. Na de configuratie moet de vertrouwensrelatie worden gevalideerd door een testauthenticatie uit te voeren, waarbij wordt gecontroleerd of gebruikers correct kunnen authenticeren en of tokens correct worden uitgegeven en gevalideerd. Als er problemen worden gedetecteerd tijdens de validatie, moeten deze worden opgelost voordat de federatie wordt geactiveerd in productie.

Na de configuratie van de federation trust moeten claim rules worden geconfigureerd die bepalen welke claims worden doorgegeven in beveiligingstokens. Deze claim rules zijn essentieel voor het waarborgen dat de juiste gebruikersattributen worden doorgegeven aan cloudservices, zodat deze services correcte autorisatiebeslissingen kunnen nemen. Standaard claim rules omvatten het doorgeven van de gebruikersnaam, e-mailadres, display name, en groepen waartoe de gebruiker behoort. Organisaties kunnen aanvullende claim rules configureren om aangepaste attributen door te geven, om claims te transformeren of te filteren, of om voorwaardelijke claims toe te voegen op basis van gebruikerseigenschappen. Het is belangrijk om ervoor te zorgen dat alleen de benodigde claims worden doorgegeven, omdat het doorgeven van onnodige of gevoelige claims beveiligingsrisico's kan opleveren en kan leiden tot compliance-problemen. Bovendien moeten organisaties ervoor zorgen dat claim rules correct zijn geconfigureerd en dat er processen zijn geïmplementeerd voor het regelmatig controleren en bijwerken van deze configuraties.

Voor organisaties die gebruik willen maken van geavanceerde authenticatiemethoden zoals smartcards of hardware-tokens, moeten aanvullende authenticatiemethoden worden geconfigureerd in AD FS. Dit omvat het configureren van Certificate Authentication als een primaire of aanvullende authenticatiemethode, het configureren van de Certificate Authority voor het valideren van certificaten, en het configureren van claim rules voor het extraheren van gebruikersinformatie uit certificaten. Bovendien moeten organisaties ervoor zorgen dat gebruikers zijn uitgerust met de benodigde hardware en dat er processen zijn geïmplementeerd voor het beheren en vernieuwen van certificaten. Deze geavanceerde authenticatiemethoden bieden aanzienlijke beveiligingsvoordelen maar vereisen ook aanzienlijke investeringen in infrastructuur en beheer, waardoor organisaties zorgvuldig moeten evalueren of deze methoden passen bij hun specifieke beveiligingsbehoeften.

Na de configuratie van alle benodigde componenten moet de beveiligingsconfiguratie worden gecontroleerd en geoptimaliseerd om ervoor te zorgen dat de federatie-infrastructuur adequaat is beveiligd. Dit omvat het verifiëren dat AD FS servers zijn beveiligd met meervoudige authenticatie voor beheerders, dat communicatie tussen servers en clients is versleuteld met TLS 1.2 of hoger, dat certificaten correct zijn geconfigureerd en regelmatig worden vernieuwd, en dat alle authenticatieactiviteiten worden gelogd en gemonitord voor verdachte activiteiten. Bovendien moeten organisaties ervoor zorgen dat er processen zijn geïmplementeerd voor het monitoren en reageren op configuratiewijzigingen die mogelijk wijzen op beveiligingsincidenten of onbevoegde toegang. Deze beveiligingsmaatregelen zijn essentieel voor het waarborgen dat de federatie-infrastructuur niet kan worden misbruikt door aanvallers om toegang te krijgen tot gevoelige systemen of om ongeautoriseerde authenticatie uit te voeren.

Monitoring en Onderhoud

Gebruik PowerShell-script hybrid-identity-federation.ps1 (functie Invoke-Monitoring) – Controleert de status van AD FS, federation trust en authenticatieactiviteiten.

Effectieve monitoring van hybrid identity federation is essentieel om te waarborgen dat de federatie-infrastructuur correct blijft functioneren en dat organisaties altijd beschikken over betrouwbare authenticatiemogelijkheden voor gebruikers. Zonder uitgebreide monitoring kunnen organisaties niet garanderen dat federatieve authenticatie correct werkt, dat alle componenten beschikbaar zijn, en dat er geen problemen zijn met de federatie-configuratie die kunnen leiden tot authenticatiefouten of toegangsproblemen voor gebruikers. Monitoring omvat het continu volgen van de status van AD FS servers, het verifiëren dat federation trusts correct zijn geconfigureerd, het controleren van certificaatgeldigheid en -verlopen, het monitoren van authenticatieactiviteiten voor verdachte patronen, en het waarborgen dat alle componenten beschikbaar zijn en correct functioneren.

De basis van monitoring wordt gevormd door regelmatige verificatie van de status van AD FS servers via de AD FS Management Console of via PowerShell. Beheerders moeten dagelijks controleren of AD FS services correct draaien, of er geen fouten of waarschuwingen zijn in de event logs, en of de federation trusts correct zijn geconfigureerd en actief zijn. Deze verificatie kan worden geautomatiseerd via PowerShell-scripts die de status van AD FS servers controleren en waarschuwingen genereren wanneer problemen worden gedetecteerd. Het is belangrijk om deze verificaties regelmatig uit te voeren, omdat problemen met AD FS servers kunnen leiden tot authenticatiefouten voor gebruikers, wat kan resulteren in toegangsproblemen en gebruikersfrustratie. Bovendien moeten organisaties ervoor zorgen dat er voldoende redundantie is in de AD FS farm, zodat authenticatie kan blijven functioneren zelfs wanneer een server tijdelijk niet beschikbaar is.

Naast het controleren van de status van AD FS servers moeten organisaties regelmatig verifiëren dat certificaten geldig zijn en niet binnenkort verlopen. Verlopen certificaten kunnen leiden tot authenticatiefouten en toegangsproblemen voor gebruikers, waardoor het essentieel is om processen te implementeren voor het monitoren van certificaatverlopen en voor het automatisch vernieuwen van certificaten voordat zij verlopen. Organisaties moeten waarschuwingen configureren die worden gegenereerd wanneer certificaten binnen dertig dagen verlopen, zodat proactieve maatregelen kunnen worden genomen om certificaten te vernieuwen voordat zij daadwerkelijk verlopen. Bovendien moeten organisaties ervoor zorgen dat certificaatvernieuwing wordt getest in een testomgeving voordat deze wordt doorgevoerd in productie, om te voorkomen dat certificaatvernieuwing leidt tot onverwachte problemen of authenticatiefouten.

Voor organisaties die gebruik maken van geavanceerde authenticatiemethoden zoals smartcards of hardware-tokens, is het essentieel om te monitoren of deze methoden correct functioneren en of gebruikers problemen ervaren met authenticatie. Dit omvat het controleren van certificaatvalidatie, het monitoren van authenticatiefouten die verband houden met certificaat-gebaseerde authenticatie, en het verzamelen van feedback van gebruikers over hun ervaringen met geavanceerde authenticatiemethoden. Organisaties moeten processen implementeren voor het regelmatig uitvoeren van deze verificaties, waarbij maandelijks wordt gecontroleerd of geavanceerde authenticatiemethoden correct werken en waarbij waarschuwingen worden gegenereerd wanneer problemen worden gedetecteerd.

Daarnaast moeten organisaties processen implementeren voor het monitoren van authenticatieactiviteiten voor verdachte patronen die kunnen wijzen op beveiligingsincidenten of ongeautoriseerde toegang. Dit omvat het analyseren van authenticatielogs voor ongebruikelijke patronen zoals authenticatiepogingen vanaf onbekende locaties, mislukte authenticatiepogingen voor meerdere gebruikers, of authenticatiepogingen buiten normale werkuren. Organisaties moeten Security Information and Event Management (SIEM) systemen configureren om authenticatielogs te verzamelen en te analyseren, en moeten waarschuwingen configureren die worden gegenereerd wanneer verdachte patronen worden gedetecteerd. Door deze monitoring kunnen organisaties snel reageren op beveiligingsincidenten en kunnen zij preventieve maatregelen nemen om te voorkomen dat aanvallers misbruik maken van de federatie-infrastructuur.

Compliance en Naleving

Hybrid identity federation is een kritieke beveiligingsmaatregel die direct bijdraagt aan naleving van verschillende cybersecurity frameworks en wet- en regelgeving die van toepassing zijn op Nederlandse overheidsorganisaties. Door gebruik te maken van federatieve authenticatie kunnen organisaties voldoen aan strikte eisen over waar wachtwoorden mogen worden opgeslagen, kunnen zij geavanceerde authenticatiemethoden implementeren die worden vereist door bepaalde compliance-frameworks, en kunnen zij volledige controle behouden over authenticatieprocessen, wat essentieel is voor het waarborgen van beveiliging, transparantie en verantwoording. Het ontbreken van adequate federatieve authenticatie kan leiden tot niet-naleving van deze vereisten, wat kan resulteren in boetes, reputatieschade en juridische aansprakelijkheid.

De Baseline Informatiebeveiliging Overheid (BIO) norm 12.01 vereist dat organisaties passende authenticatiemethoden implementeren voor toegang tot informatie en informatiesystemen. Deze norm is specifiek ontwikkeld voor de Nederlandse publieke sector en stelt eisen aan de sterkte van authenticatiemethoden, waarbij voor toegang tot gevoelige informatie meervoudige authenticatie wordt vereist. Federatieve authenticatie maakt het mogelijk om geavanceerde authenticatiemethoden zoals smartcards en hardware-tokens te gebruiken die voldoen aan deze vereisten, terwijl organisaties volledige controle behouden over authenticatieprocessen. Voor Microsoft 365 omgevingen betekent dit dat federatieve authenticatie moet zijn geconfigureerd en dat organisaties kunnen aantonen dat zij voldoen aan de vereisten van deze norm. Het niet implementeren van adequate federatieve authenticatie kan leiden tot niet-naleving van de BIO, wat kan resulteren in bestuurlijke maatregelen of andere handhavingsacties.

De ISO 27001 standaard, controle A.9.4.2, vereist eveneens passende authenticatiemethoden voor toegang tot informatiesystemen. Deze internationale standaard wordt veelvuldig gebruikt door Nederlandse organisaties die certificering nastreven en vormt een belangrijke basis voor informatiebeveiligingsmanagement. Controle A.9.4.2 specificeert dat organisaties moeten kunnen aantonen dat zij passende authenticatiemethoden hebben geïmplementeerd, dat deze methoden correct zijn geconfigureerd, en dat er processen zijn geïmplementeerd voor het monitoren en reageren op authenticatieproblemen. Voor Microsoft 365 omgevingen betekent dit dat federatieve authenticatie moet zijn geconfigureerd en dat organisaties kunnen aantonen dat zij voldoen aan de vereisten van deze controle. Het niet implementeren van adequate federatieve authenticatie kan leiden tot niet-naleving van ISO 27001, wat kan resulteren in het verlies van certificering en reputatieschade.

De Algemene Verordening Gegevensbescherming (AVG), Artikel 32, verplicht organisaties om passende technische en organisatorische maatregelen te treffen om persoonsgegevens te beveiligen, waarbij sterke authenticatie een essentieel onderdeel vormt. Artikel 32 specificeert dat organisaties moeten kunnen aantonen dat zij passende maatregelen hebben genomen om persoonsgegevens te beveiligen, wat onder andere betekent dat zij sterke authenticatiemethoden moeten implementeren voor toegang tot systemen die persoonsgegevens bevatten. Federatieve authenticatie maakt het mogelijk om geavanceerde authenticatiemethoden te gebruiken die voldoen aan deze vereisten, terwijl organisaties volledige controle behouden over waar wachtwoorden worden opgeslagen. Voor Microsoft 365 omgevingen betekent dit dat federatieve authenticatie moet zijn geconfigureerd en dat organisaties kunnen aantonen dat zij voldoen aan de vereisten van Artikel 32. Het niet implementeren van adequate federatieve authenticatie kan leiden tot niet-naleving van de AVG, wat kan resulteren in boetes tot 4 procent van de wereldwijde jaaromzet of 20 miljoen euro, afhankelijk van wat hoger is.

De NIS2 richtlijn, Artikel 21, stelt specifieke eisen aan essentiële en belangrijke entiteiten met betrekking tot beveiligingsmaatregelen voor authenticatie en toegangscontrole. Nederlandse organisaties die onder de reikwijdte van NIS2 vallen, moeten kunnen aantonen dat zij beschikken over adequate authenticatiemethoden en dat zij processen hebben geïmplementeerd voor het monitoren en reageren op authenticatieproblemen. Artikel 21 specificeert dat organisaties moeten kunnen aantonen dat zij passende maatregelen hebben genomen om authenticatie te beveiligen, wat onder andere betekent dat zij sterke authenticatiemethoden moeten implementeren en dat zij processen moeten hebben voor het monitoren en reageren op authenticatie-incidenten. Voor Microsoft 365 omgevingen betekent dit dat federatieve authenticatie moet zijn geconfigureerd en dat organisaties kunnen aantonen dat zij voldoen aan de vereisten van Artikel 21. Het niet implementeren van adequate federatieve authenticatie kan leiden tot niet-naleving van NIS2, wat kan resulteren in boetes en andere handhavingsmaatregelen door de Autoriteit Consument en Markt (ACM) of andere toezichthouders.

Remediatie

Gebruik PowerShell-script hybrid-identity-federation.ps1 (functie Invoke-Remediation) – Herstelt en configureert hybrid identity federation wanneer problemen worden gedetecteerd.

Remediatie van hybrid identity federation omvat het oplossen van problemen met AD FS servers, het herstellen van federation trusts, het vernieuwen van verlopen certificaten, en het waarborgen dat alle componenten correct zijn geconfigureerd en beschikbaar zijn. Het is belangrijk om te realiseren dat problemen met federatieve authenticatie directe gevolgen kunnen hebben voor gebruikers, omdat gebruikers niet kunnen inloggen op cloudservices wanneer federatieve authenticatie niet functioneert. Daarom moeten organisaties processen implementeren voor het snel detecteren en oplossen van problemen met federatieve authenticatie, zodat de impact op gebruikers wordt geminimaliseerd.

Wanneer AD FS servers niet correct functioneren, moeten beheerders eerst controleren of de AD FS services correct draaien en of er fouten zijn in de event logs. Als services niet draaien, moeten deze worden gestart via de Services console of via PowerShell. Als er fouten zijn in de event logs, moeten deze worden geanalyseerd om de onderliggende oorzaak te identificeren en op te lossen. Veelvoorkomende problemen omvatten certificaatverlopen, configuratiefouten, of netwerkproblemen die kunnen worden opgelost door certificaten te vernieuwen, configuraties te corrigeren, of netwerkconnectiviteit te herstellen. Na het oplossen van problemen moeten beheerders verifiëren dat authenticatie correct werkt door een testauthenticatie uit te voeren, waarbij wordt gecontroleerd of gebruikers correct kunnen authenticeren en of tokens correct worden uitgegeven en gevalideerd.

Wanneer federation trusts niet correct zijn geconfigureerd of wanneer vertrouwensrelaties zijn verbroken, moeten deze worden hersteld door de federation trust opnieuw te configureren. Dit omvat het controleren van de federation metadata, het verifiëren van certificaten, en het opnieuw configureren van de vertrouwensrelatie indien nodig. Na het herstellen van de vertrouwensrelatie moeten beheerders verifiëren dat authenticatie correct werkt door een testauthenticatie uit te voeren. Organisaties moeten processen implementeren voor het regelmatig controleren van federation trusts en voor het snel herstellen van vertrouwensrelaties wanneer problemen worden gedetecteerd.

Wanneer certificaten verlopen of binnenkort verlopen, moeten deze worden vernieuwd voordat zij daadwerkelijk verlopen om te voorkomen dat authenticatiefouten optreden. Certificaatvernieuwing omvat het aanvragen van nieuwe certificaten bij de Certificate Authority, het installeren van nieuwe certificaten op AD FS servers, en het configureren van AD FS om de nieuwe certificaten te gebruiken. Na certificaatvernieuwing moeten beheerders verifiëren dat authenticatie correct werkt en dat er geen problemen zijn met token signing of encryptie. Organisaties moeten processen implementeren voor het automatisch monitoren van certificaatverlopen en voor het proactief vernieuwen van certificaten voordat zij verlopen, om te voorkomen dat verlopen certificaten leiden tot authenticatiefouten en toegangsproblemen voor gebruikers.

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 Hybrid Identity Federation Configuration .DESCRIPTION Controleert en configureert hybrid identity federation met Active Directory Federation Services (AD FS) voor federatieve authenticatie tussen on-premises Active Directory en Azure Active Directory. .NOTES Filename: hybrid-identity-federation.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Requires: AD FS, Microsoft.Graph.Identity.DirectoryManagement #> #Requires -Version 5.1 #Requires -Modules AdfsAdministration, Microsoft.Graph.Identity.DirectoryManagement [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 "Hybrid Identity Federation Configuration" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================`n" -ForegroundColor Cyan function Connect-RequiredServices { <# .SYNOPSIS Maakt verbinding met benodigde services #> try { # Controleer of AD FS beschikbaar is $adfsService = Get-Service -Name "ADFSSRV" -ErrorAction SilentlyContinue if (-not $adfsService) { Write-Host " [WARN] AD FS service niet gevonden op deze server" -ForegroundColor Yellow Write-Host " Dit script moet worden uitgevoerd op een AD FS server" -ForegroundColor Yellow return $false } # Controleer of Microsoft Graph verbinding beschikbaar is $context = Get-MgContext -ErrorAction SilentlyContinue if (-not $context -or $context.Scopes -notcontains "Directory.Read.All") { Write-Host "Connecting to Microsoft Graph..." -ForegroundColor Gray Connect-MgGraph -Scopes "Directory.Read.All", "Policy.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 } return $true } catch { Write-Host " [FAIL] Failed to connect to required services: $_" -ForegroundColor Red return $false } } function Invoke-Monitoring { <# .SYNOPSIS Controleert de configuratie en status van hybrid identity federation #> try { if (-not (Connect-RequiredServices)) { Write-Host "`n[FAIL] Cannot proceed without required services" -ForegroundColor Red exit 1 } Write-Host "Checking hybrid identity federation configuration..." -ForegroundColor Gray $result = @{ adfsServiceRunning = $false adfsFarmConfigured = $false federationTrustConfigured = $false certificatesValid = $false compliant = $false issues = @() } # Controleer AD FS service status Write-Host "`nChecking AD FS service status..." -ForegroundColor Gray $adfsService = Get-Service -Name "ADFSSRV" -ErrorAction SilentlyContinue if ($adfsService -and $adfsService.Status -eq "Running") { Write-Host " [OK] AD FS service is running" -ForegroundColor Green $result.adfsServiceRunning = $true } else { Write-Host " [FAIL] AD FS service is not running" -ForegroundColor Red $result.issues += "AD FS service is not running" } # Controleer AD FS farm configuratie Write-Host "`nChecking AD FS farm configuration..." -ForegroundColor Gray try { $adfsProperties = Get-AdfsProperties -ErrorAction Stop if ($adfsProperties) { Write-Host " [OK] AD FS farm is configured" -ForegroundColor Green Write-Host " Hostname: $($adfsProperties.HostName)" -ForegroundColor Cyan $result.adfsFarmConfigured = $true } } catch { Write-Host " [FAIL] AD FS farm not configured: $_" -ForegroundColor Red $result.issues += "AD FS farm not configured" } # Controleer federation trust met Azure AD Write-Host "`nChecking federation trust with Azure AD..." -ForegroundColor Gray try { $relyingPartyTrusts = Get-AdfsRelyingPartyTrust -ErrorAction Stop $azureTrust = $relyingPartyTrusts | Where-Object { $_.Name -like "*Microsoft*" -or $_.Name -like "*Azure*" } if ($azureTrust) { Write-Host " [OK] Federation trust with Azure AD is configured" -ForegroundColor Green Write-Host " Trust Name: $($azureTrust.Name)" -ForegroundColor Cyan $result.federationTrustConfigured = $true } else { Write-Host " [WARN] No Azure AD federation trust found" -ForegroundColor Yellow $result.issues += "No Azure AD federation trust configured" } } catch { Write-Host " [WARN] Could not check federation trusts: $_" -ForegroundColor Yellow $result.issues += "Could not verify federation trusts" } # Controleer certificaten Write-Host "`nChecking AD FS certificates..." -ForegroundColor Gray try { $certificates = Get-AdfsCertificate -ErrorAction Stop $tokenSigningCert = $certificates | Where-Object { $_.CertificateType -eq "Token-Signing" } $tokenDecryptionCert = $certificates | Where-Object { $_.CertificateType -eq "Token-Decrypting" } if ($tokenSigningCert) { $signingCert = Get-ChildItem -Path "Cert:\LocalMachine\My\$($tokenSigningCert.Thumbprint)" -ErrorAction SilentlyContinue if ($signingCert) { $daysUntilExpiry = ($signingCert.NotAfter - (Get-Date)).Days if ($daysUntilExpiry -gt 30) { Write-Host " [OK] Token signing certificate is valid" -ForegroundColor Green Write-Host " Expires in: $daysUntilExpiry days" -ForegroundColor Cyan $result.certificatesValid = $true } elseif ($daysUntilExpiry -gt 0) { Write-Host " [WARN] Token signing certificate expires soon: $daysUntilExpiry days" -ForegroundColor Yellow $result.issues += "Token signing certificate expires in $daysUntilExpiry days" $result.certificatesValid = $true } else { Write-Host " [FAIL] Token signing certificate has expired" -ForegroundColor Red $result.issues += "Token signing certificate has expired" } } } else { Write-Host " [FAIL] Token signing certificate not found" -ForegroundColor Red $result.issues += "Token signing certificate not configured" } } catch { Write-Host " [WARN] Could not check certificates: $_" -ForegroundColor Yellow $result.issues += "Could not verify certificates" } # Controleer Azure AD domain federation status Write-Host "`nChecking Azure AD domain federation status..." -ForegroundColor Gray try { $domains = Get-MgDomain -ErrorAction Stop $federatedDomains = $domains | Where-Object { $_.AuthenticationType -eq "Federated" } if ($federatedDomains) { Write-Host " [OK] Found $($federatedDomains.Count) federated domain(s)" -ForegroundColor Green foreach ($domain in $federatedDomains) { Write-Host " Domain: $($domain.Id)" -ForegroundColor Cyan } } else { Write-Host " [WARN] No federated domains found in Azure AD" -ForegroundColor Yellow $result.issues += "No federated domains configured in Azure AD" } } catch { Write-Host " [WARN] Could not check Azure AD domains: $_" -ForegroundColor Yellow $result.issues += "Could not verify Azure AD domain federation" } # Bepaal compliance status if ($result.adfsServiceRunning -and $result.adfsFarmConfigured -and $result.certificatesValid) { $result.compliant = $true } # Toon resultaten Write-Host "`n========================================" -ForegroundColor Cyan if ($result.compliant) { Write-Host "[OK] HYBRID IDENTITY FEDERATION: COMPLIANT" -ForegroundColor Green } else { Write-Host "[FAIL] HYBRID IDENTITY FEDERATION: NON-COMPLIANT" -ForegroundColor Red if ($result.issues.Count -gt 0) { Write-Host "`nIssues found:" -ForegroundColor Yellow foreach ($issue in $result.issues) { Write-Host " - $issue" -ForegroundColor Yellow } } } Write-Host "========================================`n" -ForegroundColor Cyan if ($result.compliant) { exit 0 } else { exit 1 } } catch { Write-Host "`n[FAIL] ERROR: $_" -ForegroundColor Red Write-Host "Error Details: $($_.Exception.Message)" -ForegroundColor Red exit 2 } } function Invoke-Remediation { <# .SYNOPSIS Configureert en herstelt hybrid identity federation #> try { if (-not (Connect-RequiredServices)) { Write-Host "`n[FAIL] Cannot proceed without required services" -ForegroundColor Red exit 1 } Write-Host "Configuring hybrid identity federation..." -ForegroundColor Gray # Controleer en start AD FS service indien nodig Write-Host "`nChecking AD FS service..." -ForegroundColor Gray $adfsService = Get-Service -Name "ADFSSRV" -ErrorAction SilentlyContinue if (-not $adfsService) { Write-Host " [FAIL] AD FS service not found. Please install AD FS first." -ForegroundColor Red exit 1 } if ($adfsService.Status -ne "Running") { Write-Host " Starting AD FS service..." -ForegroundColor Gray Start-Service -Name "ADFSSRV" -ErrorAction Stop Start-Sleep -Seconds 5 Write-Host " [OK] AD FS service started" -ForegroundColor Green } else { Write-Host " [OK] AD FS service is already running" -ForegroundColor Green } # Controleer AD FS farm configuratie Write-Host "`nChecking AD FS farm configuration..." -ForegroundColor Gray try { $adfsProperties = Get-AdfsProperties -ErrorAction Stop Write-Host " [OK] AD FS farm is configured" -ForegroundColor Green Write-Host " Hostname: $($adfsProperties.HostName)" -ForegroundColor Cyan } catch { Write-Host " [WARN] AD FS farm not configured. Please run AD FS Configuration Wizard first." -ForegroundColor Yellow Write-Host " Use: Install-AdfsFarm or AD FS Configuration Wizard" -ForegroundColor Yellow } # Controleer certificaten Write-Host "`nChecking certificates..." -ForegroundColor Gray try { $certificates = Get-AdfsCertificate -ErrorAction Stop $tokenSigningCert = $certificates | Where-Object { $_.CertificateType -eq "Token-Signing" } if ($tokenSigningCert) { $signingCert = Get-ChildItem -Path "Cert:\LocalMachine\My\$($tokenSigningCert.Thumbprint)" -ErrorAction SilentlyContinue if ($signingCert) { $daysUntilExpiry = ($signingCert.NotAfter - (Get-Date)).Days if ($daysUntilExpiry -lt 30) { Write-Host " [WARN] Token signing certificate expires in $daysUntilExpiry days" -ForegroundColor Yellow Write-Host " Please renew the certificate before it expires" -ForegroundColor Yellow } else { Write-Host " [OK] Token signing certificate is valid" -ForegroundColor Green } } } else { Write-Host " [WARN] Token signing certificate not found" -ForegroundColor Yellow Write-Host " Certificates should be configured during AD FS installation" -ForegroundColor Yellow } } catch { Write-Host " [WARN] Could not check certificates: $_" -ForegroundColor Yellow } Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "[OK] Remediation completed" -ForegroundColor Green Write-Host "========================================`n" -ForegroundColor Cyan Write-Host "Important notes:" -ForegroundColor Cyan Write-Host " • Ensure AD FS farm is properly configured" -ForegroundColor Gray Write-Host " • Configure federation trust with Azure AD using Azure AD Connect" -ForegroundColor Gray Write-Host " • Monitor certificate expiration dates" -ForegroundColor Gray Write-Host " • Implement high availability with multiple AD FS servers" -ForegroundColor Gray Write-Host " • Configure monitoring and logging for all authentication activities" -ForegroundColor Gray 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 federation trust (NIET AANBEVOLEN!) #> try { Write-Host "⚠️ WARNING: Removing federation trust is a SECURITY RISK!" -ForegroundColor Red Write-Host "This will break federated authentication for all users`n" -ForegroundColor Red if (-not $WhatIf) { $confirm = Read-Host "Are you sure you want to continue? (yes/no)" if ($confirm -ne "yes") { Write-Host "Operation cancelled" -ForegroundColor Yellow exit 0 } } Write-Host "This operation requires manual steps:" -ForegroundColor Yellow Write-Host " 1. Convert federated domain to managed in Azure AD" -ForegroundColor Gray Write-Host " 2. Configure password hash sync or pass-through auth" -ForegroundColor Gray Write-Host " 3. Remove AD FS relying party trusts if no longer needed" -ForegroundColor Gray Write-Host "`nPlease consult documentation before proceeding" -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 Check hybrid identity federation status" -ForegroundColor Gray Write-Host " -Remediation Configure and restore federation" -ForegroundColor Gray Write-Host " -Revert Remove federation trust (NOT RECOMMENDED!)" -ForegroundColor Red Write-Host "`nNote: This script must be run on an AD FS server" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Hoog - Zonder federatieve authenticatie kunnen organisaties niet voldoen aan strikte eisen over waar wachtwoorden mogen worden opgeslagen, kunnen zij geen geavanceerde authenticatiemethoden gebruiken, en verliezen zij controle over authenticatieprocessen, wat kan leiden tot compliance-schendingen en beveiligingsrisico's.

Management Samenvatting

Implementeer hybrid identity federation met AD FS voor organisaties die strikte controle over authenticatie vereisen, geavanceerde authenticatiemethoden willen gebruiken, of moeten voldoen aan compliance-vereisten die verbieden dat wachtwoorden buiten de organisatie worden opgeslagen. Vereist aanzienlijke technische expertise en infrastructuur. Implementatie: 40-60 uur.