This feature is only available with Identity Threat Protection in Identity Engine.
The Shared Signals Framework (SSF) Security Event Tokens API allows third-party security event providers to send Security Event Tokens (SETs) to Okta. The provider must be configured in Okta as a Security Events Provider instance before transmitting a SET to Okta. See Create a Security Events Provider. After the token is verified, any appropriate action is performed upon ingestion.
Okta uses the Shared Signals Framework (SSF) defined by the OpenID Shared Signals and Events Framework specification. A risk signal is ingested as a Security Event Token (SET), a type of JSON Web Token (JWT) that must comply with the SET standard: RFC 8417 - Security Event Token(SET). The security.events.provider.receive_event
System Log event is created when a SET is published to Okta successfully.
JSON Web Token body payload for a Security Event Token
iss required | string Token issuer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aud required | string Audience | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jti required | string Token ID | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
iat required | integer <int64> Token issue time (UNIX timestamp) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required | object (SecurityEventTokenRequestJwtEvents) A non-empty collection of events | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
{- "events": {
- "https://schemas.okta.com/secevent/okta/event-type/device-risk-change": {
- "current_level": "low",
- "event_timestamp": 1702448550,
- "initiating_entity": "admin",
- "previous_level": "medium",
- "reason_admin": {
- "en": "Event message example"
}, - "reason_user": {
- "en": "Event message example"
}, - "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}, - "https://schemas.okta.com/secevent/okta/event-type/ip-change": {
- "current_ip_address": "123.4.5.6",
- "event_timestamp": 1702448550,
- "initiating_entity": "admin",
- "previous_ip_address": "123.45.67.8",
- "reason_admin": {
- "en": "Event message example"
}, - "reason_user": {
- "en": "Event message example"
}, - "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}, - "https://schemas.okta.com/secevent/okta/event-type/user-risk-change": {
- "current_level": "low",
- "event_timestamp": 1702448550,
- "initiating_entity": "admin",
- "previous_level": "medium",
- "reason_admin": {
- "en": "Event message example"
}, - "reason_user": {
- "en": "Event message example"
}, - "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}, - "https://schemas.openid.net/secevent/caep/event-type/device-compliance-change": {
- "current_status": "non-compliant",
- "event_timestamp": 1702448550,
- "initiating_entity": "admin",
- "previous_status": "compliant",
- "reason_admin": {
- "en": "Event message example"
}, - "reason_user": {
- "en": "Event message example"
}, - "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}, - "https://schemas.openid.net/secevent/caep/event-type/session-revoked": {
- "current_ip": "123.4.5.6",
- "current_user_agent": "CurrentUserAgent",
- "event_timestamp": 1702448550,
- "initiating_entity": "admin",
- "last_known_ip": "123.4.5.6",
- "last_known_user_agent": "LastUserAgent",
- "reason_admin": {
- "en": "Event message example"
}, - "reason_user": {
- "en": "Event message example"
}, - "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}, - "https://schemas.openid.net/secevent/risc/event-type/identifier-changed": {
- "event_timestamp": 1702448550,
- "new-value": "new.email@okta.example.com",
- "subject": {
- "device": { },
- "tenant": { },
- "user": { }
}
}
}, - "iat": 1702448550,
- "jti": "24c63fb56f ... a9fa24"
}
JSON Web Token header for a Security Event Token
kid required | string Key ID used to sign or encrypt the JWT |
typ required | string The type of content being signed or encrypted |
alg required | string Algorithm used to sign or encrypt the JWT |
{- "alg": "RS256",
- "kid": "string",
- "typ": "secevent+jwt"
}
Publishes a Security Event Token (SET) sent by a Security Events Provider. After the token is verified, Okta ingests the event and performs any appropriate action.
The request body is a signed SET, which is a type of JSON Web Token (JWT).
For SET JWT header and body descriptions, see SET JWT header and SET JWT body payload.
Accepted
Bad Request
eyJraWQiOiJzYW1wbGVfa2lkIiwidHlwIjoic2ZXZlbnQra ... mrtmw
{- "description": "Failed claim validation in security event token. 'events.mediationDeviceComplianceChangeEvent.previousStatus': The field cannot be left blank",
- "err": "invalid_request"
}