OpenAI SCIM Configuration Change
Description
Detects when SCIM (System for Cross-domain Identity Management) is enabled or disabled in an OpenAI organization. SCIM provides automated user provisioning and deprovisioning from identity providers (IdP) to OpenAI. Disabling SCIM can: - Bypass identity governance and access control policies - Allow orphaned accounts to persist after employee offboarding - Indicate an attempt to maintain unauthorized access - Violate compliance requirements for automated access management Enabling SCIM should be monitored for visibility into identity integration changes.
Query · python
def rule(event):
return event.get("type") in ["scim.enabled", "scim.disabled"]
def title(event):
event_type = event.get("type", "")
action = "Enabled" if event_type == "scim.enabled" else "Disabled"
email = event.deep_get("actor", "session", "user", "email", default="<UNKNOWN_USER>")
return f"OpenAI SCIM {action} by [{email}]"
def severity(event):
if event.get("type") == "scim.disabled":
return "HIGH"
if event.get("type") == "scim.enabled":
return "LOW"
return "DEFAULT"
def alert_context(event):
field = "scim_enabled" if event.get("type") == "scim.enabled" else "scim_disabled"
return {
"event_type": event.get("type", "<UNKNOWN_EVENT_TYPE>"),
"event_id": event.get("id", "<UNKNOWN_EVENT_ID>"),
"scim_resource_id": event.deep_get(field, "id", default="<UNKNOWN_SCIM_RESOURCE_ID>"),
"actor_email": event.deep_get(
"actor", "session", "user", "email", default="<UNKNOWN_ACTOR_EMAIL>"
),
"actor_id": event.deep_get("actor", "session", "user", "id", default="<UNKNOWN_ACTOR_ID>"),
"source_ip": event.deep_get(
"actor", "session", "ip_address", default="<UNKNOWN_SOURCE_IP>"
),
"user_agent": event.deep_get(
"actor", "session", "user_agent", default="<UNKNOWN_USER_AGENT>"
),
"ip_details": event.deep_get("actor", "session", "ip_address_details", default={}),
}
Analyst notes
- Verify the SCIM configuration change was authorized. Confirm whether the change aligns with approved identity management policies or integration updates.
- If SCIM was disabled, immediately verify that user provisioning and deprovisioning workflows are not disrupted. Check if there are alternative mechanisms in place for user lifecycle management.
- Review the actor who made the change, including source IP, geolocation, and timing. Investigate if the change was made from an unusual location or during off-hours.
- If the change is unauthorized or suspicious, immediately re-enable SCIM (if disabled), review all user accounts for unauthorized access, audit recent role assignments, and escalate for security review.