Your identity security posture is only as strong as its current configuration. Simple-to-miss, unintentional misconfigurations or intentional risky changes by a compromised or unaware admin user can instantly introduce severe vulnerabilities. The key to maintaining high defenses is immediate awareness when critical modifications occur.
We can achieve this powerful, real-time monitoring by utilizing the sapi event emitted by Auth0 Logs upon a successful Management API request focused on destructive or modifying operations.
Think of this category of log detections as the perfect complement to tools like Checkmate for Auth0, which provides a snapshot of your current configuration state. While Checkmate is excellent for security reporting and guiding tenant administrators, log detections offer a real-time security detection view for continuous Auth0 Configuration Monitoring. This approach logically shortens the time to detection when your identity security posture begins to drift.
This approach does not consume your Auth0 Management API rate limits as it relies solely on the logs streamed from Auth0 to your Security Information and Event Management (SIEM) tooling, a security best practice.
By implementing these detections, your security team can:
- Be Alerted in Real-Time when critical, security-related configurations are changed.
- Review Configuration State during incident triaging (for example, "Was the bot detection feature active when the signup fraud was detected?").
- Establish a Configuration Audit Trail detailing when and by whom monitored settings were altered, which is vital for compliance and post-incident review.
- Enforce Best Security Practices by providing visibility into configuration alterations made by developers or administrators.
In this section, we provide detections covering the following areas: Attack Protection, MFA settings, and usage of the Management API.
The detection attack_protection_features_turned_off.yml focuses on Suspicious IP Throttling, Breach Password Protection, and Brute-force Protection.
index=auth0 data.tenant_name="{your-tenant-name}"
data.type=sapi data.description IN ("Update Suspicious IP Throttling settings",
"Update Breached Password Detection settings", "Update Brute-force settings")
| eval feature_type = case(
'data.description'="Update Suspicious IP Throttling settings",
"Suspicious IP Throttling",
'data.description'="Update Breached Password Detection settings",
"Breached Password Detection",
'data.description'="Update Brute-force settings", "Brute-force"
)Take only the last modifications of settings for each feature
| sort -_time
| dedup feature_type
| eval status = case ('data.details.response.body.enabled' = "false", "disabled",
'data.details.response.body.enabled' = "true", "enabled")
| fields _time, status, feature_type, data.ip
``` for reporting purposes remove the "where" clause below and it will display the current status of all three protection features```
| where status = "disabled"
`Display the results printing out timestamp, modifying IP, feature reference,and its status`
| stats by _time, data.ip,feature_type, statusThis detection provides a list of disabled features. Alternatively, it can be adjusted to provide the summary whether each feature is enabled or disabled based on the last modification record by commenting out the line | where status = "disabled".

