# Microsoft Azure

> Verbind Microsoft Azure met Tidal Control zodat compliance tests draaien op je Azure-omgeving en je Entra ID-configuratie, van abonnementen tot identiteiten.

Source: https://tidalcontrol.com/nl/docs/integrations/azure

De Microsoft Azure integratie stelt Tidal Control in staat om automatisch compliance tests uit te voeren op je Azure omgeving en Entra ID configuratie.

## Vereisten

- Super User rol in Tidal Control
- Entra ID app registratie rechten
- Azure subscription toegang voor rol toewijzingen

## Benodigde machtigingen

De Azure-integratie gebruikt twee afzonderlijke machtigingssets: één voor Entra ID (Azure AD) en één voor Azure-resources. Alle toegang is read-only. Tidal Control schrijft, wijzigt of verwijdert nooit iets in je Azure-omgeving.

### Microsoft Graph API-machtigingen

Deze machtigingen geven Tidal leestoegang tot je Entra ID-configuratie:

<table>
<thead>
<tr><th>Machtiging(en)</th><th>Waarvoor wij deze gebruiken</th></tr>
</thead>
<tbody>
<tr><td><strong>User.Read.All, Directory.Read.All</strong></td><td>Wij controleren op inactieve gebruikersaccounts en openstaande verplichte wachtwoordwijzigingen.</td></tr>
<tr><td><strong>Policy.Read.All, Organization.Read.All</strong></td><td>Wij verifiëren conditional access policies, zoals MFA-handhaving voor beheerders en toegangsbeperking tot de Entra-beheerdersportal.</td></tr>
<tr><td><strong>Device.Read.All, DeviceManagementManagedDevices.Read.All</strong></td><td>Wij verifiëren Intune MDM-inschrijving, device-encryptiestatus en of apparaten recent gesynchroniseerd zijn.</td></tr>
<tr><td><strong>Group.Read.All, GroupMember.Read.All, Application.Read.All</strong></td><td>Wij lossen groepslidmaatschappen op die worden gebruikt in conditional access policies en verifiëren app-registraties.</td></tr>
</tbody>
</table>

### Reader-rol op Azure-subscriptions

De Reader-rol geeft Tidal leestoegang tot je Azure-resourceconfiguraties:

<table>
<thead>
<tr><th>Resourcetype</th><th>Waarvoor wij toegang nodig hebben</th></tr>
</thead>
<tbody>
<tr><td><strong>Virtual machines</strong></td><td>Wij verifiëren de configuratie van automatisch patchen, Trusted Launch (Secure Boot) en schijfencryptie at rest.</td></tr>
<tr><td><strong>Storage accounts</strong></td><td>Wij controleren op publieke blob-toegang, HTTPS-handhaving, soft delete- en retentiebeleid en encryptie at rest.</td></tr>
<tr><td><strong>Key Vault</strong></td><td>Wij verifiëren of key vaults geen publieke netwerktoegang hebben ingeschakeld.</td></tr>
<tr><td><strong>AKS (Kubernetes)</strong></td><td>Wij controleren of Kubernetes API-servers publiek toegankelijk zijn en of automatische upgrade-kanalen zijn geconfigureerd.</td></tr>
<tr><td><strong>PostgreSQL Flexible Server</strong></td><td>Wij verifiëren publieke netwerktoegang, back-upretentie, onderhoudsvensterconfiguratie, TLS-instellingen en encryptie at rest.</td></tr>
</tbody>
</table>

### Microsoft Defender for Endpoint API-machtigingen

De Microsoft Defender-tests gebruiken de Microsoft Defender for Endpoint API. Dit zijn **toepassingsmachtigingen op de WindowsDefenderATP API**. Deze staan los van de Microsoft Graph-machtigingen en de Reader-rol hierboven. Zonder deze machtigingen falen de Defender-tests met een autorisatiefout, ook al is de rest van de integratie verbonden.

<table>
<thead>
<tr><th>Machtiging</th><th>Waarvoor wij deze gebruiken</th></tr>
</thead>
<tbody>
<tr><td><strong>Machine.Read.All</strong></td><td>Wij halen onboarded apparaten en hun antivirus-gezondheidsstatus op.</td></tr>
<tr><td><strong>Vulnerability.Read.All</strong></td><td>Wij lezen de kwetsbaarheden die op je apparaten zijn gedetecteerd.</td></tr>
<tr><td><strong>SecurityRecommendation.Read.All</strong></td><td>Wij lezen Defender-beveiligingsaanbevelingen (Threat & Vulnerability Management).</td></tr>
<tr><td><strong>Alert.Read.All</strong></td><td>Wij lezen Defender-beveiligingswaarschuwingen.</td></tr>
</tbody>
</table>

## Configuratie methoden

Er zijn twee manieren om Azure te koppelen. App-integratie is de aanbevolen route; een service principal is voor gevallen waarin dat niet kan.

### App integratie (aanbevolen)

App-integratie is sneller ingericht en Tidal beheert de credentials voor je.

**Voordelen van app integratie:**
- **Sneller en eenvoudiger** - Minder handmatige stappen en configuratie
- **Minder foutgevoelig** - Automatische machtigingen setup
- **Geen credential management** - Tidal beheert authenticatie automatisch

**Setup proces:**
1. **Ga naar Instellingen → Integraties** in Tidal Control
2. **Klik Microsoft Azure tile**
3. **Selecteer "App-integratie (aanbevolen)"**
4. **Klik "Klik hier om te beginnen"**
5. **Log in via Azure portal** wanneer doorgestuurd
6. **Review machtigingen** en klik "Accepteren"

### Service Principal

Gebruik een service principal alleen wanneer het securitybeleid van je organisatie externe app-integraties volledig blokkeert.

**Wanneer service principal gebruiken:**
- **Volledige controle** over app registratie en machtigingen vereist
- **Organisatie security policy** staat geen externe app integraties toe
- **Custom credential** management gewenst

**Nadelen service principal:**
- **Meer configuratie stappen** en hogere kans op fouten
- **Handmatig credential** management (expiration tracking)
- **Risk van incomplete machtigingen** waardoor tests kunnen falen

**Service principal configuratie:**

Het doel van deze stappen is om een service principal aan te maken in Azure en de benodigde gegevens te verzamelen om later in Tidal in te voeren. **Noteer de volgende waarden tijdens configuratie:**
- Tenant ID
- Client ID  
- Client Secret
- Integratie naam

**Azure app registratie:**
1. **Ga naar Azure portal → Entra ID → App registraties**
2. **Klik "Nieuwe registratie"**
   - Naam: `Tidal Control - Integratie`
   - Accounttypen: `Enkele tenant`
3. **Noteer Toepassing (client) ID** (bewaar voor Tidal configuratie)
4. **Noteer Directory (tenant) ID** (bewaar voor Tidal configuratie)

**Client secret genereren:**
1. **Ga naar "Certificaten & geheimen"**
2. **Klik "Nieuw clientgeheim"**
   - Beschrijving: `Tidal Control - Integratie`
   - Vervaldatum: 12 maanden
3. **Klik "Toevoegen"**
4. **Noteer secret waarde onmiddellijk** (niet meer zichtbaar na pagina verlaten)

> **warning:**

**Belangrijk**: Noteer alle waarden (Tenant ID, Client ID, Secret) in een veilige locatie. Je hebt deze nodig voor Tidal configuratie en het client secret is later niet meer ophaalbaar.

**API machtigingen configureren:**
1. **Ga naar "API-machtigingen" → "Een machtiging toevoegen"**
2. **Selecteer Microsoft Graph → Toepassingsmachtigingen**
3. **Voeg alle machtigingen toe:**
   - `Directory.Read.All`
   - `User.Read.All` 
   - `Device.Read.All`
   - `Application.Read.All`
   - `DeviceManagementManagedDevices.Read.All`
   - `GroupMember.Read.All`
   - `Group.Read.All`
   - `Organization.Read.All`
   - `Policy.Read.All`
4. **Voeg de Microsoft Defender for Endpoint-machtigingen toe** (vereist voor de Defender-tests):
   - **Een machtiging toevoegen → API's die mijn organisatie gebruikt → zoek "WindowsDefenderATP" → Toepassingsmachtigingen**
   - `Machine.Read.All`
   - `Vulnerability.Read.All`
   - `SecurityRecommendation.Read.All`
   - `Alert.Read.All`
5. **Klik "Beheerderstoestemming verlenen"** voor je tenant

**Integratie voltooien in Tidal:**
1. **Ga naar Instellingen → Integraties → Microsoft Azure**
2. **Selecteer "Service Principal"**
3. **Vul genoteerde waarden in:**
   - **Naam**: Herkenbare naam voor de integratie
   - **Tenant ID**: Directory (tenant) ID uit Azure
   - **Client ID**: Toepassing (client) ID uit Azure
   - **Client Secret**: Het aangemaakte client secret

## Azure abonnement toegang

Wijs de Reader-rol apart toe voor elke subscription die Tidal moet testen:

**Reader rol toewijzen per abonnement:**

Voor elk Azure abonnement dat je wilt monitoren:
1. **Azure portal → Abonnementen → [Selecteer abonnement]**
2. **Toegangsbeheer (IAM) → Roltoewijzing toevoegen**
3. **Selecteer "Reader" rol**
4. **Zoek naar je Tidal integratie** (naam die je in stap 1 hebt gebruikt)
5. **Selecteer integratie** en klik "Toewijzen"

> **tip:**

**Reader rol**: Geeft Tidal read-only toegang voor compliance monitoring zonder security risico's. Voldoende voor alle Azure tests.

## Integratie verificatie in Tidal

De integratie werkt wanneer het volgende allemaal klopt:

- **Instellingen → Integraties** toont Azure onder **Geconfigureerde integraties**
- **Test refresh** levert resultaten zonder (authentication) errors

Maakt de integratie geen verbinding, controleer dan het volgende:

- Verify alle credentials correct zijn ingevoerd
- Check of beheerderstoestemming is verleend voor API machtigingen
- Confirm Reader rol is toegewezen aan relevante abonnementen
- Als alleen de Microsoft Defender-tests falen met een autorisatiefout, controleer dan of de WindowsDefenderATP-machtigingen (`Machine.Read.All`, `Vulnerability.Read.All`, `SecurityRecommendation.Read.All`, `Alert.Read.All`) zijn toegevoegd aan de app-registratie en of beheerderstoestemming is verleend

## Microsoft Sentinel integratie

Microsoft Sentinel wordt geconfigureerd als een **aparte integratie** ten opzichte van de Microsoft Azure-integratie hierboven. Het voert compliance tests uit op één Sentinel-workspace door de incidenten, analytics- (alert-)regels en data connectors te lezen. Stel dit alleen in als je de Sentinel-tests wilt draaien. Het heeft eigen credentials en hergebruikt de Azure-integratie hierboven niet.

### Benodigde machtiging

Toegang tot Sentinel wordt verleend via een Azure RBAC-rol in plaats van API-machtigingen. Wijs de ingebouwde rol **Microsoft Sentinel Reader** toe aan een service principal, met als scope de resourcegroep die je Sentinel- (Log Analytics-)workspace bevat. Dit geeft read-only toegang tot `Microsoft.SecurityInsights`-resources (incidenten, alert-regels en data connectors), voldoende voor alle Sentinel-tests.

### Setup proces

De app registreren in Entra ID geeft je de twee ID's en het secret die de eigen setup van Sentinel daarna nodig heeft.

**1. Registreer een app (service principal):**
1. **Ga naar Azure portal → Entra ID → App registraties → Nieuwe registratie**
   - Naam: `Tidal Control - Sentinel`
   - Accounttypen: `Enkele tenant`
2. **Noteer de Toepassing (client) ID en Directory (tenant) ID**
3. **Ga naar "Certificaten & geheimen" → "Nieuw clientgeheim"** en **noteer de secret-waarde onmiddellijk** (later niet meer ophaalbaar)

> **tip:**

Je kunt de app-registratie van je bestaande Azure-integratie hergebruiken in plaats van een nieuwe aan te maken. Wijs deze in de volgende stap simpelweg de Microsoft Sentinel Reader-rol toe en hergebruik de tenant ID, client ID en client secret in Tidal.

**2. Wijs de Microsoft Sentinel Reader-rol toe:**
1. **Ga naar de resourcegroep die je Sentinel-workspace bevat → Toegangsbeheer (IAM) → Roltoewijzing toevoegen**
2. **Selecteer de rol "Microsoft Sentinel Reader"**
3. **Zoek naar de app-registratie** die je hebt aangemaakt en **wijs deze toe**

**3. Verzamel de workspace-gegevens** die je in Tidal invoert:
- Subscription ID
- Resourcegroep-naam
- Log Analytics workspace-naam (de workspace waarop Sentinel draait)

**4. Voltooi de integratie in Tidal:**
1. **Ga naar Instellingen → Integraties → Microsoft Sentinel**
2. **Vul de waarden in:**
   - **Naam**: Herkenbare naam voor de integratie
   - **Tenant ID**, **Client ID**, **Client Secret**: uit de app-registratie
   - **Subscription ID**, **Resourcegroep-naam**, **Workspace-naam**: uit stap 3

> **tip:**

Als de Sentinel-tests falen met een autorisatiefout, controleer dan of de rol **Microsoft Sentinel Reader** is toegewezen aan de app-registratie op het niveau van de resourcegroep (of workspace), en of de subscription ID, resourcegroep en workspace-naam exact overeenkomen met de workspace waarop Sentinel draait.

### Kom je er nog niet uit?

Stuur een e-mail naar support@tidalcontrol.com, en we nemen zo snel mogelijk contact met je op.

> **info:**

**Support info verzamelen:** Noteer welke browser je gebruikt, exacte foutmeldingen, welke stappen je al geprobeerd hebt, en screenshots van het probleem. Dit versnelt de oplossing aanzienlijk.
