Microsoft Azure
The Azure integration connects HomeBase to Microsoft Entra ID (Azure AD), Microsoft Defender, Azure Monitor, and Activity Logs, providing unified identity risk, threat intelligence, and cloud posture data.
What's ingested
- Entra ID (Azure AD), users, groups, sign-in logs, risky users, and conditional access events.
- Microsoft Defender for Endpoint, device alerts, vulnerability findings, and attack surface data.
- Microsoft Defender for Identity, lateral movement detection and AD attack alerts.
- Azure Monitor / Activity Logs, subscription-level operations, resource mutations.
- Azure Security Center / Defender for Cloud, security recommendations and regulatory compliance findings.
Setup: App registration
1. Register an application in Entra ID
In the Azure Portal, go to Azure Active Directory → App registrations → New registration. Name it HLD HomeBase and select "Accounts in this organizational directory only".
2. Create a client secret
Under Certificates & secrets → New client secret, create a secret with a 24-month expiry. Copy the value immediately.
3. Grant API permissions
| Name | Type | Required | Description |
|---|---|---|---|
| User.Read.All | Application | No | Read all user profiles and sign-in data. |
| AuditLog.Read.All | Application | No | Read audit and sign-in logs. |
| IdentityRiskEvent.Read.All | Application | No | Read risky sign-in events. |
| SecurityEvents.Read.All | Application | No | Read Defender security alerts. |
| Directory.Read.All | Application | No | Read directory objects (groups, roles). |
Grant admin consent for all permissions after adding them.
4. Register the integration
bash
POST /v1/integrations
{
"type": "azure",
"tenant_id": "ten_01hxyz",
"credentials": {
"azure_tenant_id": "YOUR_AZURE_TENANT_ID",
"client_id": "YOUR_APP_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
},
"config": {
"ingest_entra_id": true,
"ingest_defender": true,
"ingest_activity_logs": true
}
}Tip:Rotate the client secret before its expiry, HomeBase will alert you 30 days before expiry via the integration.credential_expiring webhook event.