JumpCloud to JSM Assets

JumpCloud to JSM Assets

Import list of users and other objects from JumpCloud to JSM Assets.

Configure the connection to JumpCloud by going to OnLink (Manage your apps) - Connections. Then click on Add System and select “JumpCloud” option in the connection screen. You can follow the instructions from this page JumpCloud API .

Once connection is established, please review instructions here to get started with setting up an Assets import configuration. You can then access OnLink app from the “Manage your apps” menu to further configure and set the field level mapping. Here’s an example mapping configuration to fetch system users:
API Documentation Link https://docs.jumpcloud.com/api/1.0/index.html#tag/Systemusers/operation/systemusers_list

key:_id=id map:firstname=First Name map:lastname=Last Name map:email=Email map:username=User Name map:manager=Manager Name map:jobTitle=Job Title config:api=systemusers

Here’s a breakdown of some of the mapping configuration items:

Key or Map

Description

Key or Map

Description

key:_id=id

The keyword “key” refers to using id as a unique identifier. This allows OnLink to update the record. “id” is a text attribute.

map:firstname=First Name

Maps firstname to First Name text attribute

map:Manager=Manager Name

Maps Manager to Manager Name text attribute

config:filter

A filter to apply to the query.

Filter structure: The filter syntax follows a consistent pattern of <field>:<operator>:<value> (e.g. department:$eq:Finance)

config:api=systemusers

Use this config to pull list of users

Any fields from the API can be mapped.

{
"results": [
{
"_id": "string",
"account_locked": true,
"account_locked_date": "string",
"activated": true,
"addresses": [
{
"country": "string",
"extendedAddress": "string",
"id": "string",
"locality": "string",
"poBox": "string",
"postalCode": "string",
"region": "string",
"streetAddress": "string",
"type": "string"
}
],
"admin": {
"id": "string",
"roleName": "string"
},
"allow_public_key": true,
"alternateEmail": "string",
"attributes": [
{
"name": "string",
"value": "string"
}
],
"badLoginAttempts": 0,
"company": "string",
"costCenter": "string",
"created": "string",
"creationSource": "string",
"department": "string",
"description": "string",
"disableDeviceMaxLoginAttempts": true,
"displayname": "string",
"email": "string",
"employeeIdentifier": "string",
"employeeType": "string",
"enable_managed_uid": true,
"enable_user_portal_multifactor": true,
"external_dn": "string",
"external_password_expiration_date": "string",
"external_source_type": "string",
"externally_managed": true,
"firstname": "string",
"jobTitle": "string",
"lastname": "string",
"ldap_binding_user": true,
"location": "string",
"managedAppleId": "string",
"manager": "string",
"mfa": {
"configured": true,
"exclusion": true,
"exclusionDays": 1,
"exclusionUntil": "2019-08-24T14:15:22Z"
},
"mfaEnrollment": {
"overallStatus": "NOT_ENROLLED",
"pushStatus": "NOT_ENROLLED",
"totpStatus": "NOT_ENROLLED",
"webAuthnStatus": "NOT_ENROLLED"
},
"middlename": "string",
"organization": "string",
"password_date": "string",
"password_expiration_date": "string",
"password_expired": true,
"password_never_expires": true,
"passwordless_sudo": true,
"phoneNumbers": [
{
"id": "string",
"number": "string",
"type": "string"
}
],
"public_key": "string",
"recoveryEmail": {
"address": "string",
"verified": true,
"verifiedAt": "string"
},
"relationships": [
{
"type": "string",
"value": "string"
}
],
"restrictedFields": [
{
"field": "addresses",
"id": "string",
"type": "active_directory"
}
],
"samba_service_user": true,
"ssh_keys": [
{
"_id": "string",
"create_date": "string",
"name": "string",
"public_key": "string"
}
],
"state": "STAGED",
"sudo": true,
"suspended": true,
"tags": [
"string"
],
"totp_enabled": true,
"unix_guid": 1,
"unix_uid": 1,
"username": "string"
}
],
"totalCount": 0
}

You can then call “Fetch Sample” to view the structure of the API response and map the relevant fields.

OnLink processes data in two steps - Get Data and Import Data. To manually test, you can click on Get Data first and then wait until you see “No more pending records. Data will be imported on next Import run.” message in Job Logs. Then, click on Import. Production runs are fully automated based on the schedule you choose.

image-20240318-045922.png