Skip to main content
This guide walks you through connecting your Okta environment to TruU TOTAL for persona generation and threat detection.

Overview

TOTAL ingests identity and authentication event data from your Okta tenant via the Okta System Log API. We poll the /api/v1/logs endpoint on a configurable interval to collect, normalize, and correlate authentication events, MFA challenges, user lifecycle changes, and administrative actions across your environment. Connector Type: Polling

Prerequisites

  • Okta Administrator access with permission to create API tokens or OAuth 2.0 service apps
  • Okta tenant (production or preview) with active users and event logging enabled
  • Super Admin or Read-Only Admin role for the service account
  • Approximately 15 minutes to complete setup

Step 1: Identify Your Okta Org URL

  1. Sign in to your Okta Admin Console
  2. Your Okta Org URL is displayed in the browser address bar — it follows the format https://your-org.okta.com
  3. Paste the Org URL into the TruU Portal
The Org URL is your unique Okta domain, e.g. https://acme.okta.com or https://acme.oktapreview.com for sandbox environments.

TOTAL authenticates to your Okta tenant using a scoped OAuth 2.0 service app with the Client Credentials grant flow.
  1. In the Okta Admin Console, navigate to ApplicationsApplications
  2. Click Create App Integration
  3. Select API Services and click Next
  4. Enter:
    • Name: TruU TOTAL - Log Reader
  5. Click Save
  6. On the app’s General tab, copy the Client ID
  7. Under Client Credentials, select Public key / Private key
  8. Click Add Key, generate a new key pair, and copy the Private Key (JSON)
  9. Paste the Client ID and Private Key into the TruU Portal

Assign Required Scopes

  1. Navigate to SecurityAPITokens (or the app’s Okta API Scopes tab)
  2. Grant the following scope:
    • okta.logs.read
  3. Optionally assign the Read-Only Administrator role to the service app under Admin Roles
Alternative: If your organization prefers SSWS API tokens, you can generate one under Security → API → Tokens. Copy the token value immediately — it is only shown once. Paste it into the TruU Portal. Note that SSWS tokens have broader access and shorter rotation cycles than scoped OAuth 2.0 tokens.

Step 3: Verify Connectivity

Once credentials are entered in the TruU Portal:
  1. Click Test Connection — TOTAL will issue a test query against your System Log API
  2. If successful, you’ll see a confirmation with the number of recent events detected
  3. If configured, TOTAL will run a historical data pull on initial setup to seed user personas before live monitoring begins

Security & Privacy

What We Access

  • Read-only access to the Okta System Log via /api/v1/logs
  • Queries use since / until filtering — we only fetch new events since the last poll
  • All API calls are scoped to the okta.logs.read permission

What We Don’t Have Access To

  • Write access to your Okta tenant
  • Ability to create, modify, or delete users, groups, or policies
  • Access to user passwords or MFA secrets
  • Access to Okta configuration or administrative functions

Updating or Rotating Credentials

  1. In Okta Admin Console, go to ApplicationsTruU TOTAL - Log Reader
  2. Under Client Credentials, click Add Key to generate a new key pair
  3. Copy the new private key and paste it into the TruU Portal
  4. After TOTAL confirms the new key is active, deactivate the old key

Revoke Access

To immediately remove TOTAL’s access:
  1. Option A — Disable in the TruU Portal:
    • Go to the TruU Portal → Settings → Connectors
    • Find the Okta connector and click Disable
  2. Option B — Deactivate the app in Okta:
    • Go to ApplicationsTruU TOTAL - Log Reader
    • Click Deactivate
  3. Option C — Delete the app:
    • Go to ApplicationsTruU TOTAL - Log Reader
    • Click Delete

Rate Limiting & Scalability

Okta API Rate Limits

ParameterLimit
System Log endpoint~120 req/min org-wide (varies by tier)
Per-token shareUp to 50% of the org-wide bucket
Response page size100 events per response (adjustable)
Throttle responseHTTP 429 with Retry-After header
DynamicScale add-onMultiplies limits on eligible endpoints

Ingestion Capacity

At the standard tier, TOTAL sustains ~200 events/sec — approximately 17.2M events/day. A large enterprise with 100K+ users typically generates 500K–2M Okta events/day, giving TOTAL 8–30× headroom above expected volume. Peak-hour surges (3–5× average during morning logins) are absorbed without approaching the ceiling.

Event Freshness

Events appear in the Okta System Log within seconds. TOTAL polls on a configurable interval (default: 60 seconds). End-to-end latency from event occurrence to TOTAL processing is typically under 2 minutes.

Resilience

TOTAL uses cursor-based ingestion with at-least-once delivery. The polling cursor only advances after events are successfully collected, normalized, and published. If any step fails — API throttling, network interruption, process restart — the cursor stays put and the next poll replays from the last known-good position. No events are lost. Transient failures (429s, 5xx, timeouts) are retried automatically with exponential backoff. After 5 consecutive failures, the connector self-pauses to prevent runaway retries and can be re-enabled from the TruU Portal. On recovery from an extended outage, TOTAL resumes from its last cursor — Okta retains System Log events for 90 days, so data loss requires 90+ days of downtime.

Part 2: Event Types & Data Schema

Signal Classification

Signal ClassTOTAL Category
Core IAMAuthentication, Admin
MFA & Device TrustAuthentication

Event Types We Ingest

TOTAL extracts the following categories of events from the Okta System Log. Every event is tied to a human identity via the actor field. System-level events (policy creation, application lifecycle) that are not attributable to a specific user are excluded.

Authentication Events

Okta Event TypeDescriptionTOTAL Classification
user.authentication.ssoSSO authentication into an applicationAuthentication
user.authentication.auth_via_mfaAuthentication via MFA challengeAuthentication
user.authentication.auth_via_IDPAuthentication via external Identity ProviderAuthentication
user.authentication.auth_via_socialAuthentication via social loginAuthentication
user.authentication.verifyStep-up authentication verificationAuthentication
user.session.startUser session initiatedAuthentication
user.session.endUser session terminatedAuthentication
user.session.clearAll sessions cleared for a userAuthentication
user.authentication.auth_via_radiusAuthentication via RADIUSAuthentication

MFA / Factor Events

Okta Event TypeDescriptionTOTAL Classification
user.mfa.factor.activateMFA factor enrolled and activatedAuthentication
user.mfa.factor.deactivateMFA factor removedAuthentication
user.mfa.factor.reset_allAll MFA factors reset for a userAuthentication
user.mfa.factor.updateMFA factor updatedAuthentication
user.mfa.attempt_bypassMFA bypass attemptedAuthentication
user.authentication.auth_via_mfaMFA challenge completedAuthentication

User Lifecycle Events

Okta Event TypeDescriptionTOTAL Classification
user.lifecycle.createNew user createdAdmin
user.lifecycle.activateUser account activatedAdmin
user.lifecycle.deactivateUser account deactivatedAdmin
user.lifecycle.suspendUser account suspendedAdmin
user.lifecycle.unsuspendUser account unsuspendedAdmin
user.lifecycle.delete.initiatedUser deletion initiatedAdmin
user.account.lockUser account lockedAuthentication
user.account.unlockUser account unlockedAdmin
user.account.unlock_tokenUnlock token generatedAdmin

Group & Role Events

Okta Event TypeDescriptionTOTAL Classification
group.user_membership.addUser added to groupAdmin
group.user_membership.removeUser removed from groupAdmin
user.account.privilege.grantAdmin privilege granted to userAdmin
user.account.privilege.revokeAdmin privilege revoked from userAdmin

Application Access Events

Okta Event TypeDescriptionTOTAL Classification
app.user_management.assign_user_to_appUser assigned to applicationAdmin
app.user_management.deactivate_userUser deactivated from applicationAdmin
application.provision.user.pushUser pushed to downstream appAdmin

Security Events

Okta Event TypeDescriptionTOTAL Classification
security.threat.detectedThreat detected for a user by Okta ThreatInsightAlert
security.request.blockedUser’s request blocked by ThreatInsightAlert

Sample Source Event (Okta System Log)

{
  "uuid": "f4d7e3c2-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
  "published": "2026-03-15T14:32:18.000Z",
  "eventType": "user.authentication.sso",
  "version": "0",
  "severity": "INFO",
  "displayMessage": "User single sign on to app",
  "actor": {
    "id": "00u1a2b3c4d5e6f7g8",
    "type": "User",
    "alternateId": "jane.doe@acme.com",
    "displayName": "Jane Doe"
  },
  "client": {
    "userAgent": {
      "rawUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
      "os": "Windows 10",
      "browser": "CHROME"
    },
    "zone": "null",
    "device": "Computer",
    "id": null,
    "ipAddress": "198.51.100.42",
    "geographicalContext": {
      "city": "San Francisco",
      "state": "California",
      "country": "United States",
      "postalCode": "94105",
      "geolocation": {
        "lat": 37.7749,
        "lon": -122.4194
      }
    }
  },
  "outcome": {
    "result": "SUCCESS",
    "reason": null
  },
  "target": [
    {
      "id": "0oa1a2b3c4d5e6f7g8",
      "type": "AppInstance",
      "alternateId": "Salesforce",
      "displayName": "Salesforce Production"
    }
  ],
  "transaction": {
    "type": "WEB",
    "id": "WcKr0pJxZmwAkLo2s",
    "detail": {}
  },
  "authenticationContext": {
    "authenticationProvider": "FACTOR_PROVIDER",
    "credentialProvider": null,
    "credentialType": "OTP",
    "externalSessionId": "102abc_session_xyz",
    "interface": null,
    "issuer": null
  },
  "securityContext": {
    "asNumber": 7018,
    "asOrg": "AT&T",
    "isp": "AT&T",
    "domain": "att.net",
    "isProxy": false
  }
}

TOTAL Normalized Event

The raw Okta event above is normalized into the TOTAL event schema:
{
  "event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "event_type": "AUTH",
  "source": "OKTA",
  "signal_type": "CORE_IAM",
  "domain_id": "customer-domain-001",
  "tuid": "tuid-jane-doe-001",
  "timestamp": "2026-03-15T14:32:18.000Z",
  "payload": {
    "event_id": "f4d7e3c2-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
    "user": "jane.doe@acme.com",
    "action": "user.authentication.sso",
    "outcome": "SUCCESS",
    "target_app": "Salesforce Production",
    "ip_address": "198.51.100.42",
    "city": "San Francisco",
    "country": "United States",
    "device": "Computer",
    "browser": "CHROME",
    "os": "Windows 10",
    "mfa_method": "OTP"
  },
  "raw_metadata": {
    "platform_event_id": "f4d7e3c2-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
    "event_type": "user.authentication.sso",
    "actor_id": "00u1a2b3c4d5e6f7g8",
    "actor_email": "jane.doe@acme.com",
    "actor_display_name": "Jane Doe",
    "outcome": "SUCCESS",
    "client_ip": "198.51.100.42",
    "client_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "client_device": "Computer",
    "geo_city": "San Francisco",
    "geo_state": "California",
    "geo_country": "United States",
    "geo_lat": 37.7749,
    "geo_lon": -122.4194,
    "authentication_provider": "FACTOR_PROVIDER",
    "credential_type": "OTP",
    "external_session_id": "102abc_session_xyz",
    "target_id": "0oa1a2b3c4d5e6f7g8",
    "target_type": "AppInstance",
    "target_display_name": "Salesforce Production",
    "security_as_org": "AT&T",
    "security_is_proxy": false,
    "created_at": "2026-03-15T14:32:18.000Z",
    "source_platform": "okta"
  },
  "platform_event_id": "f4d7e3c2-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
  "platform_event_source": "OKTA_SYSTEM_LOG_API"
}

How This Feeds TOTAL

Persona Building

Okta is one of the highest-value signal sources for TOTAL. Every SSO authentication, MFA challenge, and session event contributes to a user’s digital routine baseline — what apps they access, when, from where, and how they authenticate. This forms the core identity anchor of each persona.

Anomaly Detection

TOTAL’s behavioral engine uses Okta events to detect:
  • Impossible travel — authentication from geographically impossible locations within a short time window
  • Credential compromise indicators — failed authentication bursts, password spray patterns, unusual SSO targets
  • MFA fatigue attacks — rapid repeated MFA push notifications indicating an attacker trying to exhaust a user into approving
  • Privilege escalation — unexpected admin role grants, group membership changes that expand access boundaries
  • Account takeover signals — MFA factor resets, session anomalies, authentication from new devices or ISPs that deviate from the established persona

Breach Lifecycle Coverage

Okta events provide primary coverage across Compromise Identity, Scope / Lateral Movement, and Privilege Escalation stages — the earliest and most critical phases where TOTAL aims to shift detection left toward t₀.