# Entra ID Collects logs from Entra ID (formerly Azure AD) via Log Analytics for authentication and access tracking. **Sync Type: Incremental** ## Requirements Before setting up the Entra Id input you need to: 1. Have a Microsoft Account with an active Azure Subscription 2. Create a Application with API Data.Read access to the Log Analytics API 3. Reader permissions granted to the application from the Logs Analytics Workspace **Note**: On the first sync, the start time is determined in order: `Backfill Start Time` if set, otherwise `now - Ingestion Delay` if configured, otherwise starts from current time (while accounting for the ingestion delay in azure). Subsequent syncs are incremental from the last successful sync time. **Query behavior**: Monad automatically filters and sorts by `IngestionTime = ingestion_time()` rather than `TimeGenerated` to avoid missing late-arriving data. ## Configuration ### Settings | Setting | Type | Required | Description | |---------|------|----------|-------------| | Tenant ID | string | true | The tenant ID of the Azure AD application | | Workspace ID | string | true | The workspace ID of the Log Analytics workspace | | Category | string | true | The log category to collect. One of: `AuditLogs`, `SigninLogs`, `AADNonInteractiveUserSignInLogs`, `AADServicePrincipalSignInLogs`, `AADManagedIdentitySignInLogs` | | Ingestion Delay | duration (seconds) | false | Approximate delay between event occurrence and Azure ingestion for your workspace and table. Used to avoid missing late-arriving data. Run `` `{table_name} \| summarize percentile(ingestion_time() - TimeGenerated, 99)` `` in Log Analytics to measure. Defaults to 0. | | Backfill Start Time | string | false | ISO 8601 timestamp to start fetching data from on the first sync. Cannot be more recent than `now - Ingestion Delay`. | | API Rate Limit | object | No | Optional limit on the connector's outbound request rate to the source API. Leave blank to use the connector's default behavior. See [API Rate Limiting](../../../guides/rate-limiting) for the field format, limits, and how to choose a value. | ### Secrets | Setting | Type | Required | Description | |---------|------|----------|-------------| | Client ID | string | true | The client ID of the Azure AD application | | Client Secret | string | true | The client secret of the Azure AD application | ## Setting up API Access 1. Registering a new application 1. Open the [App Registration](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) page in the Azure portal. 2. Select New Registration 3. Add a name to the new registration 4. Click Register 5. Save the applications `Application (client) ID` and `Directory (tenant) ID` 6. Select Certificates and Secrets 7. Click link next to Client credentials 8. In "Client secrets" click "New client secret" 9. Add a name and expiration to the new secret 10. Save the client secret value 2. Give application access to Log Analytics API 1. Click "API Permissions" on left sidebar 2. Click "Add Permission" 3. Click "Logs Analytics API" 4. Select "Delegated permissions" 5. Select "Data.Read" 3. Grant access to your Log Analytics Workspace 1. Navigate to the [Log Analytics Workspace](https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.OperationalInsights%2Fworkspaces) 2. Select the workspace 3. Click "Access control (IAM)" on the left menu 4. Select "Add Role Assignment" from the "+ Add" menu 5. Select the `Reader` role and click Next 6. Click "Select members" 7. Search for the new application name and click Select 8. Click "Review + assign" 9. Confirm by clicking "Review + assign" ## Custom Schema Handling If the source data doesn't align with any of the [OpenSecurityControlFramework (OSCF) schemas](https://schema.ocsf.io/), you can create a custom transformation using our JQ transform pipeline. For example: ```jq { metadata: { schema_version: "1.0.0", custom_framework: "my_framework" }, controls: .[] } ``` For more information on JQ and how to write your own JQ transformations see the JQ docs [here](https://jqlang.github.io/jq/). If you believe this data source should be included in the standard OSCF schema set, please reach out to our team at [support@monad.com](mailto:support@monad.com). We're always looking to expand our coverage of security control frameworks based on community needs. ## Related Articles - [Setting up an application](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/api/register-app-for-token?tabs=portal) - [Access to Log Analytics API](https://learn.microsoft.com/en-us/azure/azure-monitor/logs/api/access-api?tabs=rest) ## Sample Record ```json { "AADOperationType": "Update", "AADTenantId": "4271a8a7-0fe8-c714-3445-52fb3b30412a", "ActivityDateTime": "2025-08-11T23:46:40Z", "ActivityDisplayName": "Update service principal", "AdditionalDetails": [ { "key": "AppId", "value": "dd4a7561-9c02-74c4-ba8d-7cfb316f6c13" } ], "Category": "ApplicationManagement", "CorrelationId": "1b4cf4bc-8610-f64b-d8ec-0059ffbcaca2", "DurationMs": 0, "Id": "Directory_4c1435e2-d7e7-59f4-9c5c-7b8dbec78352", "Identity": "Microsoft Intune", "InitiatedBy": { "app": { "appId": null, "displayName": "Microsoft Intune", "servicePrincipalId": "1d3faa74-72e8-6bc3-fa1a-e7af64a2fc4a", "servicePrincipalName": null } }, "Level": "4", "Location": "", "LoggedByService": "Core Directory", "OperationName": "Update service principal", "OperationVersion": "1.0", "Resource": "Microsoft.aadiam", "ResourceGroup": "Microsoft.aadiam", "ResourceId": "/tenants/3069aef9-ec6c-4b78-bbdb-00fd1f45f4d9/providers/Microsoft.aadiam", "ResourceProvider": "", "Result": "success", "ResultDescription": "", "ResultReason": "", "ResultSignature": "None", "ResultType": "", "SourceSystem": "Azure AD", "TargetResources": [ { "administrativeUnits": [], "displayName": "Microsoft Intune", "id": "4dadf01c-30eb-531f-64db-1ed101147014", "modifiedProperties": [ { "displayName": "Included Updated Properties", "newValue": "\"\"", "oldValue": null }, { "displayName": "TargetId.ServicePrincipalNames", "oldValue": null } ], "type": "ServicePrincipal" } ], "TenantId": "7ec8b13e-3535-19da-c77c-5a645a46bd4a", "TimeGenerated": "2025-08-11T23:46:40Z", "Type": "AuditLogs" } ```