Connect Mosyle to Smallstep
Smallstep can integrate with Mosyle to synchronize your device inventory, and enroll your fleet with Smallstep using the Smallstep Agent. In this document, we will configure your Mosyle instance for use with your Smallstep team.
This document also contains uninstall instructions.
Requirements & Limitations
You will need:
- A Smallstep team
- A Mosyle Business tenant
Client requirements:
- The agent will need to reach the following domains:
smallstep.com api.smallstep.com gateway.smallstep.com control.infra.smallstep.com *.[team-name].ca.smallstep.com auth.smallstep.com att.smallstep.com
Limitations:
- Devices must be assigned to a device group in Mosyle to be synced with Smallstep. Devices not in any device group will not appear in your Smallstep inventory.
- Mosyle supports static SCEP
Step-by-step instructions
Create an API Token in Mosyle
We recommend creating a dedicated Mosyle administrator account for the Smallstep integration. This allows you to manage API access separately from personal administrator accounts and makes it easier to rotate credentials if needed. Use an account that has access to the device groups you will want to sync with Smallstep.
This API token will allow Smallstep to read your Mosyle device inventory for ongoing inventory syncing.
- In Mosyle, choose Organization from the top navigation
- In the left sidebar, expand Integrations
- Choose Mosyle API Integration
- Choose Add new token
- Configure the token:
- Profile name:
Smallstep - Access Method:
Public - Ensure Allow all current and future endpoints is checked
- Profile name:
- Choose Save
- Temporarily save the Access Token that is displayed. You'll use it in the next step.
Connect Mosyle to Smallstep
Let's add the Mosyle credentials to Smallstep. You'll need the API token you created, plus the email and password of a Mosyle administrator account.
- In the Smallstep UI, go to the Device Management tab in ⛭ Settings
- Under Mosyle, choose ➕ Connect
- Enter the following credentials:
- Account Email: The email address of a Mosyle administrator account
- Account Password: The password for that Mosyle administrator account
- API Access Token: The API token you created in the previous step
- Name/Alias (optional): A friendly name for this connection
- Choose Connect MDM. Your device inventory will start syncing from Mosyle to Smallstep.
Your Smallstep team is now linked to Mosyle. Smallstep will do a partial sync of your device inventory from Mosyle every hour, and a full sync every 8 hours.
Configure Certificates in Mosyle
Get Smallstep CA Details
After connecting Mosyle to Smallstep, you'll find all the certificate details you need on the Platform Settings page:
- In the Smallstep console, go to Device Management in Settings
- Click on your Mosyle connection
- From this page, you can:
- Download the Root Certificate file
- Copy the SCEP URL (e.g.,
https://agents.example.ca.smallstep.com/scep/integration-mosyle-abc123) - Copy the SCEP Challenge value
Keep this page open or save these values temporarily—you'll need them for the Mosyle configuration steps below.
Upload the Root Certificate to Mosyle
- In Mosyle, choose Management from the top navigation
- Use the platform dropdown in the left sidebar to select macOS
- In the left sidebar, under Management Profiles, choose Certificates / Custom Profiles
- If this profile type is not visible, choose Activate New Profile Type, search for "Certificates", and activate Certificates / Custom Profiles
- Choose Add new profile
- Configure the certificate profile:
- Profile Name:
Smallstep Agents Root CA - Upload the root certificate file you downloaded earlier
- Profile Name:
- Under Profile Assignment, choose + Add Assignment and select your desired device groups
- Choose Save
Create a SCEP Profile in Mosyle
- In Mosyle, choose Management from the top navigation
- Use the platform dropdown in the left sidebar to select macOS
- In the left sidebar, under Management Profiles, choose SCEP
- If this profile type is not visible, choose Activate New Profile Type, search for "SCEP", and activate SCEP
- Choose Add new profile
- Configure the SCEP profile:
- Profile Name:
Smallstep - URL: (paste the SCEP provisioner URL you saved earlier)
- Subject:
CN=step-agent-bootstrap - Check ☑️ Enable Variables for this profile
- Add new Subject Alternative Name:
- Type: Uniform Resource Identifier
- Alternative Name Value:
deviceid:%UUID%
- Challenge: (paste the static challenge you saved earlier)
- Key Size (in bits):
2048 - Check ☑️ Allow all apps to access the certificate in the keychain
- Profile Name:
- Under Profile Assignment, choose + Add Assignment and select your desired device groups
- Choose Save
Install the Smallstep agent
There are two ways to install the agent:
- via Mosyle (below): Use Mosyle's package distribution and policy management
- separately: Use a separate software management tool like Munki, or install the agent manually via scripts. See the Smallstep Agent Manual Installation guide for detailed macOS installation instructions.
Install the agent via Mosyle
Upload the Agent Package
- Download the latest package from packages.smallstep.com
- In Mosyle, choose Management from the top navigation
- Use the platform dropdown in the left sidebar to select macOS
- In the left sidebar, under Management Profiles, choose Install PKG
- If this profile type is not visible, choose Activate New Profile Type, search for "Install PKG", and activate it
- Choose the PKGs tab, then choose Add new package
- Upload the package you downloaded
- Once uploaded, choose the Profiles tab, then choose Add new profile
- Configure the profile:
- Profile Name:
Smallstep Agent - Select the SmallstepAgent package you uploaded
- Profile Name:
- Under Profile Assignment, choose + Add Assignment and select your desired device groups
- Choose Save
Configure the Agent Settings
The Smallstep Agent requires configuration settings to connect to your Smallstep team. Create a custom configuration profile:
-
In the Smallstep console, choose ⚙️ Settings
-
Temporarily save the Team Slug value
-
In Mosyle, choose Management from the top navigation
-
Ensure macOS is selected in the platform dropdown
-
In the left sidebar, under Management Profiles, choose Certificates / Custom Profiles
-
Choose Add new profile
-
Create a
.mobileconfigfile with the following content and upload it:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadType</key> <string>com.smallstep.Agent</string> <key>PayloadIdentifier</key> <string>com.smallstep.Agent.config</string> <key>PayloadUUID</key> <string>YOUR-UNIQUE-UUID-HERE</string> <key>PayloadVersion</key> <integer>1</integer> <key>TeamSlug</key> <string>YOUR-TEAM-SLUG</string> <key>Certificate</key> <string>mackms:label=step-agent-bootstrap;se=false;tag=</string> </dict> </array> <key>PayloadDisplayName</key> <string>Smallstep Agent Configuration</string> <key>PayloadIdentifier</key> <string>com.smallstep.Agent.profile</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>YOUR-PROFILE-UUID-HERE</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist>
Replace
YOUR-TEAM-SLUGwith your actual team slug from Smallstep, and generate unique UUIDs for thePayloadUUIDfields (you can useuuidgenon macOS). -
Configure the profile:
- Profile Name:
Smallstep Agent Configuration
- Profile Name:
-
Under Profile Assignment, choose + Add Assignment and select your desired device groups (should match the agent installation scope)
-
Choose Save
Configure Login Items (macOS)
To ensure the Smallstep Agent starts automatically on macOS devices:
- In Mosyle, choose Management from the top navigation
- Ensure macOS is selected in the platform dropdown
- In the left sidebar, under Management Profiles, choose Login Items
- If this profile type is not visible, choose Activate New Profile Type, search for "Login Items", and activate it
- Choose Add new profile
- Configure the profile:
- Profile Name:
Smallstep Login Item - Add a managed login item with:
- Rule Type: Bundle Identifier
- Rule Value:
com.smallstep.Agent
- Profile Name:
- Under Profile Assignment, choose + Add Assignment and select your desired device groups
- Choose Save
Confirmation
There are two ways to confirm installation on an endpoint:
- In the Smallstep UI, go to the device's profile page. In the Device Registration section, you'll see an Enrolled At timestamp.
- Alternatively, on the device itself, run
/Applications/SmallstepAgent.app/Contents/MacOS/SmallstepAgent versionto see that the agent is installed. And, in System Settings, check Login Items to confirm that there is a Smallstep Agent entry.
Uninstall Smallstep Agent with Mosyle
You can remove the Smallstep Agent from macOS endpoints managed by Mosyle.
Remove the Agent Installation Profile
- In Mosyle, choose Management from the top navigation
- Use the platform dropdown in the left sidebar to select macOS
- In the left sidebar, under Management Profiles, choose Install PKG
- In the Profiles tab, find and delete the Smallstep Agent profile
Remove the Configuration Profiles
- In Mosyle, choose Management from the top navigation
- Use the platform dropdown in the left sidebar to select macOS
- In the left sidebar, under Management Profiles, choose Certificates / Custom Profiles
- Find and delete the Smallstep Agent Configuration profile
- Find and delete the Smallstep Agents Root CA certificate profile
Remove the SCEP Profile
- In Mosyle, choose Management from the top navigation
- Ensure macOS is selected in the platform dropdown
- In the left sidebar, under Management Profiles, choose SCEP
- Find and delete the Smallstep SCEP profile
Remove the Login Items Profile
- In Mosyle, choose Management from the top navigation
- Ensure macOS is selected in the platform dropdown
- In the left sidebar, under Management Profiles, choose Login Items
- Find and delete the Smallstep Login Item profile
Create an Uninstall Script (Optional)
For a complete cleanup, you can deploy an uninstall script:
-
In Mosyle, choose Management from the top navigation
-
Ensure macOS is selected in the platform dropdown
-
In the left sidebar, under Management Profiles, choose Custom Commands
-
Create a new command with the following script:
#!/bin/bash launchctl stop com.smallstep.launchd.Agent launchctl remove com.smallstep.launchd.Agent /Applications/SmallstepAgent.app/Contents/MacOS/SmallstepAgent svc uninstall rm -rf /Applications/SmallstepAgent.app if pkgutil --packages | grep -q com.smallstep.Agent; then pkgutil --forget com.smallstep.Agent fi
-
Assign this command to the devices you want to uninstall from
-
Once the uninstall is complete, remove the command profile
Confirm Uninstallation
Verify that /Applications/SmallstepAgent.app no longer exists on target devices.
Last updated on February 3, 2026
Introducing
Device Identity
Ensure that only company-owned devices can access your enterprise's most sensitive resources.