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.