Microsoft Sentinel (via Webhook)
Send Tenable One AI Exposure findings to Microsoft Sentinel through an Azure Logic App. The Logic App receives findings from a AI Exposure webhook and forwards them to a custom table in your Log Analytics workspace using the Azure Monitor Logs Ingestion API. The Logic App authenticates with a managed identity, so you don't need to store a workspace key.
Prerequisites
Before you begin:
- Ensure you have access to a Log Analytics workspace with Microsoft Sentinel enabled.
- Ensure your Azure account has permissions to create tables, data collection rules (DCRs), data collection endpoints (DCEs), and Logic Apps.
- Ensure your Azure account has permissions to assign roles on the DCR (e.g., the Owner or User Access Administrator role).
To send AI Exposure data to Microsoft Sentinel, follow these steps:
- Create a Custom Table
- Copy the DCR and DCE Values
- Create a Logic App with Managed Identity
- Grant the Logic App Access to the DCR
- Create a Sentinel Webhook Integration in Tenable
- Send data to the webhook in one of the following ways:
- View Data in Microsoft Sentinel
What to do next:
-
To start sending data for findings, you need to also configure automation rules or manually trigger an action after you add the integration. Successfully completing all integration steps doesn't trigger the sending of any data on its own.
Create a Custom Table
Create a custom table in your Log Analytics workspace, along with the DCR and DCE that route AI Exposure data to it.
- In the Azure portal, navigate to Log Analytics workspaces and select the workspace where Microsoft Sentinel is enabled.
- Under Settings, select Tables.
- Click Create > New custom log (DCR based).
-
Enter a Table name, for example TenableFindings.
Note: Azure automatically adds the _CL suffix, so the full table name is TenableFindings_CL. You need the full name when you create the Logic App and when you View Data in Microsoft Sentinel. - For Table plan, select Analytics.
- Under Data collection rule, select an existing DCR or click Create a new data collection rule and specify the Subscription, Resource group, and Name (for example, dcr-tenable-findings).
- Under Data collection endpoint, select an existing DCE or create a new one.
- Click Next.
-
Save the following sample payload as a .json file, and then upload it to generate the table schema.
Sample payload
CopyJSON
[
{
"source": "source",
"sentBy": "Tenable",
"comments": [
{
"message": "message",
"time": "2026-01-15T14:30:00.000000Z",
"userName": "User Name"
}
],
"creationTime": "2026-01-10T08:00:00.000Z",
"id": "00000000-0000-0000-0000-000000000000",
"link": "https://example.com/customer/00000000-0000-0000-0000-000000000000/Risks/Cloud/Closed#risk/00000000-0000-0000-0000-000000000000",
"severity": "High",
"ticketLinks": [],
"accountId": "123456789012",
"accountName": "ExampleAccount",
"category": "exampleCategory",
"description": "exampleDescription",
"openTime": "2026-01-10T08:00:00.000Z",
"policyName": "example policy",
"provider": "exampleProvider",
"status": "exampleStatus",
"statusUpdateTime": "2026-01-15T14:30:00.000Z",
"subStatus": "exampleSubStatus",
"type": "exampleType",
"compliances": [
"exampleCompliance1",
"exampleCompliance2"
],
"ignoredUntil": "2026-01-15T14:30:00.000Z",
"resource": "ExampleResourceName"
}
] -
Add a TimeGenerated column. Every Azure Monitor log table requires one, and the AI Exposure payload doesn't include it, so the portal displays a warning.
- Click Transformation editor.
Enter the following query, and then click Run:
- Click Apply.
- Click Next, and then click Create.
Copy the DCR and DCE Values
Copy the values that the Logic App needs to send data to your DCR.
- In the Azure portal, navigate to Monitor > Data collection rules and select the DCR you created.
- On the Overview page, click JSON View.
- Copy and save the immutableId value. It starts with dcr-.
- Navigate to Monitor > Data Collection Endpoints and select the DCE you selected for the table.
- Copy and save the Logs ingestion URI.
Create a Logic App with Managed Identity
Configure an Azure Logic App to receive data from Tenable and forward it securely to your DCR.
- In the Azure portal, navigate to the Logic apps service.
- Click Add.
- For hosting option, select Consumption.
- Under Project details, select the relevant Subscription and Resource group.
- Under Instance details, enter a Name and select a Region.
- Click Review + Create and then click Create.
- When the deployment is complete, click Go to resource.
-
Create the managed identity:
- Navigate to Settings > Identity.
- On the System assigned tab, set Status to On.
- Click Save.
- Navigate to Development tools > Logic app designer.
- Click Add a trigger, and then search for and select When a HTTP request is received.
- Click + and then Add an action.
- Search for and select the HTTP action.
-
Configure the HTTP action:
- Method: POST
URI — Enter the URI in the following format, using the values you copied earlier and the full table name:
Copy{Logs ingestion URI}/dataCollectionRules/{immutableId}/streams/Custom-{Table name}?api-version=2023-01-01For example:
Copyhttps://my-dce-5kyl.eastus-1.ingest.monitor.azure.com/dataCollectionRules/dcr-000a00a000a00000a000000aa000a0aa/streams/Custom-TenableFindings_CL?api-version=2023-01-01- Headers — Add Content-Type with the value application/json.
- Body — Enter the expression @createArray(triggerBody()). The Logs Ingestion API accepts only a JSON array, and AI Exposure sends each finding as a single JSON object. This expression wraps the object in an array.
-
Under Advanced parameters, select Authentication and configure it:
- Authentication type: Managed identity
- Managed identity: System-assigned managed identity
- Audience: https://monitor.azure.com
Note: If your workspace is in Azure Government, use https://monitor.azure.us as the audience. - Click Save.
- Open the When a HTTP request is received trigger and copy the HTTP URL. Azure generates this URL when you save the workflow.
Grant the Logic App Access to the DCR
Assign the Logic App's managed identity a role that allows it to send data to your DCR.
- In the Azure portal, navigate to Monitor > Data collection rules and select the DCR you created.
- Select Access control (IAM) > Add > Add role assignment.
- Select the Monitoring Metrics Publisher role and click Next.
- For Assign access to, select Managed identity.
- Click Select members, select your Logic App, and then click Select.
- Click Review + assign.
Create a Sentinel Webhook Integration in Tenable
Create a webhook integration in AI Exposure that sends findings to your Logic App.
- In the AI Exposure Console, navigate to Settings > Integrations and click Webhook.
- Click Add webhook.
- Enter a Name for the webhook (e.g., Sentinel_Modern_Integration.
- In the Webhook URL field, paste the HTTP URL that you copied in the last step of Create a Logic App with Managed Identity.
- (Optional) Select Accept any server SSL certificates if SSL is enabled for the collector.
- (Optional) For HTTP Headers, enter a Name and Value if the webhook expects to receive a header with additional information.
- Click Save.
View Data in Microsoft Sentinel
Verify that findings reach Microsoft Sentinel.
-
Verify the Logic App run:
- In the Azure portal, open the Logic App that you created.
- On the Overview page, navigate to the Run history tab and click a run Identifier.
- Click the HTTP action and confirm that it succeeded. If it returns 403 Forbidden, the role assignment hasn't taken effect yet.
-
View the data in Microsoft Sentinel:
- In the Azure portal, navigate to the Microsoft Sentinel service.
- Select your workspace and click Logs.
- In a new query (KQL mode), enter the full table name (for example, TenableFindings_CL) and click Run.