Skip to content

Commit b07239e

Browse files
authored
Merge pull request #430 from smallstep/carl/agent-manual-install-macos
CON-248: Agent manual install steps for macos
2 parents 6280fc8 + ee232ec commit b07239e

File tree

1 file changed

+65
-17
lines changed

1 file changed

+65
-17
lines changed

tutorials/connect-jamf-pro-to-smallstep.mdx

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
updated_at: July 07, 2025
2+
updated_at: August 21, 2025
33
title: Connect Jamf Pro to Smallstep
44
html_title: Connect Jamf Pro to Smallstep
55
description: Configure Jamf Pro to deploy the Smallstep Agent and distribute certificates and configuration to Mac clients.
@@ -9,7 +9,7 @@ Smallstep can integrate with Jamf Pro to synchronize your device inventory, and
99

1010
This document also contains [uninstall instructions](#uninstall-smallstep-agent-with-jamf-pro).
1111

12-
# Requirements & Limitations
12+
## Requirements & Limitations
1313

1414
You will need:
1515

@@ -35,9 +35,9 @@ Limitations:
3535
- For VPN configurations, only IPSec VPNs are currently supported.
3636
- “Always-on VPN” or device-wide VPNs are not yet supported in Smallstep-managed configurations.
3737

38-
# Step-by-step instructions
38+
## Step-by-step instructions
3939

40-
### Create an API Client in Jamf Pro
40+
## Create an API Client in Jamf Pro
4141

4242
This API client will allow Smallstep to read your Jamf device inventory and manage the webhooks necessary for ongoing inventory syncing.
4343

@@ -59,19 +59,19 @@ This API client will allow Smallstep to read your Jamf device inventory and mana
5959
5. Choose **Generate client secret**
6060
6. Temporarily save the **Client ID** and **Client Secret**. You’ll use them in the next step.
6161

62-
### Connect Jamf to Smallstep
62+
## Connect Jamf Pro to Smallstep
6363

64-
Let’s add the Jamf API credentials you just created to Smallstep.
64+
Let’s add the Jamf Pro API credentials you just created to Smallstep.
6565

6666
1. In the Smallstep UI, go to the [**Device Management**](https://smallstep.com/app/?next=/settings/devices) tab in ⛭ **Settings**
6767
2. Under Jamf, choose ➕ **Connect**
6868
3. Enter the API credentials from Jamf
6969
4. Choose **Add Platform**. Your device inventory will start syncing from Jamf to Smallstep.
7070
5. Temporarily save the **Webhook URL**, **Username**, and **Password** presented.
7171

72-
### Configure a SCEP Enrollment webhook in Jamf Pro
72+
## Configure a SCEP Enrollment webhook in Jamf Pro
7373

74-
For compatibility reasons, Smallstep may use ACME or SCEP for certificate enrollment. The SCEP Enrollment webhook allows Jamf to request a dynamic, short-lived challenge string from Smallstep during a SCEP request. The challenge string is injected into a [SCEP payload](https://developer.apple.com/documentation/devicemanagement/scep) for your clients to authenticate to Smallstep.
74+
For compatibility reasons, Smallstep may use ACME or SCEP for certificate enrollment. The SCEP Enrollment webhook allows Jamf to request a dynamic, short-lived challenge string from Smallstep during the SCEP request. The challenge string is injected into the [SCEP payload](https://developer.apple.com/documentation/devicemanagement/scep) for your clients to authenticate to Smallstep.
7575

7676
1. In Jamf Pro, choose ⚙️ **Settings**
7777
2. Under the **Global** tab, Choose **Webhooks**
@@ -86,9 +86,18 @@ For compatibility reasons, Smallstep may use ACME or SCEP for certificate enroll
8686
5. Webhook Event: SCEPChallenge
8787
4. Choose **Save**
8888

89-
### Create an Agent Package for Distribution
89+
Your Smallstep team is now linked to Jamf Pro. Smallstep will do a partial sync of your device inventory from Jamf every hour, and a full sync every 8 hours.
9090

91-
In this step, you’ll upload the Smallstep agent package to Jamf’s distribution network.
91+
## Install the Smallstep agent
92+
93+
There's two ways to install the agent: Using Jamf Pro, or using a separate software management tool.
94+
For example, [Munki](https://www.munki.org/munki/) is a popular option for managing macOS apps in a large IT organization.
95+
96+
### Option 1: Install the agent via Jamf
97+
98+
#### Create an Agent Package for Distribution
99+
100+
In this step, you’ll upload the Smallstep agent package to Jamf Pro’s software distribution network.
92101

93102
1. Download the latest package from [packages.smallstep.com](https://packages.smallstep.com/stable/darwin/step-agent-plugin_latest.pkg)
94103
2. In Jamf Pro, choose ⚙️ **Settings**
@@ -98,7 +107,7 @@ In this step, you’ll upload the Smallstep agent package to Jamf’s distributi
98107
2. Filename: (upload from step #1)
99108
5. Choose **Save**
100109

101-
### Create an Agent Bootstrap Script
110+
#### Create an Agent Bootstrap Script
102111

103112
This step will install a script on your client devices that bootstraps the connection between your devices and Smallstep.
104113

@@ -117,7 +126,7 @@ This step will install a script on your client devices that bootstraps the conne
117126

118127
4. Choose **Save**
119128

120-
### Create an Agent Installation Policy
129+
#### Create an Agent Installation Policy
121130

122131
Next, we’ll configure the Script we just created to run on your client devices.
123132

@@ -140,7 +149,7 @@ Next, we’ll configure the Script we just created to run on your client devices
140149
4. Under Scope, select your desired policy scope. The agent will be installed on all devices in this scope.
141150
4. Choose **Save**
142151

143-
### Configure an Agent Enrollment Profile
152+
#### Configure an Agent Enrollment Profile
144153

145154
In this step, we’ll tie everything together by creating a managed policy to enroll devices using the Smallstep Agent.
146155

@@ -210,18 +219,57 @@ In this step, we’ll tie everything together by creating a managed policy to en
210219
2. Set the desired scope. This should mirror the scope you chose when creating the Policy in step 5.
211220
3. Choose Save
212221

213-
Your Smallstep team is now linked to Jamf. Smallstep will do a partial sync of your device inventory from Jamf every hour, and a full sync every 8 hours.
214-
215222
The devices that you scoped will receive a certificate and have the agent installed and running.
216223

217-
### Confirmation
224+
### Option 2: Install via a software management tool
225+
226+
If you're using a software management tool:
227+
228+
1. Download the latest package from [packages.smallstep.com](https://packages.smallstep.com/stable/darwin/step-agent-plugin_latest.pkg)
229+
2. Distribute and install the package on your desired endpoints
230+
3. Create a user launch agent file on the endpoint, in `/Users/<USER>/Library/LaunchAgents/com.smallstep.launchd.Agent.plist` for the primary user of the device.
231+
232+
The Smallstep agent does not yet support multi-user deployments on macOS&mdash;it must be installed for a single user:
233+
234+
```
235+
<?xml version="1.0" encoding="UTF-8"?>
236+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
237+
<plist version="1.0">
238+
<dict>
239+
<key>Label</key>
240+
<string>com.smallstep.launchd.Agent</string>
241+
<key>ProgramArguments</key>
242+
<array>
243+
<string>/Applications/SmallstepAgent.app/Contents/MacOS/SmallstepAgent</string>
244+
<string>start</string>
245+
<string>managed</string>
246+
</array>
247+
<key>KeepAlive</key>
248+
<true/>
249+
<key>RunAtLoad</key>
250+
<true/>
251+
<key>AssociatedBundleIdentifiers</key>
252+
<string>com.smallstep.Agent</string>
253+
</dict>
254+
</plist>
255+
```
256+
257+
4. On the endpoint, register the launch agent by running the following:
258+
259+
```
260+
launchctl load /Users/<USER>/Library/LaunchAgents/com.smallstep.launchd.Agent.plist`
261+
```
262+
263+
264+
## Confirmation
218265

219266
There's two ways to confirm installation on an endpoint:
267+
220268
- In the Smallstep UI, go to the device's profile page. In the **Device Registration** section, you'll see an **Enrolled At** timestamp.
221269
- Alternatively, on the device itself, run `/Applications/SmallstepAgent/Contents/MacOS/SmallstepAgent version` to see that the agent is installed. And, in **System Settings**, check **Login Items** to confirm that there is a **Smallstep Agent** entry.
222270

223271

224-
# Uninstall Smallstep Agent with Jamf Pro
272+
## Uninstall Smallstep Agent with Jamf Pro
225273

226274
You can easily remove a Smallstep Agent that was installed on macOS endpoints via Jamf Pro.
227275

0 commit comments

Comments
 (0)