Overview
This guide provides step-by-step instructions for integrating HiddenLayer with Microsoft Sentinel. Runtime detections will be sent from the HiddenLayer Console to an Azure Log Analytics Workspace for ingestion by Sentinel.Architecture
Prerequisites
- Azure subscription with the following permissions:
- Azure Entra ID: Create and manage app registrations, create client secrets
- Azure Monitor: Create and manage Data Collection Endpoints (DCE)
- Azure Monitor: Create and manage Data Collection Rules (DCR)
- Log Analytics Workspace: Create and manage custom tables
- Access Control (IAM): Grant role assignments on Data Collection Rules
- Log Analytics Workspace
- Azure Sentinel
- HiddenLayer Console admin access
Setup Steps
Step 1: Register Application in Azure Entra ID
- Navigate to Azure Portal → Microsoft Entra ID → App registrations
- Click New registration
-
Enter a name for the application (e.g.,
hl-sentinel-log-analytics-stage) - Select Accounts in this organizational directory only (Single tenant)
- Click Register
-
Save the following values:
- Application (client) ID - You’ll need this later
- Directory (tenant) ID - You’ll need this later
Step 2: Create Client Secret
- In your app registration, navigate to Certificates & secrets
- Click New client secret
-
Enter a description (e.g.,
IntegrationToken) and set expiration (recommended: 180 days or 6 months) - Click Add
-
IMMEDIATELY COPY THE SECRET VALUE - You cannot view it again after leaving this page
-
Save this value securely - You’ll need it for HiddenLayer configuration
Save Secret ValueThis value will not be available once you leave this page. If you leave the page without copying the secret value, you must create a new secret.
Step 3: Create Data Collection Endpoint
-
Navigate to Azure Portal → Monitor → Data Collection Endpoints
- Click Create
-
Configure the endpoint:
- Name:
hl-sentinel-aidr-<environment>(e.g.,hl-sentinel-aidr-stage) - Subscription: Select your subscription
- Resource Group: Select or create a resource group
- Region: Choose the region closest to your HiddenLayer deployment
- Name:
- Click Review + create → Create
- Once created, select the endpoint and click JSON View
-
Copy the
dataCollectionEndpointId- It looks like: -
Copy the
logsIngestionURL - It looks like:
Step 4: Create Custom Log Analytics Table
- Navigate to Azure Portal → Log Analytics workspaces
- Select your workspace (where Sentinel is enabled)
-
Navigate to Settings → Tables
-
Click Create → New custom log (DCR-based)
-
Configure the custom log:
- Table name:
HiddenLayerAIDRStage(without_CLsuffix) - Data collection endpoint: Select the endpoint created in Step 3
- Data collection rule: Create new or select existing
- Table name:
- Click Next
- Upload the following JSON schema file:
-
Click Next → Create
Table and Stream NamesAzure will create a table named
HiddenLayerAIDRStage_CLand a stream namedCustom-HiddenLayerAIDRStage_CL
Step 5: Get Data Collection Rule Details
- Navigate to Azure Portal → Monitor → Data Collection Rules
- Find and select the data collection rule created in Step 4
- Click JSON View
-
Copy the
immutableId- It looks like:
Step 6: Grant Permissions to App Registration
- Stay on the Data Collection Rule page
-
Navigate to Access Control (IAM)
- Click Add → Add role assignment
- Select role: Monitoring Metrics Publisher
- Click Next
- For Assign access to, select User, group, or service principal
- Click Select members
-
Search for your app registration name (from Step 1)
- Select the application
- Click Select → Review + assign → Review + assign
Step 7: Configure HiddenLayer Console
- Log in to HiddenLayer Console
- Navigate to Admin → Integrations
-
Find Azure Sentinel and click Configure Integration (three dots menu)
-
Enter the following values:
- Click Submit
Configuration Summary
Key Configuration Mapping
What you create in Azure Portal:- Table name:
HiddenLayerAIDRStage(no suffix)
- Log Analytics table:
HiddenLayerAIDRStage_CL(adds_CLsuffix) - DCR stream:
Custom-HiddenLayerAIDRStage_CL(addsCustom-prefix and_CLsuffix)
- Table name:
Custom-HiddenLayerAIDRStage_CL(the full stream name)
Critical Field Clarifications
Verification (Wait 5-10 minutes after configuration)
Step 1: Create an AI Runtime Security detection
- In HiddenLayer Console, navigate to LLM Sandbox
- Select OWASP Scenarios -> LLM01: Prompt Injection
- Turn on Block Prompt Injection in the Policy Settings
- Send the prompt
- You should see a message saying the prompt was blocked
Step 2: Check Azure for Errors
Run this query in Log Analytics:Step 3: Verify Data Ingestion
Run this query in Log Analytics:Testing the Integration
If you want to manually test the Azure configuration before HiddenLayer sends data, use this Python script:Test Script
Save astest_integration.py:
Troubleshooting
Issue 1: Stream Not Configured Error
Error in DCRLogErrors:- Azure Portal table name:
HiddenLayerAIDRStage - HiddenLayer Console table name:
Custom-HiddenLayerAIDRStage_CL
HiddenLayerAIDRStage_CL(missing “Custom-” prefix)HiddenLayerAIDRStage(missing both prefix and suffix)HiddenLayerAIDRStage_CL_CL(double suffix - table created incorrectly)
Issue 2: Authentication Failures
Error: No data in table Possible causes:- Incorrect Client ID or Client Secret
- Expired Client Secret
- Missing role assignment
- Go to Data Collection Rule → Access Control (IAM)
- Verify app has “Monitoring Metrics Publisher” role
- If missing, add the role (see Step 6)
- Go to App Registration → Certificates & secrets
- Create new client secret
- Update HiddenLayer configuration immediately
Issue 3: No Data Appearing
Symptom: No errors in DCRLogErrors, but no data in table Possible causes:- No convictions being generated
- Integration not properly activated
- Timing delay
- HiddenLayer Console → AI Runtime Security → Detections
- Look for detections in the last 24 hours
- Follow the steps in Testing the Integration

