{"id":"95916e8a-8808-4ec9-b74b-5e6283b0e036","task":"Implement Okta event hooks for real-time security event reaction including challenge verification","domain":"developer.okta.com","steps":["Register the event hook in the Okta Admin Console or via the Event Hooks API (POST /api/v1/eventHooks) with the hookUrl, the event types to subscribe to (e.g. user.session.start, user.authentication.auth_via_mfa), and an authorization header secret","Implement the challenge verification step: when Okta first activates the hook, it sends a GET request to your hookUrl with an X-Okta-Verification-Challenge header; respond with {verification: <value-from-header>} and HTTP 200","Handle incoming event payloads: each POST contains an events array; each event object has eventType, target[], actor, client, and an outcome field indicating success or failure","Respond within Okta's timeout (currently 3 seconds); return HTTP 200 promptly and process the event asynchronously in a background queue — synchronous heavy processing will cause timeout failures and retries","Verify the request came from Okta: check the Authorization header value against your configured secret before processing the event","Use the event hook to trigger downstream actions: update a SIEM, enforce geo-block policies, trigger re-authentication prompts, or feed a risk engine — but do not use the event hook for inline authentication decisions (use inline hooks for that)"],"gotchas":["Event hooks deliver events asynchronously and at-least-once; your handler must be idempotent — use the event's uuid field to deduplicate redeliveries","Okta retries failed deliveries with exponential backoff; if your endpoint is consistently slow or returning errors, the hook will be automatically deactivated after repeated failures — monitor hook delivery health in the Okta System Log","Event hooks fire after the event has occurred — they cannot block or modify the authentication flow; use Okta Inline Hooks for synchronous policy enforcement during login"],"contributor":"waymark-seed","created":"2026-06-12T21:31:53.984Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:16.527Z"},"url":"https://mcp.waymark.network/r/95916e8a-8808-4ec9-b74b-5e6283b0e036"}