Skip to main content

JumpCloud Integration Guide

Overview

The JumpCloud integration allows your NINA workflows to seamlessly connect with JumpCloud for policy management, system compliance, and device administration. This integration enables you to manage policies, retrieve compliance status, handle policy associations, and monitor system policy results directly from your workflows.

Status

We currently support comprehensive policy management operations and compliance monitoring:

✅ Currently Supported:

  • Policies: Full CRUD operations (create, get, list, update, delete)
  • Policy Associations: List and manage associations between policies and systems/system groups
  • Policy Traversal: Find systems and system groups bound to policies (direct and indirect bindings)
  • Policy Results: Retrieve policy execution results and compliance status
  • Policy Status: Get latest policy status and compliance information for policies and systems
  • Policy Templates: Retrieve and list available policy templates

❌ Not Yet Supported: For comprehensive functionality beyond policy management, please refer to the JumpCloud API 2.0 Documentation for additional resources including:

  • Applications: Management of SSO applications and configurations
  • Commands: Remote command execution and management
  • Directories: LDAP directory services management
  • GSuite: Google Workspace integration and user provisioning
  • Office 365: Microsoft Office 365 integration and user management
  • Radius Servers: RADIUS authentication server configuration
  • System Groups: Management of system groups and their properties
  • Systems: Individual system management and configuration
  • User Groups: User group management and permissions
  • Users: User account management and provisioning
  • Organization: Organization-level settings and configuration

Credential Configuration

Before using the JumpCloud integration in your workflows, you need to configure credentials for authentication. The NINA platform supports two authentication methods for JumpCloud:

Authentication Methods

For standard API access to your JumpCloud organization:

FieldDescriptionExample
API KeyYour JumpCloud API key from the admin consoleabc123def456ghi789...

How to get your API Key:

  1. Log in to your JumpCloud Admin Console at https://console.jumpcloud.com
  2. Navigate to SettingsAPI Keys
  3. Click Generate New API Key
  4. Give the key a descriptive name (e.g., "NINA Integration")
  5. Copy the generated API key

2. System Context

For system-specific authentication using signatures:

FieldDescriptionExample
System IDSystem ID for context authentication5f4d7c8e9a1b2c3d4e5f6789
System DateSystem date for signature (RFC format)Tue, 10 Nov 2009 23:00:00 GMT
System SignatureSystem signature for authenticationHmacSHA256Signature...

Creating a JumpCloud Credential

  1. Navigate to the Credentials section in NINA

  2. Click Add New Credential

  3. Fill in the credential details:

    • Name: A descriptive name (e.g., "JumpCloud Production")
    • Description: Optional details about the credential's purpose
    • Integration Service: Select "JumpCloud"
    • Auth Type: Choose "API Key" or "System Context"
    • Fill in the authentication fields based on your selected auth type
  4. Click Test Connection to verify credentials

  5. Click Save to store the credential

Supported Resources and Operations

The JumpCloud integration supports the following resources and operations:

Policy

OperationDescription
CreateCreates a new JumpCloud policy
GetRetrieves details of a specific policy
ListRetrieves all policies for the organization
UpdateUpdates an existing policy
DeleteDeletes a policy

Policy Association

OperationDescription
ListReturns direct associations of a policy (systems and system groups)
ManageAdds or removes associations between policies and systems/system groups

Policy Traversal

OperationDescription
Get SystemsReturns all systems bound to a policy (directly or indirectly)
Get System GroupsReturns all system groups bound to a policy (directly or indirectly)

Policy Result

OperationDescription
GetRetrieves a specific policy result by ID
List for PolicyReturns all policy results for a specific policy
List for OrganizationReturns all policy results for the organization

Policy Status

OperationDescription
List for PolicyReturns the latest policy results for a specific policy
List for SystemReturns policy results for a particular system

Policy Template

OperationDescription
GetRetrieves a specific policy template by ID
ListReturns all available policy templates

Parameter Merging and Templating

The JumpCloud integration takes full advantage of NINA's parameter merging and templating capabilities:

Parameter Sources (in order of precedence)

  1. Node Parameters: Parameters configured directly in the JumpCloud Integration Node
  2. Extracted Parameters: Parameters automatically extracted from the input data
  3. Input Data: The complete input data from upstream nodes

When a JumpCloud Integration Node executes:

  • It combines parameters from all sources
  • Node parameters take precedence over extracted parameters
  • Template variables within parameters are processed (using {{variable_name}} syntax)
  • The combined parameters are used to execute the JumpCloud operation

Example: Creating a JumpCloud Policy

Basic Policy Creation

Below is an example of creating a basic JumpCloud policy using the Integration Node:

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policy",
"operation": "create",
"parameters": {
"policyData": {
"name": "Security Compliance Policy",
"template": "windows_security_baseline"
},
"additionalFields": {
"xOrgId": "your-org-id"
}
}
}

Creating a Policy with Template Variables

You can use template variables to dynamically insert values from input data:

Input Data from Previous Node:

{
"compliance": {
"type": "Security Baseline",
"environment": "Production",
"department": "Engineering"
},
"policy_template": "windows_security_baseline"
}

Node Configuration with Template Variables:

{
"integration_service": "jumpcloud",
"resource": "policy",
"operation": "create",
"parameters": {
"policyData": {
"name": "{{compliance.environment}} {{compliance.type}} - {{compliance.department}}",
"template": "{{policy_template}}"
}
}
}

Result:

This will create a JumpCloud policy with:

  • Name: "Production Security Baseline - Engineering"
  • Template: "windows_security_baseline"

Example: Managing Policy Associations

Associating a Policy with Systems

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyAssociation",
"operation": "manage",
"parameters": {
"policyId": "5f4d7c8e9a1b2c3d4e5f6789",
"associationData": {
"op": "add",
"type": "system",
"id": "5a1b2c3d4e5f67890abcdef1"
}
}
}

Listing Policy Associations

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyAssociation",
"operation": "list",
"parameters": {
"policyId": "5f4d7c8e9a1b2c3d4e5f6789",
"targets": ["system", "system_group"]
}
}

Example: Retrieving Policy Compliance Status

Getting Policy Status for a System

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyStatus",
"operation": "listForSystem",
"parameters": {
"systemId": "5a1b2c3d4e5f67890abcdef1",
"returnAll": true
}
}

Getting Policy Results with Filtering

Input Data:

{
"system_id": "5a1b2c3d4e5f67890abcdef1",
"compliance_check": {
"date_range": "last_week",
"status_filter": "failed"
}
}

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyStatus",
"operation": "listForSystem",
"parameters": {
"systemId": "{{system_id}}",
"options": {
"filter": ["status:eq:failed"],
"limit": 50
}
}
}

Example: Working with Policy Templates

Listing Available Policy Templates

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyTemplate",
"operation": "list",
"parameters": {
"returnAll": true,
"options": {
"sort": ["name"]
}
}
}

Getting a Specific Policy Template

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyTemplate",
"operation": "get",
"parameters": {
"id": "5f4d7c8e9a1b2c3d4e5f6789"
}
}

Example: Policy Traversal Operations

Finding All Systems Bound to a Policy

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyTraversal",
"operation": "getSystems",
"parameters": {
"policyId": "5f4d7c8e9a1b2c3d4e5f6789",
"options": {
"limit": 100,
"filter": ["os:eq:windows"]
}
}
}

Finding System Groups Bound to a Policy

Node Configuration:

{
"integration_service": "jumpcloud",
"resource": "policyTraversal",
"operation": "getSystemGroups",
"parameters": {
"policyId": "5f4d7c8e9a1b2c3d4e5f6789",
"options": {
"returnAll": true
}
}
}

Troubleshooting

Complete workflow showing JumpCloud integration nodes connected with other node types

IssueResolution
Authentication failuresVerify your API key is correct and active. Check that the key has appropriate permissions for the operations you're attempting.
"Policy not found" errorsVerify the policy ID is correct. You can find policy IDs by listing all policies first.
"System not found" errorsEnsure the system ID exists and is accessible with your current credentials.
Permission errorsThe API key must have sufficient permissions for the requested operation. Check your JumpCloud admin permissions.
Rate limitingJumpCloud has API rate limits. Implement delays between operations if you encounter rate limiting errors.
Invalid policy templateVerify the policy template ID exists by listing available templates first.
Organization ID errorsFor multi-org environments, ensure you're providing the correct xOrgId parameter.
Filter syntax errorsCheck filter syntax - use format like field:operator:value (e.g., status:eq:active).

Best Practices

  1. Use Descriptive Policy Names: Make policy names clear and specific - they'll be shown in the JumpCloud console and reports.

  2. Leverage Template Variables: Use {{variable_name}} syntax to dynamically insert values from input data.

  3. Set Default Parameters: Configure default parameters in the node that can be overridden by input data when needed.

  4. Test with Policy Templates: Use the policy template operations to understand available templates before creating policies.

  5. Monitor Policy Compliance: Regularly check policy status and results to ensure systems remain compliant.

  6. Use Filters Effectively: Learn JumpCloud's filter syntax to efficiently retrieve specific data rather than fetching all records.

  7. Batch Operations When Possible: When managing multiple policy associations, consider batching them efficiently.

  8. Handle API Limits: Be aware of JumpCloud API rate limits and implement appropriate delays.

  9. Leverage Policy Traversal: Use traversal operations to understand complex policy-system relationships.

  10. Secure Credentials: Keep your JumpCloud API keys secure. Use the system's built-in credential management rather than hardcoding values.

  11. Multi-Org Support: For multi-organization environments, always specify the xOrgId parameter to ensure operations target the correct organization.

  12. Policy Creation Complexity: Note that JumpCloud recommends using the Admin Console for creating complex policies due to the variety of configuration parameters. Use the API for simpler policy creation and management tasks.

Advanced Use Cases

Automated Compliance Monitoring

Create workflows that regularly check policy compliance across your infrastructure:

{
"integration_service": "jumpcloud",
"resource": "policyResult",
"operation": "listForOrganization",
"parameters": {
"options": {
"filter": ["status:ne:success"],
"sort": ["-timestamp"]
}
}
}

Dynamic Policy Assignment

Automatically assign policies to systems based on their attributes or group membership:

{
"integration_service": "jumpcloud",
"resource": "policyAssociation",
"operation": "manage",
"parameters": {
"policyId": "{{security_policy_id}}",
"associationData": {
"op": "add",
"type": "system_group",
"id": "{{production_systems_group_id}}"
}
}
}

Policy Drift Detection

Monitor for changes in policy associations and compliance status to detect configuration drift.

For more advanced use cases and additional API capabilities, refer to the JumpCloud API 2.0 Documentation.