Skip to main content
Applies to BloodHound Enterprise and CE

Overview

User objects (AKA People) represent individuals who have access to the Okta organization. Each user has a unique identifier, username in the email address format, and various attributes such as email, first name, last name, and status. In OktaHound, users are represented as Okta_User nodes.

Edges

The tables below list edges defined by the OktaHound extension only. Additional edges to or from this node may be created by other extensions.

Inbound Edges

Outbound Edges

Properties

NameSourceTypeDescription
iduser.idstringUnique user identifier.
nameuser.profile.loginstringOkta username/login.
displayNameuser.profile.displayNamestringUser display name.
oktaDomainCollector context (non-API)stringOkta organization domain where the user exists.
loginuser.profile.loginstringUser login/UPN value.
emailuser.profile.emailstringPrimary email address.
firstNameuser.profile.firstNamestringUser first/given name.
lastNameuser.profile.lastNamestringUser last/family name.
titleuser.profile.titlestringJob title from user profile when present.
departmentuser.profile.departmentstringDepartment value from user profile when present.
cityuser.profile.citystringCity/location value from user profile when present.
stateuser.profile.statestringState/region value from user profile when present.
countryCodeuser.profile.countryCodestringISO-like country code from user profile when present.
statususer.statusstringUser lifecycle status.
enabledIsEnabled(user.status)boolBoolean status projection used by BloodHound.
hasRoleAssignmentsCalculatedboolIndicates whether the user is assigned any administrative roles.
credentialProviderNameuser.credentials.provider.namestringAuthentication provider name for this user.
credentialProviderTypeuser.credentials.provider.typestringAuthentication provider type for this user.
managerIduser.profile.managerIdstringManager identifier from user profile synchronization.
activateduser.activateddatetimeTimestamp when the user account was activated.
createduser.createddatetimeUser creation timestamp.
passwordChangeduser.passwordChangeddatetimeTimestamp when the password was last changed.
lastLoginuser.lastLogindatetimeTimestamp of the most recent successful login.
lastUpdateduser.lastUpdateddatetimeLast profile/update timestamp.

Sample Property Values

id: 00uw2sodn4ZPJJQyx697
name: john.doe@contoso.com
displayName: John Doe
oktaDomain: contoso.okta.com
login: john.doe@contoso.com
email: john.doe@contoso.com
firstName: John
lastName: Doe
title: Senior Identity Engineer
department: Security Engineering
city: Seattle
state: WA
countryCode: US
status: ACTIVE
enabled: true
hasRoleAssignments: false
credentialProviderName: OKTA
credentialProviderType: OKTA
managerId: joe.smith@contoso.com
created: 2025-10-03T18:45:57+00:00
activated: 2025-10-03T19:02:11+00:00
passwordChanged: 2026-01-12T14:27:03+00:00
lastLogin: 2026-02-20T09:41:55+00:00
lastUpdated: 2025-10-29T11:09:47+00:00

User Status

User status can have multiple values, as illustrated below: Okta user status To simplify analysis in BloodHound, the OktaHound collector maps the Status attribute to the virtual boolean Enabled attribute as follows:
Okta User StatusEnabledExplanation
ACTIVEUser can authenticate.
PASSWORD_EXPIREDUser’s password has expired but can still authenticate.
LOCKED_OUTUser is locked out but can still authenticate after unlocking.
PROVISIONEDUser is provisioned but cannot authenticate yet.
RECOVERYUser is in recovery mode and cannot authenticate.
SUSPENDEDUser is suspended and cannot authenticate.
STAGEDUser is staged and cannot authenticate yet.
DEPROVISIONEDUser is deprovisioned and cannot authenticate.
This mapping is a simplification and may not cover all edge cases. Always refer to the actual Status attribute for precise user state information.

Authentication Factors

Okta supports various authentication factors for multi-factor authentication (MFA), such as SMS, email, push notifications, and hardware tokens. In case of mobile and desktop applications, these authentication factors are associated with the Device entities. Other authentication factors, such as YubiKeys and Google Authenticator, are not represented as separate nodes in BloodHound, but the number of enrolled factors is stored in the authenticationFactors attribute of the Okta_User nodes.

Synchronization with External Directories

Users can be synchronized from external directories such as Active Directory (AD) or LDAP. When synchronized, certain attributes may be mapped from the external directory to the Okta user profile. Additional Active Directory attributes