Microsoft Sentinel integration
Send Maskflare events to Microsoft Sentinel
- The same events as other destinations: blocked requests and files, policy and configuration changes, device and key notices, and a weekly digest
- Request processed: one event per AI request, for threat hunting and workbooks you build yourself
- A signed envelope with id, type, created_at and data, and a delivery log in the console
- Custom headers on the endpoint, for example to authenticate to your receiver
Maskflare does not have a built-in Sentinel destination, and we don't publish a Sentinel data connector. What it has is a generic HTTPS endpoint destination that delivers signed JSON events, and that is the supported way to get events into Sentinel.
Sentinel stores data in a Log Analytics workspace, and the Azure Monitor Logs Ingestion API that writes to it needs a Microsoft Entra bearer token and a JSON array. Maskflare sends neither, so you put a small receiver in between, such as an Azure Function or a Logic App with an HTTP request trigger, that checks the signature and forwards the event.
What it does
- The same events as other destinations: blocked requests and files, policy and configuration changes, device and key notices, and a weekly digest
- Request processed: one event per AI request, for threat hunting and workbooks you build yourself
- A signed envelope with id, type, created_at and data, and a delivery log in the console
- Custom headers on the endpoint, for example to authenticate to your receiver
Set up Microsoft Sentinel with Maskflare
There is no dedicated Sentinel connector. Maskflare posts signed JSON to an HTTPS endpoint you run, and that endpoint writes to your Sentinel workspace through the Azure Monitor Logs Ingestion API.
In Azure
- Create a custom table in the Log Analytics workspace that Sentinel uses, with its data collection rule, as described in the Logs Ingestion API documentation. Design the columns for the fields you want, such as type, created_at, organization, environment, provider and outcome.
- Build a receiver with a public HTTPS URL, for example an Azure Function or a Logic App with a request trigger. It should verify the Maskflare-Signature header, wrap the event in a JSON array, and call the Logs Ingestion API with a managed identity that has the Monitoring Metrics Publisher role on the data collection rule.
- Return a 2xx response quickly. Maskflare waits 10 seconds for an answer and retries failures.
In Maskflare
- Open Connections, then Integrations and select Add endpoint.
- Set Destination to HTTPS endpoint and URL to your receiver. Add Custom headers (one Name: value per line) if the receiver needs a key. Values are stored encrypted and never shown again.
- Under Events, tick what to send, for example Request blocked, Policy change decided, Block spike and Request processed. For Request processed, set Max events per minute.
- Select Add endpoint and copy the signing secret now: it is shown once. Store it where your receiver can read it.
- Select Send test event on the endpoint row, check the row appears in your table, and use Deliveries to see any error.
import hashlib, hmac, time
def verify(secret: str, signature_header: str, body: bytes, tolerance: int = 300) -> bool:
# Maskflare-Signature: t=<unix timestamp>,v1=<hex hmac-sha256>
parts = dict(item.split("=", 1) for item in signature_header.split(","))
timestamp, signature = parts["t"], parts["v1"]
if abs(time.time() - int(timestamp)) > tolerance:
return False
expected = hmac.new(secret.encode(), timestamp.encode() + b"." + body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, signature)What data is shared
- Every event has an ID, a type, a timestamp and a data object of metadata: environment, provider, model, outcome, status code, reason codes and counts.
- Request processed also carries the device ID, the device user's email address, the app key name and per-category counts of what was masked, alerted, blocked and shadowed.
- Never sent: prompts, responses, file names or contents, paths, query strings, detected values, or the names of your own custom rules.
- Whatever your receiver writes to Log Analytics follows your workspace's retention and access settings, which you control.
Good to know
- This is an HTTPS endpoint integration, not a managed connector. You build and run the receiver, and Maskflare does not ship a Sentinel solution, analytics rules or workbooks.
- Maskflare accepts only https:// URLs that resolve to a public address. A Logic App request trigger URL or an Azure Function URL qualifies.
- Deliveries are at least once with up to six attempts in all. Deduplicate on the event id.
- Maskflare cannot post straight to the Logs Ingestion API, because that API needs an Entra access token that expires, and the custom headers on an endpoint are fixed values.
Vendor documentation
Frequently asked questions
Is there a Sentinel data connector?
No. Maskflare delivers signed JSON to an HTTPS endpoint, and you forward it to your Log Analytics workspace, for example with a Logic App or an Azure Function that calls the Logs Ingestion API.
Why not post directly to Azure Monitor?
The Logs Ingestion API needs an Entra bearer token and a JSON array body. Maskflare sends the event as a signed JSON object with fixed headers, so a small receiver is needed in between.
Do events contain prompts?
No. Events carry metadata and counts only, never prompts, responses or detected values. Request processed does include the device user's email address and the app key name.
Can we verify that an event came from Maskflare?
Yes. Each delivery has a Maskflare-Signature header with a timestamp and an HMAC-SHA256 of the body, made with the endpoint's signing secret.
Other siem and alerting integrations
See it on your own data
Try Maskflare free.
Bring your hardest prompts.
28-day free trial or 10,000 requests, whichever comes first. Point one app at the gateway or enroll a few laptops,
and watch what gets masked. Or talk to us first.
- SOC 2 Type II: In progress
- ISO 27001: In progress
- EU hosting by default · on-premises available
- Prompts and files never stored
- Never used to train AI models
- GDPR · nDSG · DPA available
- Trust center →