Azure Databricks: Microsoft Entra ID Synchronisatie Inschakelen

💼 Management Samenvatting

Microsoft Entra ID (voorheen Azure AD) integratie met Azure Databricks maakt gecentraliseerd identiteitsbeheer mogelijk, inclusief Single Sign-On (SSO), Multi-Factor Authentication (MFA), voorwaardelijke toegang en automatische gebruikersprovisioning en -deprovisioning. Deze integratie elimineert de noodzaak voor separate Databricks-accounts en centraliseert het identiteitsbeheer.

Aanbeveling
IMPLEMENTEREN VERPLICHT
Risico zonder
High
Risk Score
8/10
Implementatie
5u (tech: 3u)
Van toepassing op:
Azure Databricks

Zonder Microsoft Entra ID synchronisatie moet u afzonderlijke Databricks-accounts beheren, wat administratieve overhead creëert en beveiligingsrisico's introduceert. Gebruikers moeten separate inloggegevens onthouden voor Databricks, wat het risico op zwakke wachtwoorden en phishing-aanvallen vergroot. Multi-Factor Authentication kan niet worden afgedwongen, waardoor accounts kwetsbaar blijven voor credential theft. Handmatige gebruikersprovisioning is tijdrovend en foutgevoelig, en Conditional Access-policies kunnen niet worden toegepast op Databricks-toegang. Vooral problematisch is dat offboarding vaak vertraagd verloopt: wanneer medewerkers uitdienst treden, blijven hun Databricks-accounts vaak actief, wat een significant beveiligingsrisico vormt. Met Microsoft Entra ID synchronisatie verkrijgt u automatische synchronisatie van gebruikers en groepen tussen Entra ID en Databricks, Single Sign-On zodat gebruikers één keer inloggen met hun organisatie-credentials, afdwingbare Multi-Factor Authentication voor alle Databricks-toegang, voorwaardelijke toegang op basis van locatie, apparaat-compliance en risico-niveau, automatische deprovisioning waarbij Databricks-toegang direct wordt ingetrokken bij het uitschakelen van het Entra ID-account, en gecentraliseerde audit logs voor alle authenticatiegebeurtenissen. Deze integratie is essentieel voor organisaties die voldoen aan compliance-vereisten zoals ISO 27001 en NIS2, die strikte eisen stellen aan identiteits- en toegangsbeheer.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Databricks

Implementatie

Deze maatregel implementeert volledige Microsoft Entra ID integratie voor Azure Databricks via SCIM (System for Cross-domain Identity Management) provisioning en SAML-based Single Sign-On. De configuratie omvat verschillende stappen. In Databricks wordt SCIM provisioning ingeschakeld, wat automatische gebruikerssynchronisatie mogelijk maakt. In Microsoft Entra ID wordt een Enterprise Application voor Databricks geconfigureerd die als centraal authenticatiepunt fungeert. Automatische gebruikers- en groepstoewijzingen worden ingesteld, zodat Databricks-toegang automatisch wordt verleend op basis van Entra ID-groepslidmaatschappen. Single Sign-On wordt geactiveerd via SAML 2.0, waardoor gebruikers met hun organisatie-credentials kunnen inloggen zonder aparte Databricks-wachtwoorden. Multi-Factor Authentication en Conditional Access-policies worden geconfigureerd om aanvullende beveiligingslagen toe te voegen, zoals locatie-gebaseerde toegangscontrole of apparaat-compliance-eisen. De synchronisatie verloopt automatisch elke 40 minuten, waarbij nieuwe gebruikers direct bij hun eerste login worden geprovisioned in Databricks. Groepssynchronisatie kan worden gebruikt voor efficiënt rechtenbeheer, waarbij Databricks-machtigingen worden toegewezen op basis van Entra ID-groepslidmaatschappen. Cruciaal is dat deprovisioning ook automatisch verloopt: zodra een account wordt uitgeschakeld in Entra ID, wordt de Databricks-toegang onmiddellijk ingetrokken, waardoor het beveiligingsrisico van niet-afgesloten accounts wordt geëlimineerd. Deze implementatie vereist Azure AD Premium P1 voor voorwaardelijke toegang en Databricks Premium tier voor SCIM provisioning.

Vereisten

Voor de implementatie van Microsoft Entra ID synchronisatie met Azure Databricks zijn verschillende technische en licentievereisten noodzakelijk. Deze vereisten vormen de basis voor een succesvolle integratie en zorgen ervoor dat alle beveiligings- en functionaliteitsdoelen worden bereikt. Organisaties moeten vooraf controleren of zij beschikken over de benodigde licenties, toegangsrechten en technische infrastructuur voordat zij met de implementatie beginnen.

De primaire licentievereiste betreft Azure AD Premium P1, dat essentieel is voor het implementeren van voorwaardelijke toegang. Voorwaardelijke toegang vormt een kritieke beveiligingslaag die bepaalt onder welke omstandigheden gebruikers toegang krijgen tot Databricks-workspaces. Zonder Azure AD Premium P1 kunnen organisaties geen Conditional Access-beleidsregels configureren, wat betekent dat zij geen controle hebben over locatie-gebaseerde toegang, apparaatcompliance-eisen of risicogebaseerde authenticatie. Deze licentie is doorgaans al beschikbaar binnen organisaties die Conditional Access gebruiken voor andere Microsoft 365-services, maar het is belangrijk om te verifiëren dat de licentie actief is en geldig is voor alle gebruikers die toegang nodig hebben tot Databricks.

Naast Azure AD Premium P1 is een Databricks Premium tier vereist voor SCIM-provisioning. SCIM (System for Cross-domain Identity Management) provisioning is niet beschikbaar op de Standard tier van Databricks, wat betekent dat organisaties moeten upgraden naar Premium om automatische gebruikerssynchronisatie te kunnen implementeren. De Premium tier biedt niet alleen SCIM-provisioning, maar ook aanvullende beveiligings- en governancefuncties die essentieel zijn voor enterprise-omgevingen. Organisaties die momenteel de Standard tier gebruiken, moeten rekening houden met de kosten van een upgrade, hoewel deze vaak al gerechtvaardigd zijn door andere Premium-functies die zij mogelijk al gebruiken.

Toegangsrechten vormen een andere kritieke vereiste. Beheerders moeten beschikken over Azure AD admin-toegang om Enterprise Applications te kunnen maken en configureren. Deze toegang is nodig voor het registreren van de Databricks Enterprise Application in Azure AD, het configureren van SCIM-provisioning en het instellen van SAML-based Single Sign-On. Daarnaast is Databricks admin-toegang vereist voor het inschakelen van SCIM in de Databricks-workspace, het genereren van SCIM-tokens en het configureren van gebruikers- en groepstoewijzingen. Zonder deze admin-rechten kunnen beheerders de integratie niet volledig implementeren.

Specifiek voor Enterprise Application creation zijn aanvullende machtigingen nodig binnen Azure AD. Deze machtigingen stellen beheerders in staat om nieuwe Enterprise Applications te registreren in de Azure AD-galerie en deze te configureren voor gebruik binnen de organisatie. In sommige organisaties zijn deze machtigingen beperkt tot specifieke rollen of vereisen zij goedkeuring van een beveiligingsteam. Het is belangrijk om vooraf te verifiëren of de beoogde implementatiebeheerder over deze machtigingen beschikt, of om een verzoek in te dienen voor het verlenen van deze rechten voordat de implementatie begint.

Naast deze primaire vereisten zijn er ook enkele technische overwegingen. De Databricks-workspace moet toegankelijk zijn vanuit het Azure AD-tenant, wat betekent dat er geen firewallregels mogen zijn die SCIM-API-verkeer blokkeren. De netwerkinfrastructuur moet HTTPS-verbindingen toestaan tussen Azure AD en de Databricks SCIM-endpoint. Organisaties moeten ook beschikken over een mechanisme voor het veilig opslaan van SCIM-tokens, zoals Azure Key Vault, aangezien deze tokens admin-machtigingen hebben en niet in platte tekst mogen worden opgeslagen. Tot slot is het raadzaam om een testomgeving te hebben waar de configuratie eerst kan worden gevalideerd voordat deze in productie wordt geïmplementeerd.

Implementatie

Gebruik PowerShell-script databricks-entra-id-sync.ps1 (functie Invoke-Remediation) – Automatiseert Azure AD SCIM-provisioning configuratie voor Databricks-workspaces en verifieert SSO-integratie.

**FASE 1: Azure AD Enterprise Application Registratie (Duur: 30 minuten)**

De eerste fase van de implementatie betreft de registratie van een Enterprise Application in Azure AD. Deze applicatie fungeert als de brug tussen Azure AD en Azure Databricks en maakt het mogelijk om gebruikers en groepen te synchroniseren via SCIM-provisioning. Het proces begint met het navigeren naar de Azure Portal, waar beheerders naar Azure Active Directory moeten gaan en vervolgens de sectie Enterprise Applications moeten selecteren. Hier kunnen zij een nieuwe applicatie toevoegen door op de optie 'Nieuwe applicatie' te klikken.

Bij het zoeken in de Azure AD-galerie is het belangrijk om de juiste applicatie te selecteren. Er zijn namelijk twee verschillende Databricks-applicaties beschikbaar: de gewone Databricks SSO-app en de specifieke 'Azure Databricks SCIM Provisioning Connector'. Voor deze implementatie moet de SCIM Provisioning Connector worden gekozen, omdat deze de automatische gebruikerssynchronisatie mogelijk maakt. De gewone SSO-app biedt alleen Single Sign-On-functionaliteit zonder SCIM-provisioning, wat onvoldoende is voor volledige identiteitsintegratie.

Na het selecteren van de juiste applicatie moet deze worden aangemaakt met een duidelijke en beschrijvende naam. Goede naamgevingsconventies helpen bij het beheer van meerdere Databricks-workspaces en maken het eenvoudiger om te identificeren welke applicatie bij welke omgeving hoort. Voorbeelden van geschikte namen zijn 'Databricks-Production-SCIM' voor productieomgevingen of 'Azure-Databricks-Workspace-Sync' voor algemene implementaties. Deze naamgeving moet consistent zijn met de organisatorische naamgevingsstandaarden.

Vervolgens moet de Enterprise Application worden toegewezen aan relevante Azure AD-groepen die toegang moeten hebben tot Databricks. Best practice is om specifieke Azure AD-groepen te maken voor verschillende Databricks-toegangsniveaus, zoals 'DataEngineers-Databricks', 'DataScientists-Databricks' en 'Databricks-Admins'. Het toewijzen van groepen in plaats van individuele gebruikers maakt de configuratie schaalbaarder en eenvoudiger te beheren. Wanneer nieuwe medewerkers worden toegevoegd aan deze groepen, krijgen zij automatisch toegang tot Databricks via de SCIM-synchronisatie.

Tot slot is het belangrijk om de Enterprise Application Object ID en Application ID te noteren. Deze identificatoren zijn essentieel voor troubleshooting wanneer er problemen optreden met de synchronisatie, en zij zijn ook nodig voor auditdoeleinden. Deze informatie moet worden opgeslagen in een beveiligde locatie, zoals een documentatiebeheersysteem of een configuratiebeheerdatabase, zodat deze later eenvoudig kan worden teruggevonden wanneer dit nodig is.

**FASE 2: Single Sign-On (SSO) Configuratie met SAML (Duur: 1 uur)**

De tweede fase omvat de configuratie van Single Sign-On via SAML 2.0, waardoor gebruikers kunnen inloggen op Databricks met hun organisatie-credentials zonder aparte Databricks-wachtwoorden. Het proces begint in de Azure AD Enterprise Application, waar beheerders naar de sectie Single sign-on moeten navigeren en SAML moeten selecteren als de SSO-methode. SAML 2.0 is de standaard voor enterprise SSO-implementaties en biedt robuuste beveiliging en betrouwbare authenticatie.

Vervolgens moet de Azure AD SAML-metadata XML worden gedownload via de 'Federation Metadata XML' downloadlink. Dit bestand bevat essentiële informatie voor de SAML-configuratie, waaronder het SAML-ondertekeningscertificaat van Azure AD en de endpoint-URL's die nodig zijn voor de authenticatie- en afmeldingsprocessen. Dit bestand moet veilig worden opgeslagen, omdat het gevoelige certificaatgegevens bevat die nodig zijn voor de vertrouwensrelatie tussen Azure AD en Databricks.

In de Databricks-workspace moeten beheerders inloggen als administrator en naar de Admin Console navigeren. Van daaruit gaan zij naar Settings, vervolgens Identity and Access, en selecteren zij Single Sign-On. Dit is waar de SAML-configuratie wordt ingesteld. De gedownloade Azure AD SAML-metadata XML moet worden geüpload naar Databricks, waarna Databricks automatisch de Azure AD-endpoints en het certificaat parseert en de configuratie voltooit.

Een kritieke stap is het configureren van de SAML-attribuutmapping. Dit zorgt ervoor dat de juiste gebruikersinformatie van Azure AD naar Databricks wordt overgedragen. De Azure AD-claim 'user.mail' moet worden gemapped naar het e-mailattribuut van Databricks, terwijl 'user.userprincipalname' moet worden gemapped naar de gebruikersnaam. Optioneel kunnen aangepaste claims voor groepen worden geconfigureerd, wat nuttig is voor groepgebaseerd toegangsbeheer. Deze mapping moet zorgvuldig worden gecontroleerd om ervoor te zorgen dat alle benodigde gebruikersinformatie correct wordt overgedragen.

Na de configuratie moet SSO worden getest met een testgebruikersaccount. Tijdens het inloggen op Databricks zou de gebruiker moeten worden omgeleid naar de Azure AD-aanmeldingspagina, waar authenticatie plaatsvindt met Multi-Factor Authentication indien dit is ingeschakeld. Na succesvolle authenticatie wordt de gebruiker automatisch teruggeleid naar Databricks zonder dat een apart Databricks-wachtwoord nodig is. Deze test bevestigt dat de SSO-configuratie correct werkt en dat de vertrouwensrelatie tussen Azure AD en Databricks is ingesteld.

Tot slot moet lokale Databricks-authenticatie worden uitgeschakeld om ervoor te zorgen dat alle aanmeldingen via Azure AD SSO verlopen. Dit elimineert het wachtwoordbeheer voor Databricks volledig en zorgt ervoor dat gebruikers alleen kunnen inloggen met hun organisatie-credentials. Deze stap is essentieel voor de beveiliging, omdat het voorkomt dat gebruikers zwakke lokale wachtwoorden kunnen gebruiken en ervoor zorgt dat alle authenticatie via de gecentraliseerde Azure AD-infrastructuur verloopt.

**FASE 3: SCIM Automatic User Provisioning Setup (Duur: 1-2 uur)**

De derde fase betreft de configuratie van SCIM (System for Cross-domain Identity Management) voor automatische gebruikersprovisioning. SCIM maakt het mogelijk om gebruikers en groepen automatisch te synchroniseren tussen Azure AD en Databricks zonder handmatige interventie. Het proces begint in de Databricks Admin Console, waar beheerders naar Settings moeten navigeren, vervolgens Identity and Access selecteren, en dan User provisioning kiezen om SCIM in te schakelen.

Een kritieke stap is het genereren van een SCIM-token, dat specifiek is voor SCIM-provisioning. Dit token is een API-token met administratorrechten en moet met uiterste zorg worden behandeld. Het token moet worden opgeslagen in een beveiligde locatie zoals Azure Key Vault en mag nooit in platte tekst worden opgeslagen in documentatie of configuratiebestanden. Het verlies of de blootstelling van dit token zou kunnen leiden tot ongeautoriseerde toegang tot de Databricks-workspace, waardoor het essentieel is om strikte beveiligingsmaatregelen te implementeren voor tokenbeheer.

Na het genereren van het SCIM-token moeten zowel het token als de Databricks SCIM-endpoint-URL worden gekopieerd. De SCIM-endpoint-URL heeft het formaat https:///api/2.0/preview/scim/v2 en is uniek voor elke Databricks-workspace. Deze informatie is nodig voor de configuratie in Azure AD, waar beheerders terugkeren naar de Enterprise Application en naar de sectie Provisioning navigeren om de provisioningmodus in te stellen op 'Automatisch'.

In de Azure AD Provisioning-configuratie moeten de Databricks SCIM-URL worden geplakt in het veld 'Tenant URL' en het SCIM-token in het veld 'Secret Token'. Vervolgens moet de verbinding worden getest door op 'Test Connection' te klikken. Azure AD test dan de SCIM-endpoint om te verifiëren dat connectiviteit en authenticatie correct werken. Een succesvolle test betekent dat de verbinding is ingesteld en dat Azure AD kan communiceren met de Databricks SCIM-endpoint. Als de test faalt, moet er worden gecontroleerd op veelvoorkomende problemen zoals firewallblokkades die de SCIM-endpoint blokkeren, verlopen tokens of onjuiste URL's.

De provisioning scope moet worden geconfigureerd om te bepalen welke gebruikers en groepen worden gesynchroniseerd. De aanbevolen optie is 'Alleen toegewezen gebruikers en groepen synchroniseren', wat gecontroleerde provisioning mogelijk maakt waarbij alleen specifiek toegewezen gebruikers en groepen toegang krijgen. De alternatieve optie 'Alle gebruikers en groepen synchroniseren' provisiont automatisch iedereen in de Azure AD-tenant, wat meestal te breed is en kan leiden tot onnodige toegang voor gebruikers die geen Databricks-toegang nodig hebben.

Tot slot moeten de attribuutmappings worden gedefinieerd om ervoor te zorgen dat Azure AD-attributen correct worden gemapped naar Databricks-gebruikersattributen. Standaard worden e-mail, voornaam, achternaam en groepen automatisch gemapped, maar deze mappings moeten worden geverifieerd om te zorgen dat alle benodigde informatie correct wordt overgedragen. Als de organisatie aangepaste AD-schema-attributen heeft, moeten deze mappings worden aangepast om ervoor te zorgen dat alle relevante gebruikersinformatie wordt gesynchroniseerd.

**FASE 4: Provisioning Activation en Initial Sync (Duur: 30 minuten + sync tijd)**

De vierde fase omvat de activering van de provisioning en de uitvoering van de initiële synchronisatie. In de Azure AD Enterprise App Provisioning-instellingen moet de Provisioning Status worden overgeschakeld naar 'Aan' om de automatische synchronisatie te starten. Zodra dit is geactiveerd, start Azure AD automatisch de initiële synchronisatie, waarbij alle toegewezen gebruikers en groepen naar Databricks worden gepusht via de SCIM API.

De duur van de initiële synchronisatie hangt af van het aantal gebruikers dat moet worden gesynchroniseerd. Voor ongeveer 100 gebruikers duurt dit proces typisch 10 tot 20 minuten, terwijl voor 1000 of meer gebruikers de synchronisatie 1 tot 2 uur kan duren. Het is belangrijk om tijdens dit proces geduldig te zijn en de synchronisatie niet te onderbreken, omdat dit kan leiden tot inconsistente gebruikersgegevens en vereist dat het proces opnieuw moet worden gestart.

Tijdens de initiële synchronisatie moet de voortgang worden gemonitord via de Provisioning logs in Azure AD. Beheerders moeten controleren op fouten zoals 'User already exists', wat aangeeft dat er conflicten zijn die moeten worden opgelost, 'Attribute mapping failed', wat betekent dat de attribuutmappings moeten worden gecorrigeerd, of 'SCIM endpoint timeout', wat kan wijzen op prestatieproblemen met de Databricks-endpoint. Deze fouten moeten proactief worden aangepakt om ervoor te zorgen dat alle gebruikers correct worden gesynchroniseerd.

Na een succesvolle initiële synchronisatie moet worden geverifieerd in de Databricks Admin Console dat alle verwachte gebruikers zijn aangemaakt met de juiste attributen, inclusief e-mailadres, naam en groepslidmaatschappen. Deze verificatie is essentieel om te bevestigen dat de synchronisatie correct heeft gewerkt en dat alle gebruikers de juiste toegang hebben. Eventuele ontbrekende of onjuiste gebruikersgegevens moeten worden onderzocht en gecorrigeerd.

Een belangrijke test is het testen van deprovisioning door een testgebruiker te verwijderen uit de Azure AD-groepstoewijzing en te verifiëren dat de gebruiker binnen 40 minuten (het standaard synchronisatie-interval) uit Databricks wordt verwijderd of uitgeschakeld, afhankelijk van de SCIM-configuratie. Deze test bevestigt dat de automatische deprovisioning correct werkt en dat vertrekkende medewerkers automatisch hun toegang verliezen.

Na de initiële setup synchroniseert Azure AD automatisch elke 40 minuten alle wijzigingen, inclusief nieuwe gebruikers, verwijderde gebruikers, attribuutupdates en wijzigingen in groepslidmaatschappen. Er is geen handmatige interventie meer nodig na de initiële configuratie, wat betekent dat het systeem volledig geautomatiseerd werkt en dat gebruikers automatisch toegang krijgen of verliezen op basis van hun Azure AD-groepslidmaatschappen.

**FASE 5: Multi-Factor Authentication (MFA) en Conditional Access Policies (Duur: 1-2 uur)**

De vijfde fase omvat de configuratie van Multi-Factor Authentication en Conditional Access-beleidsregels om aanvullende beveiligingslagen toe te voegen aan de Databricks-toegang. Deze configuratie begint met het maken van een Azure AD Conditional Access-beleidsregel die specifiek is voor Databricks. Beheerders navigeren naar Azure AD, vervolgens Security, dan Conditional Access, en selecteren 'Nieuw beleid' om een nieuw beleid te maken met de naam 'Databricks-MFA-Required'.

Bij het configureren van het beleid moet de doelgroep worden ingesteld op Cloud-apps, waarbij de 'Azure Databricks SCIM Provisioning Connector' Enterprise Application wordt geselecteerd. Dit zorgt ervoor dat het beleid alleen van toepassing is op Databricks-toegang en niet op andere applicaties in de organisatie. Door specifieke beleidsregels per applicatie te maken, kunnen organisaties verschillende beveiligingsniveaus toepassen op basis van de gevoeligheid van de data en applicatie.

De voorwaarden van het beleid moeten worden geconfigureerd op basis van de risicotolerantie van de organisatie. Een optionele benadering is om MFA alleen te vereisen vanaf niet-vertrouwde locaties, wat gebruikers op vertrouwde netwerken minder belast. De aanbevolen benadering is echter om ALTIJD MFA te vereisen voor Databricks-toegang, ongeacht de locatie. Dit biedt de hoogste beveiliging en elimineert het risico dat gecompromitteerde wachtwoorden worden gebruikt vanaf vertrouwde locaties.

Bij de Grant controls moet 'Multi-factor authentication vereisen' worden geselecteerd. Optioneel kunnen aanvullende controles worden toegevoegd, zoals 'Vereisen dat apparaat als compliant is gemarkeerd', wat beheerde apparaten afdwingt, of 'Vereisen dat apparaat is toegevoegd aan Hybrid Azure AD', wat alleen zakelijke apparaten toestaat. Deze aanvullende controles verhogen het beveiligingsniveau verder door ervoor te zorgen dat alleen beheerde en gecontroleerde apparaten toegang krijgen tot Databricks.

Session controls bieden de mogelijkheid om 'Aanmeldingsfrequentie' in te stellen, waarbij gebruikers elke X uren opnieuw moeten authenticeren. Voor hoogbeveiligde omgevingen wordt een frequentie van 8 uur aanbevolen, wat een balans biedt tussen beveiliging en gebruikerservaring. Deze instelling zorgt ervoor dat zelfs als een sessie wordt gecompromitteerd, de aanvaller na een bepaalde tijd opnieuw moet authenticeren, wat de impact van een gecompromitteerde sessie beperkt.

Nadat het beleid is geconfigureerd, moet het worden ingeschakeld door over te schakelen van 'Alleen rapportage' (testmodus) naar 'Aan' (afgedwongen). Direct na het inschakelen moet het beleid worden getest met een gebruikersaccount om te verifiëren dat MFA wordt gevraagd bij het inloggen op Databricks. Deze test bevestigt dat het beleid correct werkt en dat gebruikers de verwachte beveiligingscontroles ondergaan.

Optioneel kunnen aanvullende Conditional Access-beleidsregels worden geconfigureerd voor extra beveiliging. Deze kunnen onder meer het blokkeren van Databricks-toegang vanaf hoogrisicolanden omvatten, het vereisen van compliant apparaten, of het blokkeren van legacy-authenticatie, hoewel Databricks primair OAuth gebruikt en legacy-authenticatie minder relevant is. Deze aanvullende beleidsregels kunnen worden toegevoegd op basis van specifieke organisatorische beveiligingsvereisten.

**FASE 6: Group-Based Access Control Implementatie (Duur: 1 uur)**

De zesde fase betreft de implementatie van groepgebaseerd toegangsbeheer, wat een schaalbare en beheersbare manier biedt om toegang tot Databricks te beheren op basis van functies en verantwoordelijkheden. Het proces begint met het maken van Azure AD-beveiligingsgroepen voor verschillende Databricks-toegangsniveaus. Deze groepen moeten worden gestructureerd op basis van de benodigde toegang, zoals 'Databricks-Admins' voor workspace-beheerders, 'Databricks-DataEngineers' voor gebruikers die clusters kunnen maken en jobs kunnen uitvoeren, 'Databricks-DataAnalysts' voor gebruikers die alleen toegang hebben tot notebooks maar geen clusters kunnen maken, en 'Databricks-Viewers' voor gebruikers met alleen-lezen toegang tot dashboards.

Vervolgens moeten geschikte gebruikers worden toegewezen aan deze groepen op basis van hun functie en het principe van minimale rechten. Het principe van minimale rechten zorgt ervoor dat gebruikers alleen de toegang krijgen die zij nodig hebben om hun werk uit te voeren, wat het beveiligingsrisico beperkt. Indien mogelijk moeten dynamische groepslidmaatschapsregels worden gebruikt op basis van functietitel of afdelingsattributen voor automatische groepsbevolking. Dit vermindert de administratieve overhead en zorgt ervoor dat gebruikers automatisch de juiste toegang krijgen wanneer hun functie of afdeling verandert.

In de Databricks Admin Console moeten Azure AD-groepen worden gemapped naar Databricks-workspacegroepen. Deze mapping synchroniseert automatisch via SCIM, waarbij wijzigingen in Azure AD-groeplidmaatschappen binnen 40 minuten worden gereflecteerd in Databricks-machtigingen. Deze automatische synchronisatie zorgt ervoor dat toegangsbeheer gecentraliseerd blijft in Azure AD en dat wijzigingen automatisch worden doorgevoerd in Databricks zonder handmatige interventie.

Voor elke groep moeten de Databricks-entitlements worden gedefinieerd om te bepalen welke acties gebruikers kunnen uitvoeren. 'Databricks-Admins' krijgen workspace-adminprivileges, wat hen volledige controle geeft over de workspace. 'DataEngineers' krijgen de mogelijkheid om clusters te maken en onbeperkte compute te gebruiken, wat nodig is voor hun werk. 'DataAnalysts' krijgen de mogelijkheid om notebooks uit te voeren maar kunnen geen clusters maken, wat hun toegang beperkt tot wat zij nodig hebben. 'Viewers' krijgen alleen-lezen toegang tot dashboards, wat hen in staat stelt om rapporten te bekijken zonder wijzigingen aan te kunnen brengen.

Tot slot moet groepgebaseerde toegang worden getest door een gebruiker toe te voegen aan de 'DataEngineers'-groep in Azure AD, 40 minuten te wachten op synchronisatie, en te verifiëren dat de gebruiker clusters kan maken in Databricks. Vervolgens moet de gebruiker worden verwijderd uit de groep en moet worden geverifieerd dat de toegang binnen 40 minuten wordt ingetrokken. Deze test bevestigt dat de groepgebaseerde toegangscontrole correct werkt en dat wijzigingen in groeplidmaatschappen automatisch worden doorgevoerd in Databricks.

**FASE 7: Monitoring en Troubleshooting Setup (Duur: 1 uur)**

De zevende en laatste fase omvat de opzet van monitoring en troubleshooting-processen om ervoor te zorgen dat de SCIM-synchronisatie betrouwbaar blijft werken en dat problemen proactief worden opgelost. Het proces begint met het plannen van wekelijkse reviews van de Azure AD Provisioning logs, waarbij wordt gecontroleerd op synchronisatiefouten, mislukte gebruikersaanmaak en attribuutmappingproblemen. Deze reviews moeten proactief worden uitgevoerd voordat gebruikers klagen over toegangsproblemen, wat betekent dat beheerders regelmatig de logs moeten controleren en eventuele fouten moeten aanpakken zodra deze worden gedetecteerd.

Een kritieke monitoringcomponent is de implementatie van Azure Monitor-waarschuwingen voor SCIM-provisioningfouten. Deze waarschuwingen moeten Azure AD-auditlogs queryen op mislukte provisioninggebeurtenissen en beheerders onmiddellijk waarschuwen wanneer er problemen optreden. Langdurige SCIM-fouten betekenen dat nieuwe medewerkers geen automatische Databricks-toegang krijgen, wat kan leiden tot productiviteitsverlies en frustratie. Door onmiddellijke waarschuwingen te implementeren, kunnen beheerders problemen snel oplossen voordat zij impact hebben op gebruikers.

Voor troubleshooting moet een runbook of wiki worden gemaakt met veelvoorkomende SCIM-troubleshootingstappen. Dit document moet informatie bevatten over SCIM-tokenverlopen (tokens moeten elke 90 dagen worden geroteerd), connectiviteitsproblemen (firewallblokkades), attribuutconflicten (duplicate e-mailadressen) en groepsynchronisatievertragingen (kan tot 40 minuten duren). Dit runbook helpt beheerders om snel problemen te identificeren en op te lossen zonder uitgebreide research, wat de mean time to resolution aanzienlijk verkort.

Een belangrijk onderhoudsproces is het uitvoeren van kwartaalcontroles waarbij Azure AD-toegewezen gebruikers worden vergeleken met werkelijke Databricks-gebruikers om weesaccounts te detecteren. Weesaccounts zijn gebruikers die in Databricks bestaan maar niet in de Azure AD-toewijzing staan, wat meestal betekent dat zij handmatig zijn aangemaakt en de SCIM-synchronisatie hebben omzeild. Deze accounts vormen een beveiligingsrisico omdat zij niet worden beheerd via het gecentraliseerde identiteitsbeheersysteem en moeten worden verwijderd of gemigreerd naar Azure AD-beheerde accounts.

Tot slot moet disaster recovery worden getest door SCIM-tokenintrekking en -regeneratie te simuleren en handmatige gebruikersprovisioning fallback te testen voor het geval SCIM faalt. Deze tests bevestigen dat er een back-upplan is voor wanneer de automatische synchronisatie niet beschikbaar is en dat beheerders weten hoe zij handmatig gebruikers kunnen provisionen indien dit nodig is. Deze disaster recovery-procedures moeten worden gedocumenteerd en regelmatig worden getest om ervoor te zorgen dat zij up-to-date blijven en effectief zijn.

**Totale Implementatietijd**: De volledige Azure AD-integratie, inclusief Enterprise App-setup, SSO-configuratie, SCIM-provisioning, MFA- en Conditional Access-beleidsregels, groepsmapping en testing, duurt typisch 3 tot 5 uur. Voor bestaande Databricks-workspaces waarbij handmatig aangemaakte gebruikers moeten worden gemigreerd naar Azure AD-beheerde gebruikers, is een extra 1 tot 2 uur nodig. Deze migratie vereist coördinatie met gebruikers voor accountovergang om ervoor te zorgen dat zij geen toegang verliezen tijdens het migratieproces.

**Kosten**: Er zijn geen extra Databricks-kosten voor Azure AD-synchronisatie, omdat deze functionaliteit is inbegrepen in de Premium tier, die waarschijnlijk al vereist is voor andere functies. Voor Azure AD zijn Premium P1-licenties vereist (€5,40 per gebruiker per maand), maar deze zijn vaak al organisatiebreed beschikbaar voor Conditional Access. Er zijn geen kosten per synchronisatie. In totaal zijn er typisch geen incrementele kosten indien Azure AD P1 en Databricks Premium al zijn geïmplementeerd.

Monitoring

Gebruik PowerShell-script databricks-entra-id-sync.ps1 (functie Invoke-Monitoring) – Controleren.

Effectieve monitoring van de Microsoft Entra ID-synchronisatie met Azure Databricks is essentieel om ervoor te zorgen dat de integratie betrouwbaar blijft werken en dat problemen snel worden gedetecteerd en opgelost. Monitoring moet worden uitgevoerd op verschillende niveaus, van technische synchronisatielogs tot gebruikerservaring en compliance-verificatie. Een goed geïmplementeerd monitoringproces stelt beheerders in staat om proactief te reageren op problemen voordat deze impact hebben op gebruikers en om compliance-vereisten continu te waarborgen.

De primaire monitoringlocatie is de Azure AD Enterprise Apps-sectie, waar beheerders naar de Databricks Enterprise Application kunnen navigeren en de Provisioning logs kunnen bekijken. Deze logs bevatten gedetailleerde informatie over elke synchronisatiegebeurtenis, inclusief succesvolle gebruikersaanmaak, mislukte synchronisatiepogingen, attribuutupdates en groepslidmaatschapswijzigingen. Beheerders moeten regelmatig deze logs controleren op synchronisatiefouten en mislukte gebruikersaanmaak, omdat deze problemen kunnen wijzen op configuratieproblemen of technische problemen die moeten worden opgelost. Het aanbevolen monitoringinterval is wekelijks voor kritieke omgevingen en tweewekelijks voor minder kritieke omgevingen, waarbij speciale aandacht wordt besteed aan nieuwe gebruikers die niet correct worden geprovisioned of bestaande gebruikers die niet worden bijgewerkt wanneer hun attributen in Azure AD veranderen.

Een kritieke monitoringtaak is het valideren van de gebruikersaantal-synchronisatie tussen Azure AD en Databricks. Beheerders moeten regelmatig het aantal gebruikers in Azure AD dat is toegewezen aan de Databricks Enterprise Application vergelijken met het werkelijke aantal gebruikers in Databricks. Discrepanties kunnen wijzen op synchronisatieproblemen, weesaccounts die handmatig zijn aangemaakt, of gebruikers die niet correct zijn verwijderd tijdens deprovisioning. Deze validatie moet maandelijks worden uitgevoerd om ervoor te zorgen dat de gebruikersgegevens consistent blijven. Een effectieve methode is het exporteren van gebruikerslijsten uit beide systemen en deze te vergelijken met behulp van spreadsheetsoftware of geautomatiseerde scripts die automatisch discrepanties detecteren en rapporteren aan beheerders. Bij het identificeren van discrepanties moet eerst worden onderzocht of deze worden veroorzaakt door legitieme verschillen, zoals gebruikers die in een testomgeving bestaan maar niet in productie, of door daadwerkelijke synchronisatieproblemen die onmiddellijke aandacht vereisen.

Multi-Factor Authentication enforcement moet regelmatig worden getest om te verifiëren dat MFA correct wordt afgedwongen bij Databricks-aanmeldingen. Deze tests moeten worden uitgevoerd met verschillende gebruikersaccounts en vanaf verschillende locaties om ervoor te zorgen dat de Conditional Access-beleidsregels correct werken onder verschillende omstandigheden. Als MFA niet wordt afgedwongen wanneer dit zou moeten, kan dit wijzen op een probleem met de Conditional Access-configuratie of met de SAML SSO-instellingen. Beheerders moeten maandelijks een test uitvoeren waarbij wordt geprobeerd in te loggen op Databricks vanaf een niet-vertrouwde locatie of een niet-compliant apparaat om te verifiëren dat de beveiligingscontroles correct worden afgedwongen. Daarnaast moeten Conditional Access-insights regelmatig worden geraadpleegd om te zien hoeveel gebruikers zijn geblokkeerd door de beleidsregels en welke specifieke voorwaarden hebben geleid tot de blokkering. Deze inzichten helpen beheerders om te identificeren of de beleidsregels te restrictief zijn geconfigureerd en legitieme gebruikers blokkeren, of dat er beveiligingsbedreigingen zijn die moeten worden onderzocht.

Azure Monitor-waarschuwingen vormen een essentieel onderdeel van een effectief monitoringproces. Beheerders moeten waarschuwingen configureren die automatisch worden geactiveerd wanneer SCIM-provisioningfouten optreden, wanneer het aantal gesynchroniseerde gebruikers significant afwijkt van het verwachte aantal, of wanneer Conditional Access-beleidsregels herhaaldelijk falen voor specifieke gebruikers. Deze waarschuwingen moeten worden geconfigureerd om onmiddellijk e-mailmeldingen of Teams-berichten te versturen naar het beveiligingsteam, zodat problemen snel kunnen worden geïdentificeerd en opgelost voordat zij impact hebben op gebruikers. Een best practice is om verschillende waarschuwingsniveaus te configureren, waarbij kritieke fouten zoals volledige provisioningstilstand onmiddellijk worden gemeld, terwijl minder kritieke waarschuwingen zoals individuele gebruikerssynchronisatiefouten worden verzameld in dagelijkse samenvattingen.

SCIM-tokenbeheer vereist specifieke monitoring aandachtspunten, omdat verlopen tokens leiden tot volledige stilstand van de automatische gebruikerssynchronisatie. Beheerders moeten een proces implementeren waarbij SCIM-tokens worden gemonitord op expiratiedatum en minimaal 30 dagen voordat zij verlopen worden geroteerd. Een effectieve methode is het gebruik van Azure Key Vault met automatische rotatienotificaties of het instellen van kalenderherinneringen voor tokenrotatie. Tijdens de tokenrotatie moet de oude token eerst worden bijgewerkt in de Azure AD Enterprise Application Provisioning-configuratie voordat deze wordt ingetrokken in Databricks, om ervoor te zorgen dat er geen onderbreking is in de synchronisatie. Na de rotatie moet de verbinding worden getest en moeten de Provisioning logs worden gemonitord om te verifiëren dat de synchronisatie blijft werken met het nieuwe token.

Gebruikerservaring monitoring is even belangrijk als technische monitoring, omdat gebruikers vaak de eerste zijn die problemen detecteren wanneer zij niet kunnen inloggen of wanneer hun toegang niet correct werkt. Beheerders moeten een proces hebben voor het verzamelen en analyseren van gebruikersfeedback over toegangsproblemen, waarbij wordt geïdentificeerd of deze problemen worden veroorzaakt door synchronisatieproblemen, Conditional Access-beleidsregels, of andere technische problemen. Een best practice is het instellen van een helpdesk-categorie specifiek voor Databricks-toegangsproblemen, zodat deze problemen snel kunnen worden geïdentificeerd en toegewezen aan de juiste technische experts. Daarnaast moeten beheerders regelmatig communiceren met gebruikers om hen te informeren over belangrijke wijzigingen in toegangsbeheer of om proactief gebruikers te helpen die mogelijk problemen ondervinden met de nieuwe authenticatiemethoden.

Tot slot moeten beheerders regelmatig de compliance van Conditional Access-beleidsregels auditen om ervoor te zorgen dat alle vereiste beveiligingscontroles actief zijn en correct worden toegepast. Deze audits moeten controleren of MFA wordt afgedwongen, of apparaatcompliance-eisen worden nageleefd, of locatiegebaseerde beperkingen correct werken, en of risicogebaseerde authenticatie correct functioneert. Eventuele afwijkingen moeten worden onderzocht en gecorrigeerd om ervoor te zorgen dat de beveiligingspostuur op het vereiste niveau blijft. Kwartaalcontroles zijn aanbevolen voor compliance-audits, waarbij alle Conditional Access-beleidsregels worden gereviewd, getest en gedocumenteerd. Deze audits moeten worden uitgevoerd in samenwerking met het beveiligingsteam en compliance-officers om ervoor te zorgen dat alle organisatorische en regelgevende vereisten worden nageleefd. Documentatie van deze audits vormt een essentieel onderdeel van compliance-rapportage en helpt organisaties om aan te tonen dat zij proactief hun beveiligingscontroles monitoren en bijwerken wanneer dit nodig is.

Compliance en Auditing

Compliance met beveiligings- en privacystandaarden vormt een fundamentele vereiste voor Nederlandse overheidsorganisaties die werken met gevoelige data en kritieke systemen. De implementatie van Microsoft Entra ID-synchronisatie met Azure Databricks draagt direct bij aan de naleving van verschillende belangrijke beveiligings- en compliance-standaarden die relevant zijn voor de publieke sector. Deze maatregel adresseert specifieke controles en vereisten binnen verschillende frameworks, waardoor organisaties tijdens audits kunnen aantonen dat zij voldoen aan de gestelde eisen voor identiteits- en toegangsbeheer. Het belang van compliance strekt verder dan alleen het voldoen aan regelgevingsvereisten; het vormt ook een essentieel onderdeel van een defensieve beveiligingsstrategie waarbij geautomatiseerde controles en auditmechanismen bijdragen aan het beperken van beveiligingsrisico's en het waarborgen van operationele continuïteit.

Voor ISO 27001, de internationale standaard voor informatiebeveiligingsmanagement, voldoet deze implementatie aan meerdere kritieke controles. Controle A.9.2.1 (Gebruikersregistratie) vereist dat organisaties een formeel proces hebben voor het registreren en deregistreren van gebruikers, inclusief het bepalen van wie toegang mag verlenen en welke autorisaties vereist zijn. De automatische SCIM-provisioning zorgt ervoor dat nieuwe gebruikers automatisch worden geregistreerd in Databricks op basis van hun Azure AD-groepslidmaatschappen, wat een gecontroleerd en geautomatiseerd registratieproces biedt waarbij elke provisioning-actie wordt vastgelegd in auditlogs. Deze automatische registratie elimineert menselijke fouten en zorgt voor consistentie in het gebruikersregistratieproces. Daarnaast voldoet de implementatie aan controle A.9.2.6 (Verwijdering van toegangsrechten), die vereist dat toegangsrechten worden ingetrokken wanneer gebruikers de organisatie verlaten, hun rol verandert of hun functie-eisen niet langer toegang vereisen. De automatische deprovisioning via SCIM zorgt ervoor dat toegang onmiddellijk wordt ingetrokken wanneer een account wordt uitgeschakeld in Azure AD of wanneer een gebruiker uit relevante groepen wordt verwijderd, wat voldoet aan deze kritieke ISO 27001-vereiste. Deze geautomatiseerde deprovisioning voorkomt het ontstaan van weesaccounts en vermindert het risico op ongeautoriseerde toegang door voormalige medewerkers of externe partijen.

Voor NIS2, de Europese richtlijn voor netwerk- en informatiebeveiliging die van toepassing is op essentiële en belangrijke entiteiten, adresseert deze maatregel Artikel 21, dat specifiek betrekking heeft op identiteits- en toegangsbeheer. NIS2 vereist dat organisaties robuuste identiteits- en toegangsbeheerprocessen implementeren om kritieke infrastructuur te beschermen tegen cyberdreigingen. De richtlijn benadrukt het belang van gecentraliseerd identiteitsbeheer en het gebruik van sterke authenticatiemechanismen voor toegang tot gevoelige systemen. De gecentraliseerde identiteitsintegratie tussen Azure AD en Databricks, inclusief Multi-Factor Authentication en Conditional Access, biedt precies de vereiste beveiligingscontroles die NIS2 vereist voor identiteitsbeheer in kritieke systemen. Door gebruik te maken van enterprise-grade identiteitsoplossingen zoals Azure AD, kunnen organisaties aantonen dat zij voldoen aan de NIS2-vereisten voor beveiliging van kritieke infrastructuur. De implementatie van Conditional Access-beleidsregels stelt organisaties in staat om toegangscontroles te implementeren op basis van risicofactoren zoals locatie, apparaatcompliance en gebruikersgedrag, wat aansluit bij de NIS2-vereisten voor adaptieve beveiligingscontroles.

Voor de BIO, de Baseline Informatiebeveiliging Overheid die de minimale beveiligingsniveaus definieert voor Nederlandse overheidsorganisaties, voldoet deze implementatie aan Thema 11.02 (Identiteitsbeheer), dat specifieke eisen stelt aan hoe organisaties identiteiten en toegangsrechten beheren. De BIO vereist dat identiteitsbeheer wordt uitgevoerd op basis van een centraal beheersmodel waarbij gebruikersidentiteiten worden beheerd vanuit één centrale locatie en toegangsrechten worden toegekend op basis van functie en verantwoordelijkheden. De automatische provisioning en deprovisioning, gecombineerd met gecentraliseerd identiteitsbeheer via Azure AD, voldoen volledig aan de BIO-vereisten voor geautomatiseerd en gecontroleerd identiteitsbeheer. De implementatie van MFA en Conditional Access biedt aanvullende beveiligingslagen die de BIO vereist voor toegang tot gevoelige systemen, waarbij multi-factor authenticatie verplicht is voor toegang tot systemen met classificatie 'confidentieel' of hoger. De BIO benadrukt ook het belang van auditlogging en traceerbaarheid, wat wordt gerealiseerd door de uitgebreide auditlogs die worden gegenereerd door Azure AD en Databricks voor alle authenticatie- en provisioning-gebeurtenissen.

Voor SOC 2, het Service Organization Control 2-framework dat wordt gebruikt voor het beoordelen van de beveiligingscontroles van serviceorganisaties, adresseert deze maatregel de user provisioning controls die vereist zijn voor compliance. SOC 2 vereist dat organisaties gecontroleerde processen hebben voor het provisionen en deprovisionen van gebruikers, waarbij duidelijk moet zijn wie toegang heeft verleend, wanneer dit is gebeurd en op basis van welke autorisatie. De geautomatiseerde SCIM-synchronisatie biedt een volledig traceerbaar proces waarbij elke provisioning-actie wordt vastgelegd in auditlogs met tijdsstempels, gebruikersidentificatie en de reden voor de toegangsverlening. De auditlogs die worden gegenereerd door Azure AD en Databricks bieden het vereiste bewijs voor SOC 2-audits, waarbij auditors kunnen verifiëren dat gebruikersprovisioning correct en gecontroleerd verloopt zonder afhankelijk te zijn van handmatige processen die gevoelig zijn voor menselijke fouten. SOC 2 Type II-audits vereisen dat organisaties kunnen aantonen dat controles consistent werken over een periode van minimaal zes maanden, wat wordt gefaciliteerd door de geautomatiseerde en gecontroleerde aard van SCIM-provisioning die consistent gedrag garandeert.

Om compliance te handhaven en te waarborgen dat de implementatie blijft voldoen aan de vereisten van deze frameworks, moeten organisaties regelmatig audits uitvoeren waarbij de effectiviteit en correctheid van de identiteitsintegratie worden geverifieerd. Deze audits moeten systematisch controleren of alle gebruikers correct zijn geprovisioned in Databricks op basis van hun Azure AD-groepslidmaatschappen, of deprovisioning correct werkt wanneer gebruikers uit groepen worden verwijderd of wanneer hun accounts worden uitgeschakeld, of Multi-Factor Authentication wordt afgedwongen voor alle Databricks-toegang zoals geconfigureerd in Conditional Access-beleidsregels, en of alle auditlogs correct worden bijgehouden en beschikbaar zijn voor compliance-rapportage. Tijdens audits moet ook worden gecontroleerd of er geen handmatig aangemaakte Databricks-accounts bestaan die buiten de SCIM-synchronisatie vallen, aangezien deze accounts niet voldoen aan de compliance-vereisten voor gecentraliseerd identiteitsbeheer. Eventuele afwijkingen moeten worden gedocumenteerd, geanalyseerd om de onderliggende oorzaak te identificeren, en gecorrigeerd om ervoor te zorgen dat de organisatie blijft voldoen aan de compliance-vereisten. Kwartaalcontroles zijn aanbevolen voor compliance-audits, waarbij alle aspecten van de identiteitsintegratie worden gereviewd, getest en gedocumenteerd voor auditdoeleinden.

Remediatie

Gebruik PowerShell-script databricks-entra-id-sync.ps1 (functie Invoke-Remediation) – Herstellen.

Wanneer Microsoft Entra ID-synchronisatie met Azure Databricks niet correct is geconfigureerd of wanneer er problemen optreden met de SCIM-provisioning of Single Sign-On, is het essentieel om systematisch te troubleshooten en de juiste remediatiestappen uit te voeren. Remediatie van identiteitsintegratieproblemen vereist een gestructureerde aanpak waarbij eerst wordt vastgesteld wat er precies misgaat, vervolgens de onderliggende oorzaak wordt geïdentificeerd, en ten slotte de juiste correctieve acties worden uitgevoerd om de integratie te herstellen.

Het eerste diagnostische gebied betreft SCIM-provisioningfouten, die zich kunnen manifesteren als gebruikers die niet automatisch worden gesynchroniseerd van Azure AD naar Databricks, of als synchronisatie aanvankelijk werkt maar later stopt. Wanneer gebruikers niet worden geprovisioned, moet er eerst worden gecontroleerd of de Azure AD Enterprise Application correct is geconfigureerd met de juiste SCIM-endpoint-URL en een geldig SCIM-token. SCIM-tokens vervallen na 90 dagen en moeten worden geroteerd voordat zij verlopen om onderbrekingen in de synchronisatie te voorkomen. Beheerders moeten de Provisioning logs in Azure AD Enterprise Apps controleren op specifieke foutmeldingen die aangeven wat er precies misgaat, zoals 'Invalid credentials' wat wijst op een verlopen of onjuist SCIM-token, 'Connection timeout' wat kan wijzen op firewallblokkades die de SCIM-endpoint blokkeren, of 'User already exists' wat kan optreden wanneer er conflicterende gebruikersidentiteiten zijn.

Voor het oplossen van SCIM-provisioningfouten moet er eerst worden geverifieerd dat het SCIM-token nog geldig is door de tokenexpiratiedatum te controleren in de Databricks Admin Console. Indien het token is verlopen of binnenkort verloopt, moet er een nieuw token worden gegenereerd en moet dit worden bijgewerkt in de Azure AD Enterprise Application Provisioning-configuratie. Het oude token moet vervolgens worden ingetrokken in Databricks om de beveiliging te waarborgen. Vervolgens moet de verbinding opnieuw worden getest via de 'Test Connection' functie in Azure AD om te verifiëren dat de nieuwe tokenconfiguratie correct werkt. Als de verbindingstest slaagt maar gebruikers nog steeds niet worden gesynchroniseerd, moet de Provisioning Status worden uit- en weer ingeschakeld om een nieuwe initiële synchronisatie te forceren.

Firewallproblemen vormen een andere veelvoorkomende oorzaak van SCIM-provisioningfouten. Azure AD maakt gebruik van specifieke IP-adressen voor SCIM-provisioning, en als deze IP-adressen worden geblokkeerd door Databricks-workspace-firewallregels of netwerksecurity-groepen, kan de synchronisatie falen. Om dit op te lossen, moeten beheerders de Azure AD IP-bereiken voor provisioning identificeren en ervoor zorgen dat deze worden toegestaan in alle relevante firewallregels. Daarnaast moet worden gecontroleerd of er geen netwerksecurity-groepen zijn geconfigureerd die uitgaand verkeer van Azure AD naar de Databricks SCIM-endpoint blokkeren. In sommige gevallen kan het nodig zijn om een firewallexception te maken specifiek voor Azure AD SCIM-provisioning IP-adressen om de connectiviteit te herstellen.

Single Sign-On problemen kunnen zich voordoen wanneer gebruikers niet kunnen inloggen op Databricks via Azure AD, of wanneer zij worden omgeleid naar een foutpagina in plaats van naar Databricks. De meest voorkomende oorzaak van SSO-fouten is onjuiste SAML-configuratie, waarbij de Azure AD SAML-metadata XML niet correct is geüpload naar Databricks, of waarbij de SAML-attribuutmappingen niet correct zijn geconfigureerd. Om SSO-problemen op te lossen, moeten beheerders eerst de SAML-configuratie in beide systemen verifiëren, waarbij wordt gecontroleerd of de Assertion Consumer Service-URL in Azure AD overeenkomt met de Databricks SSO-endpoint, en of de SAML-ondertekeningscertificaat niet is verlopen. Verlopen certificaten moeten worden vernieuwd in Azure AD en de nieuwe metadata XML moet opnieuw worden gedownload en geüpload naar Databricks.

Een andere veelvoorkomende SSO-probleem betreft attribuutconflicten, waarbij Azure AD-gebruikersattributen niet correct worden gemapped naar Databricks-gebruikersattributen, wat resulteert in mislukte authenticatiepogingen. Om dit op te lossen, moeten beheerders de SAML-claims configureren in Azure AD om ervoor te zorgen dat de juiste gebruikersinformatie wordt verzonden naar Databricks, inclusief e-mailadres, gebruikersnaam en optioneel groepslidmaatschappen. De Databricks SSO-configuratie moet vervolgens worden bijgewerkt om deze claims correct te ontvangen en te mappen naar de juiste gebruikersattributen. Na configuratiewijzigingen moet SSO opnieuw worden getest met een testgebruikersaccount om te verifiëren dat de attribuutmapping correct werkt.

Gebruikerssynchronisatieproblemen kunnen optreden wanneer gebruikers wel worden geprovisioned in Databricks maar niet de juiste groepsmachtigingen hebben, of wanneer groepslidmaatschappen niet correct worden gesynchroniseerd. Dit kan gebeuren wanneer Azure AD-groepen niet correct zijn toegewezen aan de Databricks Enterprise Application, of wanneer de SCIM-attribuutmappings voor groepen niet correct zijn geconfigureerd. Om dit op te lossen, moeten beheerders eerst verifiëren dat alle relevante Azure AD-groepen daadwerkelijk zijn toegewezen aan de Enterprise Application en dat de provisioning scope is ingesteld op 'Alleen toegewezen gebruikers en groepen synchroniseren' of 'Alle gebruikers en groepen synchroniseren' afhankelijk van de organisatorische vereisten. Vervolgens moet worden gecontroleerd of de groepsmappings in SCIM zijn geconfigureerd om groepslidmaatschappen correct over te dragen van Azure AD naar Databricks.

Deprovisioningproblemen vormen een kritiek beveiligingsrisico wanneer vertrekkende medewerkers hun Databricks-toegang niet automatisch verliezen wanneer hun Azure AD-account wordt uitgeschakeld. Dit kan gebeuren wanneer de SCIM-provisioning configuratie niet correct is ingesteld om gebruikers te verwijderen wanneer zij uit Azure AD-groepen worden verwijderd, of wanneer er handmatig aangemaakte Databricks-accounts zijn die niet zijn gekoppeld aan Azure AD-identiteiten. Om dit op te lossen, moeten beheerders eerst de Provisioning-configuratie in Azure AD controleren om te verifiëren dat de 'Delete users' optie is ingeschakeld, wat ervoor zorgt dat gebruikers automatisch worden verwijderd uit Databricks wanneer zij uit de toegewezen Azure AD-groepen worden verwijderd. Daarnaast moet een audit worden uitgevoerd om handmatig aangemaakte Databricks-accounts te identificeren die niet via SCIM worden beheerd, en deze accounts moeten worden gemigreerd naar Azure AD-beheerde accounts of worden verwijderd als zij niet langer nodig zijn.

Conditional Access-beleidsregels kunnen problemen veroorzaken wanneer zij te restrictief zijn geconfigureerd, wat resulteert in legitieme gebruikers die geen toegang krijgen tot Databricks, of wanneer zij niet worden afgedwongen, wat beveiligingsrisico's creëert. Om Conditional Access-problemen op te lossen, moeten beheerders eerst de Conditional Access-insights gebruiken in Azure AD om te zien welke gebruikers worden geblokkeerd en waarom, waarbij wordt gecontroleerd of de beleidsregels correct worden geëvalueerd en toegepast. Als legitieme gebruikers worden geblokkeerd, moeten de beleidsvoorwaarden worden aangepast, zoals het toevoegen van vertrouwde locaties aan de uitzonderingslijst of het aanpassen van apparaatcompliancevereisten. Als Conditional Access-beleidsregels niet worden afgedwongen, moet worden gecontroleerd of de Enterprise Application correct is geconfigureerd om Conditional Access te respecteren, en of de beleidsregels daadwerkelijk zijn ingeschakeld en niet alleen in 'Alleen rapportage' modus staan.

Tot slot is het essentieel om een gestructureerd remediatieproces te hebben voor wanneer volledige integratieproblemen optreden die een herconfiguratie vereisen. In dergelijke gevallen moet eerst een backup worden gemaakt van alle huidige configuratie-instellingen, inclusief SCIM-tokens, SAML-certificaten en groepstoewijzingen, zodat deze later kunnen worden hersteld indien nodig. Vervolgens moet de integratie stap voor stap opnieuw worden geconfigureerd, beginnend met de Enterprise Application-registratie, gevolgd door SSO-configuratie, SCIM-provisioning, en tot slot Conditional Access-beleidsregels. Na elke stap moet de configuratie worden getest voordat naar de volgende stap wordt overgegaan, om ervoor te zorgen dat problemen snel worden geïdentificeerd en opgelost voordat zij zich ophopen en complexere troubleshooting vereisen.

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 Azure Databricks: Entra ID Users and Groups Synchronization .DESCRIPTION CIS Azure Foundations Benchmark - Control 3.1.4 Controleert of Azure Databricks workspaces zijn geconfigureerd voor SCIM (System for Cross-domain Identity Management) provisioning met Microsoft Entra ID (voorheen Azure AD). Dit zorgt voor geautomatiseerde sync van gebruikers en groepen. Waarom is deze control belangrijk? - Geautomatiseerd identity lifecycle management - Consistente toegangsbeheer tussen Entra ID en Databricks - Automatische deprovisioning bij ontslag/rol wijziging - Vermindert risico op orphaned accounts .NOTES Filename: databricks-entra-id-sync.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/analytics/databricks-entra-id-sync.json CIS Control: 3.1.4 .PARAMETER WhatIf Toont wat het script zou doen zonder daadwerkelijk wijzigingen door te voeren .PARAMETER Monitoring Voert compliance check uit en toont gedetailleerd rapport .PARAMETER Remediation Toont handmatige instructies voor SCIM configuratie .PARAMETER Revert Draait wijzigingen terug (niet van toepassing voor dit script) .EXAMPLE .\databricks-entra-id-sync.ps1 Voert basis compliance check uit .EXAMPLE .\databricks-entra-id-sync.ps1 -Monitoring Toont gedetailleerd compliance rapport .EXAMPLE .\databricks-entra-id-sync.ps1 -Remediation Toont handmatige configuratie instructies voor SCIM #> # ============================================================================ # REQUIREMENTS # ============================================================================ #Requires -Version 5.1 #Requires -Modules Az.Accounts #Requires -Modules Az.Databricks #Requires -Modules Az.Resources #Requires -Modules Microsoft.Graph.Authentication #Requires -Modules Microsoft.Graph.Applications # ============================================================================ # PARAMETERS # ============================================================================ [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert ) # ============================================================================ # GLOBAL VARIABLES # ============================================================================ $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Azure Databricks: Entra ID SCIM Sync" # ============================================================================ # FUNCTION: Connect-RequiredServices # ============================================================================ function Connect-RequiredServices { <# .SYNOPSIS Verbind met Azure en Microsoft Graph met de benodigde permissions .DESCRIPTION Controleert of er al actieve connecties zijn. Indien niet, maakt het nieuwe connecties aan. #> function Invoke-Revert { Write-Host "`n⚠️ Revert wordt niet ondersteund voor dit script" -ForegroundColor Yellow Write-Host " SCIM provisioning moet handmatig worden uitgeschakeld:" -ForegroundColor Yellow Write-Host " 1. Azure Portal → Entra ID → Enterprise Applications" -ForegroundColor Gray Write-Host " 2. Selecteer Databricks SCIM app" -ForegroundColor Gray Write-Host " 3. Provisioning → Provisioning Status: Off`n" -ForegroundColor Gray } try { # Check Azure connectie $azContext = Get-AzContext if (-not $azContext) { Write-Verbose "Connecting to Azure..." Connect-AzAccount | Out-Null } else { Write-Verbose "Already connected to Azure as $($azContext.Account.Id)" } # Check Graph connectie $mgContext = Get-MgContext if (-not $mgContext) { Write-Verbose "Connecting to Microsoft Graph..." Connect-MgGraph -Scopes @( "Application.Read.All", "Directory.Read.All" ) -NoWelcome | Out-Null } else { Write-Verbose "Already connected to Microsoft Graph" } } catch { Write-Error "Failed to connect to required services: $_" throw } } # ============================================================================ # FUNCTION: Test-Compliance # ============================================================================ function Test-Compliance { <# .SYNOPSIS Test of Databricks workspaces SCIM provisioning hebben geconfigureerd .DESCRIPTION Controleert of er een Databricks Enterprise Application in Entra ID bestaat met SCIM provisioning. Dit kan alleen via Graph API worden gecontroleerd, niet via de Databricks workspace properties zelf. .OUTPUTS PSCustomObject met compliance status en details #> Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "databricks-entra-id-sync" PolicyName = $PolicyName IsCompliant = $false TotalResources = 0 CompliantCount = 0 NonCompliantCount = 0 Details = @() Recommendations = @() } function Invoke-Revert { Write-Host "`n⚠️ Revert wordt niet ondersteund voor dit script" -ForegroundColor Yellow Write-Host " SCIM provisioning moet handmatig worden uitgeschakeld:" -ForegroundColor Yellow Write-Host " 1. Azure Portal → Entra ID → Enterprise Applications" -ForegroundColor Gray Write-Host " 2. Selecteer Databricks SCIM app" -ForegroundColor Gray Write-Host " 3. Provisioning → Provisioning Status: Off`n" -ForegroundColor Gray } try { # Haal alle Databricks workspaces op Write-Verbose "Retrieving all Databricks workspaces..." $workspaces = Get-AzDatabricksWorkspace -ErrorAction SilentlyContinue if (-not $workspaces) { $result.Details += "Geen Databricks workspaces gevonden in dit subscription" $result.IsCompliant = $true return $result } $result.TotalResources = @($workspaces).Count # Haal Databricks Enterprise Applications op uit Entra ID Write-Verbose "Checking Entra ID for Databricks Enterprise Applications..." function Invoke-Revert { Write-Host "`n⚠️ Revert wordt niet ondersteund voor dit script" -ForegroundColor Yellow Write-Host " SCIM provisioning moet handmatig worden uitgeschakeld:" -ForegroundColor Yellow Write-Host " 1. Azure Portal → Entra ID → Enterprise Applications" -ForegroundColor Gray Write-Host " 2. Selecteer Databricks SCIM app" -ForegroundColor Gray Write-Host " 3. Provisioning → Provisioning Status: Off`n" -ForegroundColor Gray } try { # Zoek naar Databricks apps in Entra ID $servicePrincipals = Get-MgServicePrincipal -Filter "startswith(displayName, 'Azure Databricks')" -All -ErrorAction SilentlyContinue if ($servicePrincipals) { Write-Verbose "Found $($servicePrincipals.Count) Databricks Enterprise Application(s)" foreach ($workspace in $workspaces) { # Voor elke workspace proberen we te bepalen of SCIM is ingeschakeld # Dit is complex omdat de koppeling tussen workspace en Enterprise App # niet direct uit de API te halen is # We markeren dit als "manual verification required" $result.NonCompliantCount++ $result.Details += "⚠️ Workspace '$($workspace.Name)' vereist handmatige verificatie van SCIM configuratie" } $result.Recommendations += "Verifieer handmatig in Entra ID Enterprise Applications of SCIM provisioning actief is" $result.Recommendations += "Voor elke Databricks workspace moet een Enterprise Application bestaan met SCIM" } else { # Geen Databricks apps gevonden foreach ($workspace in $workspaces) { $result.NonCompliantCount++ $result.Details += "✗ Workspace '$($workspace.Name)': Geen Databricks Enterprise Application gevonden in Entra ID" } $result.Recommendations += "Configureer Azure Databricks SCIM Provisioning Enterprise Application in Entra ID" } } catch { Write-Verbose "Could not check Microsoft Graph: $($_.Exception.Message)" $result.Details += "⚠️ Kon Entra ID niet controleren - handmatige verificatie vereist" $result.Recommendations += "Controleer handmatig in Azure Portal → Entra ID → Enterprise Applications" } # Bepaal overall compliance # Voor deze control is handmatige verificatie altijd nodig $result.IsCompliant = $false $result.Recommendations += "BELANGRIJK: SCIM configuratie vereist handmatige setup in Entra ID Portal" $result.Recommendations += "Run met -Remediation voor gedetailleerde configuratie instructies" } catch { $result.Details += "ERROR: $($_.Exception.Message)" $result.Recommendations += "Controleer of Microsoft.Graph modules zijn geïnstalleerd" $result.Recommendations += "Controleer of je voldoende rechten hebt op Entra ID" } return $result } # ============================================================================ # FUNCTION: Invoke-Remediation # ============================================================================ function Invoke-Remediation { <# .SYNOPSIS Toont handmatige instructies voor SCIM configuratie .DESCRIPTION SCIM provisioning kan niet automatisch worden geconfigureerd via PowerShell. Dit vereist handmatige configuratie in Azure Portal. Dit script toont gedetailleerde stap-voor-stap instructies. #> Write-Host "`nStarting remediation for: $PolicyName..." -ForegroundColor Cyan Write-Host "=" * 80 -ForegroundColor Cyan Write-Host "`n⚠️ BELANGRIJKE OPMERKING:" -ForegroundColor Yellow Write-Host " SCIM provisioning kan NIET automatisch worden geconfigureerd" -ForegroundColor Yellow Write-Host " Dit vereist handmatige configuratie in Azure Portal`n" -ForegroundColor Yellow # Haal workspaces op $workspaces = Get-AzDatabricksWorkspace -ErrorAction SilentlyContinue if (-not $workspaces) { Write-Host "Geen Databricks workspaces gevonden" -ForegroundColor Gray return } Write-Host "`n📋 STAP-VOOR-STAP CONFIGURATIE INSTRUCTIES:" -ForegroundColor Cyan Write-Host "=" * 80 -ForegroundColor Cyan Write-Host "`n1️⃣ ENTRA ID ENTERPRISE APPLICATION SETUP:" -ForegroundColor White Write-Host " • Open Azure Portal → Microsoft Entra ID" -ForegroundColor Gray Write-Host " • Ga naar Enterprise Applications → New Application" -ForegroundColor Gray Write-Host " • Zoek 'Azure Databricks SCIM Provisioning Connector'" -ForegroundColor Gray Write-Host " • Klik 'Create' om de applicatie toe te voegen" -ForegroundColor Gray Write-Host " • Geef een herkenbare naam (bijv. 'Databricks-Production-SCIM')" -ForegroundColor Gray Write-Host "`n2️⃣ DATABRICKS API TOKEN GENEREREN:" -ForegroundColor White Write-Host " Voor elke workspace:" -ForegroundColor Gray foreach ($workspace in $workspaces) { Write-Host "`n Workspace: $($workspace.Name)" -ForegroundColor Cyan Write-Host " • Open Databricks workspace: https://$($workspace.WorkspaceUrl)" -ForegroundColor DarkGray Write-Host " • User Settings → Developer → Access Tokens" -ForegroundColor DarkGray Write-Host " • Genereer nieuwe token met naam 'SCIM-Provisioning'" -ForegroundColor DarkGray Write-Host " • Lifetime: 90 dagen (of volgens beleid)" -ForegroundColor DarkGray Write-Host " • BEWAAR TOKEN VEILIG - je ziet hem maar 1x!" -ForegroundColor DarkGray } Write-Host "`n3️⃣ SCIM CONFIGURATIE IN ENTERPRISE APPLICATION:" -ForegroundColor White Write-Host " • Ga terug naar Entra ID → Enterprise Applications → jouw SCIM app" -ForegroundColor Gray Write-Host " • Klik 'Provisioning' in het menu" -ForegroundColor Gray Write-Host " • Klik 'Get started'" -ForegroundColor Gray Write-Host " • Provisioning Mode: 'Automatic'" -ForegroundColor Gray Write-Host " • Admin Credentials:" -ForegroundColor Gray Write-Host " - Tenant URL: https://<workspace-url>/api/2.0/preview/scim" -ForegroundColor DarkGray Write-Host " - Secret Token: <jouw databricks token>" -ForegroundColor DarkGray Write-Host " • Klik 'Test Connection' om te valideren" -ForegroundColor Gray Write-Host " • Klik 'Save'" -ForegroundColor Gray Write-Host "`n4️⃣ SCIM PROVISIONING MAPPINGS:" -ForegroundColor White Write-Host " • Onder Provisioning → Mappings" -ForegroundColor Gray Write-Host " • Configureer 'Provision Azure Active Directory Users'" -ForegroundColor Gray Write-Host " • Configureer 'Provision Azure Active Directory Groups'" -ForegroundColor Gray Write-Host " • Review en pas attribute mappings aan indien nodig" -ForegroundColor Gray Write-Host " • Minimaal vereiste mappings:" -ForegroundColor Gray Write-Host " - User Principal Name → userName" -ForegroundColor DarkGray Write-Host " - Display Name → displayName" -ForegroundColor DarkGray Write-Host " - Email → emails[type eq 'work'].value" -ForegroundColor DarkGray Write-Host " - accountEnabled → active" -ForegroundColor DarkGray Write-Host "`n5️⃣ SCOPE CONFIGURATION:" -ForegroundColor White Write-Host " • Onder Provisioning → Settings → Scope" -ForegroundColor Gray Write-Host " • Kies:" -ForegroundColor Gray Write-Host " - 'Sync only assigned users and groups' (aanbevolen)" -ForegroundColor DarkGray Write-Host " - Of 'Sync all users and groups' (alleen voor test)" -ForegroundColor DarkGray Write-Host "`n6️⃣ ASSIGN USERS EN GROUPS:" -ForegroundColor White Write-Host " • Ga naar Enterprise Application → Users and groups" -ForegroundColor Gray Write-Host " • Klik 'Add user/group'" -ForegroundColor Gray Write-Host " • Selecteer de Entra ID groepen die toegang moeten krijgen" -ForegroundColor Gray Write-Host " • Assign" -ForegroundColor Gray Write-Host "`n7️⃣ START PROVISIONING:" -ForegroundColor White Write-Host " • Ga terug naar Provisioning" -ForegroundColor Gray Write-Host " • Provisioning Status: 'On'" -ForegroundColor Gray Write-Host " • Save" -ForegroundColor Gray Write-Host " • Initiële sync start automatisch (kan 20-40 min duren)" -ForegroundColor Gray Write-Host "`n8️⃣ MONITORING EN VALIDATIE:" -ForegroundColor White Write-Host " • Provisioning → Provisioning logs" -ForegroundColor Gray Write-Host " • Controleer of users/groups succesvol zijn aangemaakt" -ForegroundColor Gray Write-Host " • Check Audit logs voor eventuele errors" -ForegroundColor Gray Write-Host " • In Databricks workspace → Admin Console → Users" -ForegroundColor Gray Write-Host " • Verifieer dat Entra ID users aanwezig zijn" -ForegroundColor Gray Write-Host "`n9️⃣ LIFECYCLE MANAGEMENT:" -ForegroundColor White Write-Host " • Provisioning gebeurt nu automatisch:" -ForegroundColor Gray Write-Host " - Nieuwe users in Entra ID → auto provisioned in Databricks" -ForegroundColor DarkGray Write-Host " - User disabled in Entra ID → auto disabled in Databricks" -ForegroundColor DarkGray Write-Host " - User removed → auto deprovisioned" -ForegroundColor DarkGray Write-Host " • Sync interval: standaard elke 40 minuten" -ForegroundColor Gray Write-Host "`n🔟 BEST PRACTICES:" -ForegroundColor White Write-Host " • Gebruik dedicated service account voor SCIM token generatie" -ForegroundColor Gray Write-Host " • Stel token expiry alerts in" -ForegroundColor Gray Write-Host " • Monitor provisioning errors regelmatig" -ForegroundColor Gray Write-Host " • Test eerst in non-prod workspace" -ForegroundColor Gray Write-Host " • Documenteer group mappings (Entra ID group → Databricks group)" -ForegroundColor Gray Write-Host "`n📚 DOCUMENTATIE:" -ForegroundColor Cyan Write-Host " Microsoft Docs: https://learn.microsoft.com/en-us/azure/databricks/administration-guide/users-groups/scim/aad" -ForegroundColor Blue Write-Host " Databricks Docs: https://docs.databricks.com/administration-guide/users-groups/scim/aad.html" -ForegroundColor Blue Write-Host "`n⚠️ Test deze configuratie eerst in een test-workspace!" -ForegroundColor Yellow } # ============================================================================ # FUNCTION: Invoke-Monitoring # ============================================================================ function Invoke-Monitoring { <# .SYNOPSIS Voert compliance check uit en toont gedetailleerd rapport .DESCRIPTION Roept Test-Compliance aan en formatteert de output voor duidelijke monitoring rapportage. #> $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Workspaces gecontroleerd: $($result.TotalResources)" -ForegroundColor White Write-Host "Compliant: $($result.CompliantCount)" -ForegroundColor Green $color = if ($result.NonCompliantCount -gt 0) { "Red" } else { "Green" } Write-Host "Non-compliant: $($result.NonCompliantCount)" -ForegroundColor $color if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow foreach ($detail in $result.Details) { Write-Host " $detail" -ForegroundColor Gray } } if ($result.Recommendations) { Write-Host "`nAanbevelingen:" -ForegroundColor Yellow foreach ($recommendation in $result.Recommendations) { Write-Host " → $recommendation" -ForegroundColor Cyan } } Write-Host "`n⚠️ LET OP: Deze control vereist handmatige verificatie in Azure Portal" -ForegroundColor Yellow return $result } # ============================================================================ # MAIN EXECUTION BLOCK # ============================================================================ function Invoke-Revert { Write-Host "`n⚠️ Revert wordt niet ondersteund voor dit script" -ForegroundColor Yellow Write-Host " SCIM provisioning moet handmatig worden uitgeschakeld:" -ForegroundColor Yellow Write-Host " 1. Azure Portal → Entra ID → Enterprise Applications" -ForegroundColor Gray Write-Host " 2. Selecteer Databricks SCIM app" -ForegroundColor Gray Write-Host " 3. Provisioning → Provisioning Status: Off`n" -ForegroundColor Gray } try { # Stap 1: Verbind met Azure en Graph Connect-RequiredServices # Stap 2: Bepaal actie op basis van parameters if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "`n=== WHATIF MODE ===" -ForegroundColor Yellow Write-Host "Zou remediatie instructies tonen voor: $PolicyName" -ForegroundColor Yellow Write-Host "LET OP: Dit script voert GEEN automatische remediatie uit" -ForegroundColor Yellow Write-Host "SCIM configuratie vereist handmatige setup in Azure Portal" -ForegroundColor Yellow Write-Host "===================`n" -ForegroundColor Yellow } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { # Standaard: simpele compliance check $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "Compliance Check: $PolicyName" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Status: ⚠️ HANDMATIGE VERIFICATIE VEREIST" -ForegroundColor Yellow Write-Host "`nDeze control kan niet volledig automatisch worden gecontroleerd." -ForegroundColor Gray Write-Host "Verifieer handmatig in Azure Portal of SCIM provisioning actief is." -ForegroundColor Gray Write-Host "`nRun met -Monitoring voor gedetailleerd rapport" -ForegroundColor Yellow Write-Host "Run met -Remediation voor configuratie instructies" -ForegroundColor Yellow } } catch { Write-Error "An error occurred: $_" Write-Error $_.ScriptStackTrace exit 1 }

Risico zonder implementatie

Risico zonder implementatie
High: Wanneer Azure AD-synchronisatie en Single Sign-On niet worden geïmplementeerd voor Databricks-workspaces, en dus lokale Databricks gebruikersnaam/wachtwoord-authenticatie wordt gebruikt, ontstaan ernstige beveiligings- en compliance-risico's. Afzonderlijke Databricks-inloggegevens die los staan van zakelijke Azure AD-identiteiten creëren een significant phishingrisico omdat gebruikers een apart wachtwoord moeten onthouden specifiek voor Databricks, wat leidt tot zwakke wachtwoorden (vaak hergebruik van andere wachtwoorden), wachtwoorden in platte tekst notities of wachtwoordbeheerders buiten IT-controle, en verhoogde gevoeligheid voor credential phishing waarbij aanvallers nep-Databricks-aanmeldingspagina's kunnen maken zonder dat moderne authenticatiebeschermingen zoals Conditional Access ingrijpen. Multi-Factor Authentication (MFA) kan NIET worden afgedwongen op native Databricks-aanmeldingen, wat betekent dat gecompromitteerde wachtwoorden onmiddellijk volledige workspace-toegang geven zonder tweedefactorverificatie - een catastrofale beveiligingskloof voor systemen met gevoelige data. Handmatige gebruikersprovisioning creëert operationele overhead en beveiligingskloofs waarbij nieuwe medewerkers handmatig moeten worden toegevoegd aan Databricks (typisch 2-5 dagen vertraging), wat productiviteitsverlies veroorzaakt, offboarding van vertrekkende medewerkers vaak wordt vergeten resulterend in ex-medewerkers die maanden na vertrek nog Databricks-toegang hebben wat insider threat-risico's creëert, en geen gecentraliseerd identiteitsbeheer mogelijk is omdat Databricks-gebruikersbeheer los staat van zakelijke IAM-processen. Conditional Access-beleidsregels kunnen niet worden toegepast op Databricks zonder Azure AD-integratie, wat betekent dat riskante aanmeldingen vanaf malware-geïnfecteerde apparaten, onbekende locaties of anonieme netwerken NIET kunnen worden geblokkeerd, apparaatcompliance niet kan worden afgedwongen waarbij onbeheerde persoonlijke apparaten ongecontroleerd toegang krijgen, en risicogebaseerde authenticatie waarbij gecompromitteerde accounts worden gedetecteerd door Azure AD Identity Protection niet werkt voor Databricks. Compliance-audits voor ISO 27001 Controle A.9.2.1 (gebruikersregistratie/deregistratie), A.9.2.6 (verwijdering van toegangsrechten), NIS2 Artikel 21 (identiteits- en toegangsbeheer), en BIO 11.02 (identiteitsbeheer) zullen falen omdat auditors gecentraliseerd identiteitsbeheer en geautomatiseerde provisioning/deprovisioning vereisen - handmatig Databricks-gebruikersbeheer voldoet niet aan enterprise IAM-standaarden. Het risico is HOOG en deze maatregel is NIET-NEGOTIEERBAAR voor alle Databricks productie-workspaces - geen uitzonderingen.

Management Samenvatting

Azure AD-synchronisatie voor Databricks via SCIM-provisioning en SAML SSO is een fundamentele beveiligingscontrole die gecentraliseerd identiteitsbeheer, Single Sign-On, Multi-Factor Authentication en geautomatiseerd gebruikerslevenscyclusbeheer implementeert. Deze integratie elimineert afzonderlijke Databricks-inloggegevens volledig door: (1) Single Sign-On waarbij gebruikers inloggen op Databricks met hun zakelijke Azure AD-account zonder afzonderlijke wachtwoorden, wat wachtwoordmoeheid elimineert en phishingrisico's drastisch vermindert, (2) MFA-afdwinging via Azure AD waarbij ALLE Databricks-aanmeldingen verplichte tweedefactor vereisen (Authenticator-app, SMS, hardwaretokens) - gecompromitteerde wachtwoorden alleen zijn onvoldoende voor toegang, (3) Conditional Access-beleidsregels kunnen worden toegepast die Databricks-toegang blokkeren vanaf riskante locaties, niet-compliant apparaten, anonieme netwerken of bij gedetecteerde accountcompromittering via Identity Protection, (4) Automatische gebruikersprovisioning via SCIM waarbij nieuwe medewerkers binnen minuten automatisch Databricks-toegang krijgen op basis van Azure AD-groeplidmaatschap zonder handmatige IT-betrokkenheid, (5) Automatische deprovisioning waarbij vertrekkende medewerkers onmiddellijk Databricks-toegang verliezen zodra hun Azure AD-account wordt uitgeschakeld (typisch bij offboardingproces), geen vergeten toegangsrechten die beveiligingskloofs creëren, (6) Groepgebaseerd toegangsbeheer waarbij Databricks-machtigingen worden beheerd via Azure AD-beveiligingsgroepen en lidmaatschapswijzigingen automatisch synchroniseren binnen 40 minuten. Deze maatregel is VERPLICHT voor alle productie Databricks-workspaces (geen uitzonderingen), VEREIST voor compliance met ISO 27001, NIS2, BIO enterprise identiteitsbeheer-vereisten, en KRITIEK voor beveiligingspostuur omdat afzonderlijke inloggegevens en handmatige provisioning fundamentele IAM-antipatronen zijn. Vereisten: Azure Databricks Premium tier (SCIM-provisioning niet beschikbaar op Standard), Azure AD Premium P1 (voor Conditional Access), en Enterprise Application-aanmaakmachtigingen. Implementatie-inspanning: 3-5 uur voor volledige integratie (Enterprise App-setup, SAML SSO-config, SCIM-provisioning, attribuutmapping, MFA/CA-beleidsregels, groepgebaseerd toegangsbeheer, testing). Geen extra Databricks-kosten (inbegrepen in Premium). Doorlopende inspanning: 1 uur per kwartaal voor provisioning-logreviews en SCIM-tokenrotatie (elke 90 dagen). Return on investment komt van: geëlimineerde credential phishing-risico's, geautomatiseerde onboarding/offboarding die IT-overhead en beveiligingskloofs vermindert, MFA die accountcompromittering met 99,9% vermindert (Microsoft-statistieken), compliance-auditsucces, en gecentraliseerd identiteitsbeheer dat weesaccountverspreiding vermindert.