-
Notifications
You must be signed in to change notification settings - Fork 0
MDM Integration
Oven integrates with Jamf Pro so you can enroll VMs into device management during provisioning. This page covers connecting Jamf, creating MDM profiles, and enrolling VMs.
The MDM integration flow:
- Add a Jamf Pro server connection in Preferences.
- Create an MDM Profile in Oven (maps to an enrollment invitation in Jamf).
- Attach the profile to a Base VM build configuration.
- During the build, Oven places the enrollment profile into the VM.
- You need to manually install the enrollment profile in the VM.
WARNING: Before using in a production workflow, connect to a sandbox or test instance of a Jamf Pro server to test Oven's functionality.
Stick to the least-privilege principle and don't grant the User account or API Client used in Oven more privileges than required.
- Go to Preferences → Integrations.
- Under Jamf Pro Servers, click +.
- Fill in:
- Friendly Name — label for this server in the UI
-
Server URL — e.g.,
https://yourorg.jamfcloud.com -
Authentication Type — choose between:
- API Token (recommended) — uses Jamf's modern bearer token auth
- Basic Auth — uses username/password with the Jamf Classic API
- Username / Password — credentials for the account Oven will use
- Click Test Connection to verify.
- Click Save.
Credentials are stored in the macOS Keychain.
The account Oven uses needs the following Jamf privileges depending on which features you enable:
| Feature | Required Privilege |
|---|---|
| Check enrollment status | Read Computers |
| Delete device from Jamf | Delete Computers |
| Check invitation status | Read Computer Enrollment Invitations |
Oven displays the detected privileges after a successful connection test.
You can add multiple Jamf Pro instances (e.g., production and staging). Select the active server per MDM Profile.
An MDM Profile in Oven represents an enrollment invitation. It stores the information needed to enroll a VM with a specific Jamf server.
- Navigate to the MDM Profiles section (accessible from the sidebar or from a Base VM's detail pane).
- Click + New Profile.
- Configure:
- Display Name — identifies this profile in the UI
- Jamf Server — select from your saved servers
- Custom Server URL (optional) — override the MDM server URL sent inside the enrollment payload, if your Jamf is behind a proxy or has a different externally-accessible hostname
- Invitation ID — the enrollment invitation ID from Jamf (found in Jamf → Computers → Enrollment Invitations)
- Expiration Date — optional; Oven will warn you if the invitation has expired
- Click Save.
Select a profile and click Check Status. Oven queries Jamf to verify:
- Whether the invitation is still valid
- Whether the expiration date has passed
- Whether any devices have enrolled using this invitation
- Open a Base VM's edit sheet.
- Scroll to the MDM section.
- Toggle Enroll in MDM on.
- Select the MDM Profile to use.
- Build the VM as normal.
During the Packer provisioning phase, Oven places the MDM enrollment profile into the VM. You then have to install the profile manually by booting the VM.
After a VM is enrolled, Oven can perform Jamf operations on it from the VM detail pane:
| Action | Description |
|---|---|
| Check Enrollment | Queries Jamf for the device record matching this VM |
| Get Management Status | Returns whether the device is enrolled, managed, and MDM-capable |
| Delete from Jamf | Removes the device record from Jamf when the VM is deleted |
These actions use the Jamf Pro API and require the associated MDM Server to be configured and tested.
Each cloned VM gets a unique serial number. This prevents Jamf from treating multiple clones as the same device.
| Problem | Fix |
|---|---|
| Connection test fails | Check the server URL (include https://), username, and password; verify network access from your Mac |
403 Forbidden on enrollment check |
The Jamf account lacks Read Computers privilege |
| VM does not appear in Jamf after build | Check the build log for MDM provisioner errors; verify the invitation ID is correct and not expired |
| Invitation expired | Create a new enrollment invitation in Jamf and update the MDM Profile in Oven |
| Multiple clones appear as one device | Add the Random Computer Name building block to the base image build |
At this time there are no plans to support other MDMs. PRs and contributions are welcome.
Oven
Using Oven
Integrations
Advanced
Sources