Sessions

Session is a context of an authentication and capture various details about the client context, the type of authentication, exploiter device, authentication device, which methods where used, claims and other. This session is created by the server when the service provider initiates the authentication, it gets an unique ID and keeps updated on each step and action made by the client during the authentication journey.



authentication-session.drawio.png


Captured details:

  • journey ID - each authentication is performed using a journey. A journey is a collection of rules used during the authentication and can enforce multiple authentication steps.

  • the type of the authentication (QR, PUSH, SMS, PIN, TOTP, SPNEGO, YUBICO_OTP, FIDO, …)

  • authentication related timestamps:

    • request time - the time the authentication was requested by the client

    • register time - the time of authentication registration in Veridium backend

    • expire time - the expiration time of the authentication. When the expiration is reached without a final resolution, then the session is closed with timeout status

    • complete time - the session close time. This value is filled when the final session status is set.

  • authentication final status. This value can be: completed, failed, timeout, canceled

  • identity details: ID, external ID, UPN and display name

  • identity external claims - the external claims fetched from Active Directory

  • exploiter devices - this object tracks:

    • the name and device ID of the Identity Provider

    • the service provider ID and name

    • service provider user agent - it can be either browser or desktop context (like the IP, browser name, browser version, OS details, …)

  • authenticator device - it can be mobile device or browser or desktop (application version, mobile device name, OS, IP, browser name, browser version, …)

  • biometric methods used during the authentication, no of attempts and final status (successfully used or failed)



Storage format in Elasticsearch


The sessions are stored in 2 index aliases:

  • sessions - finished veridium sessions. The source document is the serialised json of the AuthenticationSession entity from the main model

  • sessions_history - contains the history changes of the session. The document is used to load the full history of the session as raw data for now without indexed field yet. TODO: the sessions history will be migrated to the model similar to accounts and devices (later added).


Sessions indices

Sessions are distributed in indices using time window pattern. One index for each month following the pattern sessions-YYYY-MM (veridium.sessions-2024-02).

The same rules apply for sessions history index. Pattern: sessions_history-YYYY-MM (veridium.sessions_history-2024-02).

The index is automatically created when the first session index request is received for the current month.

Documents are never individually deleted, only the entire index gets deleted according to the lifecycle policy.


Search and statistics

The search and statistics requests are done against the “sessions“ alias. This alias incluse all sessions indices.

Sessions document model


Searchable fields

Field path

Functional meaning

Mapping types

Notes

Example value

id


keyword

searchable as keyword only (exact value)

"f75e7f4f-352a-4fbd-9d6c-7af06a54a7a6"

type


keyword_lowercase


"QR"

accountId


keyword

  • searchable as keyword only (exact value)

  • aggregations by value

"aad40845-0fa4-4159-9db6-d32865f6e7f9"

accountName


text

full text search (individual terms, partial terms, lower/upper case)

"Özgür Şahin"

identityId


keyword


"c6e88ecf-14a1-4adc-9baf-460190d3bbf0"

identityExternalId


keyword_lowercase


"S-1-5-21-410015106-2063711249-828150371-1261"

identityDisplayName


text


"johndoe@veridiumid.com"

identityUpn


text


"johndoe@dev.local2"

applicationId


text

full text search (individual terms, partial terms, lower/upper case)

"AD"

memberDefinitionId


keyword_lowercase


"d2535f4f-f510-4875-8991-55974a566a69"

memberDefinitionExternalId


keyword_lowercase


"ADv2MultiStepEnrollment"

status


keyword_lowercase

  • searchable as keyword only (lowercase value)

  • aggregations by value

"COMPLETED"

authenticationResult


keyword_lowercase


"AUTHENTICATED"

requestTime

time the authentication requested

date


"2024-06-11T13:42:50.577+00:00"

registerTime

time the session was inserted in DB

date


"2024-06-11T13:42:52.351+00:00"

completeTime

session completion

date


"2024-06-11T13:43:10.310+00:00"

expireTime

session expire time

date


"2024-06-11T13:43:12.335+00:00"

authenticationTime


date


"2024-06-11T13:43:10.292+00:00"

transactionType


text

full text search (individual terms, partial terms, lower/upper case)

"B2B"

transactionCode


keyword


"b322d843203a213c7542c0e89bce50608f811a9db5762b235ebd98913b75da5a"

biometricMethods.type


keyword

  • array of values for a single session

  • searchable as keyword only (exact value)

  • aggregations by value

"TOUCHID"

biometricMethodsTypesFlatten


keyword

  • searchable as keyword only (exact value)

  • aggregations by value



biometricMethods.status

successfully applied the biometrics?!

boolean

boolean filter can be applied

true / false

biometricMethods.retries


long

range filter, sessions counts by retries


numberOfFailedAttempts


long


0

journeyId


keyword

  • searchable as keyword only (exact value)

  • aggregations by value

"b8204060-2127-4ade-9d04-e06b68f90bd8"

journeyDefinitionId


keyword


"d9544754-de7a-415e-b087-c33adf35b685"

journeyStateName


text

full text search (individual terms, partial terms, lower/upper case)

"Authenticated"

journeyStateName.keyword


keyword

  • searchable as keyword only (exact value)

  • aggregations by value

"Authenticated"

location.accuracy


float


5.0

location.city


text


"Bucharest"

location.coordinates.latitude


float


44.5298949

location.coordinates.longitude


float


26.0597304

location.countryCode


keyword


"RO"

location.countryName


text


"Romania"

location.ip


keyword


"95.43.32.22,95.43.32.23"

location.source


text


"MOBILE"

location.source.keyword


keyword


"MOBILE"

exploiterDeviceName


keyword_lowercase


"shibboleth_dc1"

exploiterDeviceId


keyword_lowercase

  • searchable as keyword only (lowercase value)

  • aggregations by value

"shibboleth_dc1"

authenticationDeviceName


text

full text search (individual terms, partial terms, lower/upper case)

"iPhone"

authenticationDeviceDescription


text


"iPhone12,3 ' 17.3.1"

authenticationDeviceType


keyword_lowercase

  • searchable as keyword only (lowercase value)

  • aggregations by value

"PHONE"

authenticationDeviceOs


text


"iOS"

authenticationDeviceOsVersion


text


"17.3.1"

authenticationDevicePhone


text


"Apple iPhone 11 Pro"

authenticationDevicePhoneModel


text


"iPhone12,3"

authenticationDeviceRegistrationTime


date


"2024-06-10T12:15:14.399+00:00"

desktopAuthenticatorType


keyword_lowercase


"SERVER_FULL"

phoneAuthenticatorType


keyword_lowercase


"CLIENT_FULL"






signatureInformation.algorithm


keyword


"SHA256withECDSA"

signatureInformation.authenticator


keyword


"TOUCHID"






httpContextIP


keyword


"10.202.103.104"






identityToken.id


keyword


"b23077d3-3c35-4b1a-a887-c719616af89f"

identityToken.authenticationRequestTime


long


1718113370577

identityToken.authenticationGrantedTime


long


1718113390292

identityToken.authenticationDeviceId


keyword


"42c33c26-80c3-4cd9-87d4-580a41b18e22"

identityToken.exploiterDeviceId


text


"shibboleth_dc1"

identityToken.expirationTime


long


1718116990295

identityToken.subject


keyword


"S-1-5-21-410015106-2063711249-828150371-1261"

identityToken.upn


text


"johndoe@dev.local2"

identityToken.upn.keyword


keyword


"johndoe@dev.local2"

identityToken.location.countryCode


text


"RO"

identityToken.location.countryCode.keyword


keyword


"RO"

identityToken.location.source


text


"MOBILE"

identityToken.location.source.keyword


keyword


"MOBILE"

identityToken.location.countryName


text


"Romania"

identityToken.location.countryName.keyword


keyword


"Romania"

identityToken.location.city


text


"Bucharest"

identityToken.location.city.keyword


keyword


"Bucharest"

identityToken.location.coordinates.latitude


float


44.5298949

identityToken.location.coordinates.longitude


float


26.0597304

identityToken.location.accuracy


float


5.0

identityToken.ubaOutput.answer


float


2

identityToken.ubaOutput.answerConfidence


keyword


"HIGH"

identityToken.ubaOutput.resolveType


keyword


"processed"

identityToken.ubaOutput.score


float


1.0

identityToken.ubaContextOutput.answer


float


1

identityToken.ubaContextOutput.answerConfidence


keyword


"HIGH"

identityToken.ubaContextOutput.resolveType


keyword


"processed"

identityToken.ubaContextOutput.score


float


4.299605940341516






authenticatorDeviceContext.localDateTime


date


"2024-06-12T13:42:09.918+00:00"

authenticatorDeviceContext.timezoneOffset


long


-180

authenticatorDeviceContext.ip


text


"10.202.103.104"

authenticatorDeviceContext.ip.keyword


keyword


"10.202.103.104"

authenticatorDeviceContext.userAgentName


text


"VeridiumAuthenticator DEV"

authenticatorDeviceContext.userAgentName.keyword


keyword


"VeridiumAuthenticator DEV"

authenticatorDeviceContext.userAgentVersion


text


"3.2.7"

authenticatorDeviceContext.userAgentVersion.keyword


keyword


"3.2.7"

authenticatorDeviceContext.userAgentDevice


text


"Phone"

authenticatorDeviceContext.userAgentDevice.keyword


keyword


"Phone"

authenticatorDeviceContext.language


text


"en"

authenticatorDeviceContext.language.keyword


keyword


"en"

authenticatorDeviceContext.internetConnectionType


text


"WiFi"

authenticatorDeviceContext.internetConnectionType.keyword


keyword


"WiFi"

authenticatorDeviceContext.deviceMake


text


"Apple"

authenticatorDeviceContext.deviceMake.keyword


keyword


"Apple"

authenticatorDeviceContext.deviceModel


text


"iPhone12,3"

authenticatorDeviceContext.deviceModel.keyword


keyword


"iPhone12,3"

authenticatorDeviceContext.osName


text


"iOS"

authenticatorDeviceContext.osName.keyword


keyword


"iOS"

authenticatorDeviceContext.osVersion


text


"17.3.1"

authenticatorDeviceContext.osVersion.keyword


keyword


"17.3.1"

authenticatorDeviceContext.hasHardwareCryptoSupport


boolean


true






exploiterDeviceContext.***










authenticatorDeviceContext.location.countryName


text


"Romania"

authenticatorDeviceContext.location.countryName.keyword


keyword


"Romania"

authenticatorDeviceContext.location.city


text


"Bucharest"

authenticatorDeviceContext.location.city.keyword


keyword


"Bucharest"

authenticatorDeviceContext.location.coordinates.latitude


float


44.5298949

authenticatorDeviceContext.location.coordinates.longitude


float


26.0597304

authenticatorDeviceContext.location.accuracy


float


5.0

authenticatorDeviceContext.location.source


text


"MOBILE"

authenticatorDeviceContext.location.source.keyword


keyword


"MOBILE"

authenticatorDeviceContext.location.countryCode


text


"RO"

authenticatorDeviceContext.location.countryCode.keyword


keyword


"RO"






identityExternalValues.commonName


text


"CN=John Doe,OU=Users,OU=Dev,DC=dev,DC=local"

identityExternalValues.commonName.keyword


keyword


"CN=John Doe,OU=Users,OU=Dev,DC=dev,DC=local"

identityExternalValues.firstname


text


"Özgür"

identityExternalValues.lastname


text


"Şahin"

identityExternalValues.mail


text


"johndoe@veridiumid.com"

identityExternalValues.mail.keyword


keyword


"johndoe@veridiumid.com"

identityExternalValues.email


text


"johndoe@veridiumid.com"

identityExternalValues.email.keyword


keyword


"johndoe@veridiumid.com"

identityExternalValues.sAMAccountName


text


"johndoe"

identityExternalValues.sAMAccountName.keyword


keyword


"johndoe"

identityExternalValues.displayName


text


"Özgür Şahin"

identityExternalValues.displayName.keyword


keyword


"Özgür Şahin"

identityExternalValues.distinguishedName


text


"CN=John Doe,OU=Users,OU=Dev,DC=dev,DC=local"

identityExternalValues.distinguishedName.keyword


keyword


"CN=John Doe,OU=Users,OU=Dev,DC=dev,DC=local"

identityExternalValues.phoneno


text


"+40741027307"

identityExternalValues.phoneno.keyword


keyword


"+40741027307"

identityExternalValues.upn


keyword


"johndoe@dev.local2"

identityExternalValues.implicitUpn


text


"johndoe@dev.dev.local"

identityExternalValues.implicitUpn.keyword


keyword


"johndoe@dev.dev.local"

identityExternalValues.domain


text


"dev.local"

identityExternalValues.domain.keyword


keyword


"dev.local"

identityExternalValues.memberOf


text


[
            "CN=Veridiumid_Alerts,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Veridiumid_Licensing,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Veridiumid_AppAdmins,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Administrators,CN=Builtin,DC=dev,DC=local",
            "CN=Domain Admins,CN=Users,DC=dev,DC=local",
            "CN=MFA-UBA,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Remote Desktop Users,CN=Builtin,DC=dev,DC=local",
            "CN=Domain Users,CN=Users,DC=dev,DC=local",
            "CN=Remote Management Users,CN=Builtin,DC=dev,DC=local",
            "CN=GroupTest,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=localgroup,OU=Groups,OU=QC,DC=qc,DC=local",
            "CN=Veridiumid_Users,OU=Groups,OU=Dev,DC=dev,DC=local"
        ]

identityExternalValues.memberOf.keyword


keyword

search or group by individual group keyword

"CN=Veridiumid_Alerts,OU=Groups,OU=Dev,DC=dev,DC=local"

identityExternalValues.userPrincipalName


text


"johndoe@dev.local2"

identityExternalValues.userPrincipalName.keyword


keyword


"johndoe@dev.local2"














Example of json session document:


JSON
{
    "id": "f75e7f4f-352a-4fbd-9d6c-7af06a54a7a6",
    "alias": {},
    "applicationId": "AD",
    "accountId": "aad40845-0fa4-4159-9db6-d32865f6e7f9",
    "exploiterDeviceId": "shibboleth_dc1",
    "status": "COMPLETED",
    "biometricMethods": [
        {
            "type": "TOUCHID",
            "status": true,
            "retries": 0
        }
    ],
    "journeyId": "b8204060-2127-4ade-9d04-e06b68f90bd8",
    "journeyDefinitionId": "d9544754-de7a-415e-b087-c33adf35b685",
    "journeyStateName": "Authenticated",
    "commands": [],
    "ubaMotionOutput": {
        "answer": 2,
        "answerConfidence": "HIGH",
        "score": 1.0,
        "resolveType": "processed",
        "errorMessage": "",
        "errorCausedBy": ""
    },
    "ubaContextOutput": {
        "answer": 1,
        "answerConfidence": "HIGH",
        "score": 4.299605940341516,
        "resolveType": "processed",
        "scoreReason": {
            "DIFFERENT_DEVICE": "[Current mobile app version is 3.2.7, while previously used ones are: 3.6.0.]"
        },
        "criteriaMet": {
            "SAME_COUNTRY_CODE": "[Country code is the same: RO. Source: MOBILE.]",
            "IP_IN_HISTORY": "[IP address or IP class for authenticator is in user history., IP address or IP class for workstation is in user history.]",
            "NORMAL_TRAVEL": "[The user has traveled (km) 0.0075 with a speed (km/h) of 0.0001 in (hh:mm:ss): 51:18:41. Geolocation source: MOBILE]",
            "IP_LOCAL_NETWORK": "[Authenticator IP address from private network (Class A)]"
        },
        "errorMessage": "",
        "errorCausedBy": ""
    },
    "ubaSessionId": "f75e7f4f-352a-4fbd-9d6c-7af06a54a7a6",
    "location": {
        "countryCode": "RO",
        "source": "MOBILE",
        "countryName": "Romania",
        "city": "Bucharest",
        "coordinates": {
            "latitude": 44.5298949,
            "longitude": 26.0597304
        },
        "accuracy": 5.0,
        "errorCode": 0
    },
    "authenticationDeviceName": "iPhone",
    "authenticationDeviceDescription": "iPhone12,3 ' 17.3.1",
    "authenticationDeviceType": "PHONE",
    "authenticationDeviceOs": "iOS",
    "authenticationDeviceOsVersion": "17.3.1",
    "authenticationDevicePhone": "Apple iPhone 11 Pro",
    "authenticationDevicePhoneModel": "iPhone12,3",
    "authenticationDeviceRegistrationTime": "2024-06-10T12:15:14.399+00:00",
    "accountName": "Özgür Şahin",
    "exploiterDeviceName": "shibboleth_dc1",
    "authenticationResult": "AUTHENTICATED",
    "requestTime": "2024-06-11T13:42:50.577+00:00",
    "registerTime": "2024-06-11T13:42:52.351+00:00",
    "completeTime": "2024-06-11T13:43:10.310+00:00",
    "expireTime": "2024-06-11T13:43:12.335+00:00",
    "authenticationTime": "2024-06-11T13:43:10.292+00:00",
    "transactionType": "B2B",
    "transactionCode": "b322d843203a213c7542c0e89bce50608f811a9db5762b235ebd98913b75da5a",
    "signatureInformation": [
        {
            "authenticator": "TOUCHID",
            "signature": "MEUCIHFefgbzOMfdZFOhFkNcwU05pcDn51otOKZ3s1+vek4FAiEAxzBxxi8jtkO09KUeQ8osxHb0h/2VJ+thZ02XbxugdFg=",
            "publicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYd/oiltCPAHMPpbgqAmMXuwe5TVLOXXUaDr0PuUG2LFidFS2FeEyvI4aXN4YchAa38tcvRORPzON66m8qgITLA==",
            "algorithm": "SHA256withECDSA"
        }
    ],
    "desktopAuthenticatorType": "SERVER_FULL",
    "phoneAuthenticatorType": "CLIENT_FULL",
    "identityId": "c6e88ecf-14a1-4adc-9baf-460190d3bbf0",
    "identityExternalId": "S-1-5-21-410015106-2063711249-828150371-1261",
    "identityDisplayName": "ailie@veridiumid.com",
    "identityUpn": "ailie@dev.local2",
    "memberDefinitionId": "d2535f4f-f510-4875-8991-55974a566a69",
    "memberDefinitionExternalId": "ADv2MultiStepEnrollment",
    "type": "QR",
    "numberOfFailedAttempts": 0,
    "identityToken": {
        "id": "b23077d3-3c35-4b1a-a887-c719616af89f",
        "authenticationRequestTime": 1718113370577,
        "authenticationGrantedTime": 1718113390292,
        "authenticationDeviceId": "42c33c26-80c3-4cd9-87d4-580a41b18e22",
        "exploiterDeviceId": "shibboleth_dc1",
        "expirationTime": 1718116990295,
        "subject": "S-1-5-21-410015106-2063711249-828150371-1261",
        "upn": "ailie@dev.local2",
        "location": {
            "countryCode": "RO",
            "source": "MOBILE",
            "countryName": "Romania",
            "city": "Bucharest",
            "coordinates": {
                "latitude": 44.5298949,
                "longitude": 26.0597304
            },
            "accuracy": 5.0,
            "errorCode": 0
        },
        "ubaOutput": {
            "answer": 2,
            "answerConfidence": "HIGH",
            "score": 1.0,
            "resolveType": "processed",
            "errorMessage": "",
            "errorCausedBy": ""
        },
        "ubaContextOutput": {
            "answer": 1,
            "answerConfidence": "HIGH",
            "score": 4.299605940341516,
            "resolveType": "processed",
            "scoreReason": {
                "DIFFERENT_DEVICE": "[Current mobile app version is 3.2.7, while previously used ones are: 3.6.0.]"
            },
            "criteriaMet": {
                "SAME_COUNTRY_CODE": "[Country code is the same: RO. Source: MOBILE.]",
                "IP_IN_HISTORY": "[IP address or IP class for authenticator is in user history., IP address or IP class for workstation is in user history.]",
                "NORMAL_TRAVEL": "[The user has traveled (km) 0.0075 with a speed (km/h) of 0.0001 in (hh:mm:ss): 51:18:41. Geolocation source: MOBILE]",
                "IP_LOCAL_NETWORK": "[Authenticator IP address from private network (Class A)]"
            },
            "errorMessage": "",
            "errorCausedBy": ""
        }
    },
    "identityTokenSignature": "alDj3SxaCWIoR4mh0Ub5kZh5L3DxajY6VWeDB+vyJMN9FRBdFQoc4mOWNPliVvMiOkD3Z+zdyUINJ1gJGFSryO5LoO6FVza6HrvfRjIgPBZkujSsMyVzQ8Djf2kvc7PWNn0RKRyZHgO77RKhcI95gP6nd6OKsHEQYGmPF/L17q+tXE6nwze5xD8eeKj+R3dv9ljBU1LKqqFx9cdaqTXPs55YxbDESYbedDFeQUb8QaY8hYFWY9DSHmsgOKXRA33e4XEoEuuiaupvZm4nc5g/EBrVMtM9bny8cNQDDhBF6rRwEkFmpJ6NeLSflipGLrPjejJQ9aEFYDxQFQwL/ZQchfj0HCTFYGvR7XHhB8A1xv0rbuch4GLxQ7T3QvP4tixROwUD7fvVTqToLDg2pOZ8vdcSZm6S3DCNTwbKXHVPbbZ3uFXO+0tc+ZWoDluwru9vfpeo1Q/O/Tl9CEdp35eRN5dh4Tre1GOJqqqcJ4yCXfXX+OKVPciV3paPGSSqHRHE1svKTZjIY5p2TGhzWqCaz6bppJ2sCtHp80+bfR8OStiXrjLA3kPJ5i3ISQrBAeJgYDNu2/e8fq9+EZm9oI+kje1qq32DpFosuEBqzJnGGzwT0NPuzd7Z5/x4Xc8tTIG+yhIKIBHVLeq4oq4dTWzQepTElEvkfVPp8rq6NdxvZqg=",
    "identityTokenJWT": {
        "jti": "b23077d3-3c35-4b1a-a887-c719616af89f",
        "sub": "S-1-5-21-410015106-2063711249-828150371-1261",
        "aud": [
            "ADv2MultiStepEnrollment",
            "shibboleth_dc1"
        ],
        "iss": "VeridiumID",
        "exp": 1718116990,
        "iat": 1718113390,
        "tt": null,
        "tc": "b322d843203a213c7542c0e89bce50608f811a9db5762b235ebd98913b75da5a",
        "sid": "f75e7f4f-352a-4fbd-9d6c-7af06a54a7a6",
        "ad": "42c33c26-80c3-4cd9-87d4-580a41b18e22",
        "ed": "shibboleth_dc1",
        "upn": "ailie@dev.local2",
        "location": {
            "countryCode": "RO",
            "source": "MOBILE",
            "countryName": "Romania",
            "city": "Bucharest",
            "coordinates": {
                "latitude": 44.5298949,
                "longitude": 26.0597304
            },
            "accuracy": 5.0,
            "errorCode": 0
        },
        "uba_motion": {
            "answer": 2,
            "answerConfidence": "HIGH",
            "score": 1.0,
            "resolveType": "processed",
            "scoreReason": null,
            "criteriaMet": null,
            "errorMessage": "",
            "errorCausedBy": ""
        },
        "uba_context": {
            "answer": 1,
            "answerConfidence": "HIGH",
            "score": 4.299605940341516,
            "resolveType": "processed",
            "scoreReason": {
                "DIFFERENT_DEVICE": "[Current mobile app version is 3.2.7, while previously used ones are: 3.6.0.]"
            },
            "criteriaMet": {
                "SAME_COUNTRY_CODE": "[Country code is the same: RO. Source: MOBILE.]",
                "IP_IN_HISTORY": "[IP address or IP class for authenticator is in user history., IP address or IP class for workstation is in user history.]",
                "NORMAL_TRAVEL": "[The user has traveled (km) 0.0075 with a speed (km/h) of 0.0001 in (hh:mm:ss): 51:18:41. Geolocation source: MOBILE]",
                "IP_LOCAL_NETWORK": "[Authenticator IP address from private network (Class A)]"
            },
            "errorMessage": "",
            "errorCausedBy": ""
        }
    },
    "externalValues": {},
    "contextValues": {},
    "authenticatorDeviceContext": {
        "localDateTime": "2024-06-12T13:42:09.918+00:00",
        "timezoneOffset": -180,
        "ip": "10.202.102.102",
        "location": {
            "countryCode": "RO",
            "source": "MOBILE",
            "countryName": "Romania",
            "city": "Bucharest",
            "coordinates": {
                "latitude": 44.5298949,
                "longitude": 26.0597304
            },
            "accuracy": 5.0,
            "errorCode": 0
        },
        "userAgentName": "VeridiumAuthenticator DEV",
        "userAgentVersion": "3.2.7",
        "userAgentDevice": "Phone",
        "language": "en",
        "internetConnectionType": "WiFi",
        "deviceMake": "Apple",
        "deviceModel": "iPhone12,3",
        "osName": "iOS",
        "osVersion": "17.3.1",
        "isRooted": false,
        "hasHardwareCryptoSupport": true,
        "rooted": false
    },
    "exploiterDeviceContext": {
        "localDateTime": "2024-06-11T13:42:50.517+00:00",
        "timezoneOffset": -180,
        "ip": "95.43.32.22,95.43.32.23",
        "location": {
            "ip": "95.43.32.22",
            "countryCode": "BG",
            "countryName": "Bulgaria",
            "regionCode": "22",
            "regionName": "Sofia-Capital",
            "city": "Sofia",
            "postalCode": "1000",
            "coordinates": {
                "latitude": 42.6951,
                "longitude": 23.325
            },
            "accuracy": 0.0,
            "errorCode": 0
        },
        "userAgentRaw": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36",
        "userAgentName": "Chrome",
        "userAgentVersion": "125.0.0",
        "userAgentDevice": "Mac",
        "userAgentTrustId": "17434b7f-56ac-4514-90a7-ef20b3a7e937",
        "language": "en-GB",
        "osName": "Mac OS X",
        "osVersion": "10.15.7",
        "isRooted": false,
        "hasHardwareCryptoSupport": false,
        "serviceIdentifier": "SSP",
        "serviceFriendlyName": "Self Service Portal",
        "rooted": false
    },
    "identityExternalValues": {
        "commonName": "CN=Alex Ilie,OU=Users,OU=Dev,DC=dev,DC=local",
        "lastName": "Şahin",
        "firstname": "Özgür",
        "mail": "ailie@veridiumid.com",
        "sAMAccountName": "ailie",
        "displayName": "Özgür Şahin",
        "distinguishedName": "CN=Alex Ilie,OU=Users,OU=Dev,DC=dev,DC=local",
        "co": "RO",
        "phoneno": "+40741027307",
        "lastname": "Şahin",
        "firstName": "Özgür",
        "upn": "ailie@dev.local2",
        "implicitUpn": "ailie@dev.local",
        "countryCode": "840",
        "displayname": "ailie@veridiumid.com",
        "domain": "dev.local",
        "memberOf": [
            "CN=Veridiumid_Alerts,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Veridiumid_Licensing,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Veridiumid_AppAdmins,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Administrators,CN=Builtin,DC=dev,DC=local",
            "CN=Domain Admins,CN=Users,DC=dev,DC=local",
            "CN=MFA-UBA,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=Remote Desktop Users,CN=Builtin,DC=dev,DC=local",
            "CN=Domain Users,CN=Users,DC=dev,DC=local",
            "CN=Remote Management Users,CN=Builtin,DC=dev,DC=local",
            "CN=GroupTest,OU=Groups,OU=Dev,DC=dev,DC=local",
            "CN=localgroup,OU=Groups,OU=QC,DC=qc,DC=local",
            "CN=Veridiumid_Users,OU=Groups,OU=Dev,DC=dev,DC=local"
        ],
        "email": "ailie@veridiumid.com",
        "userPrincipalName": "ailie@dev.local2",
        "pwdLastSet": "133621451928092660"
    },
    "assignedAgentTrust": {
        "identityId": "c6e88ecf-14a1-4adc-9baf-460190d3bbf0",
        "trustId": "17434b7f-56ac-4514-90a7-ef20b3a7e937",
        "sessionId": "15a93b13-1ba5-4c75-900d-061ecd415aa3",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
        "expireTime": "2024-07-10T07:56:00.923+00:00"
    },
    "httpContextIP": "10.202.102.102"
}