-
Notifications
You must be signed in to change notification settings - Fork 44
Device Enrollment Guide #384
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,98 @@ | ||
| --- | ||
| title: Device Enrollment Guide | ||
| html_title: How to add devices to Smallstep | ||
| description: There are several ways to add your devices to Smallstep. In this guide, we talk through the options. | ||
| --- | ||
|
|
||
| In this guide, | ||
| we'll talk about different approaches you can take | ||
| as you build your device inventory in Smallstep. | ||
|
|
||
| It's worth restating the overall goal of this process: | ||
| To build a high-assurance device inventory, | ||
| so that only your organization's devices | ||
| can access protected resources. | ||
|
|
||
| While a lot of organizations | ||
| have device inventories in various locations | ||
| (IT Asset Management systems, device management platforms, etc), | ||
| these are not usually high-assurance inventories. | ||
| Smallstep uses hardware identifiers | ||
| and device attestation | ||
| to help you develop a high-assurance inventory | ||
| that can be the foundation for device authentication. | ||
|
|
||
| There's a few ways to bring devices into your Smallstep inventory: | ||
|
|
||
| ### Self-enrollment | ||
|
|
||
| You can [manually invite users | ||
| to join your Smallstep team](https://smallstep.com/app/?next=/users/invite), | ||
| and they will be able to self-enroll devices | ||
| using the [Smallstep Desktop App](./smallstep-app.mdx) | ||
| or the [Smallstep Agent for Linux](./smallstep-agent.mdx). | ||
|
|
||
| By default, administrators | ||
| must approve a new device | ||
| before it can access any of your resources. | ||
| You can change this in [Team Settings](https://smallstep.com/app/?next=/settings/team). | ||
|
|
||
| ### Connect Smallstep to your identity provider | ||
|
|
||
| This option requires IdP self-enrollment in [Team Settings](https://smallstep.com/app/?next=/settings/team) to be enabled. | ||
| It is disabled by default. | ||
|
|
||
| When you connect Smallstep to your identity provider, | ||
| your users will be able to self-enroll | ||
| via single sign-on, | ||
| using the [Smallstep Desktop App](./smallstep-app.mdx) | ||
| or the [Smallstep Agent for Linux](./smallstep-agent.mdx). | ||
|
|
||
| By default, administrators | ||
| must approve a new device | ||
| before it can access any of your resources. | ||
| You can change this in [Team Settings](https://smallstep.com/app/?next=/settings/team). | ||
|
|
||
| ### Sync Smallstep to an MDM | ||
|
|
||
| You can sync your existing MDM inventories into Smallstep. | ||
| Once an MDM is synced, | ||
| you can deploy the Smallstep Agent to your endpoints | ||
| to enable high-assurance protections. | ||
|
|
||
| Devices synced from an MDM inventory | ||
| are automatically approved, | ||
| but they will not be marked as high-assurance | ||
| until Smallstep receives an attestation from the device. | ||
|
|
||
| For a concrete example, | ||
| see [Connect Jamf Pro to Smallstep](../tutorials/connect-jamf-pro-to-smallstep.mdx) | ||
|
|
||
|
|
||
| ### Add devices via API | ||
|
|
||
| You can import devices from any source into Smallstep using our API. | ||
|
|
||
| Devices added via API are automatically approved. | ||
| but they will not be marked as high-assurance | ||
| until Smallstep receives an attestation from the device. | ||
|
|
||
| #### Example: I have a list of device identifiers | ||
|
|
||
| For each device, use the [Save Collection Instance](https://gateway.smallstep.com/v2023-11-01/operations/PutCollectionInstance) endpoint to create a device. | ||
| - For the `collectionSlug`, use `default` | ||
| - For Apple devices, the `instanceID` must be the device's serial number. | ||
| - For TPM 2.0 devices, the `instanceID` must be the TPM Endorsement Key URI, in the format `urn:ek:sha256:ul3sYf6uQ6jVEXAMPLEXoAuHI10U8gTvEJ6bMj95LXI=`. (You can retrieve the EK URI by running `step agent tpm --fingerprint` on the device.) | ||
|
|
||
| For the body of the request, | ||
| create a user using the following value | ||
| (replacing `[email protected]` with the device owner's email address): | ||
|
|
||
| ``` | ||
| { "data": { "smallstep:identity": "[email protected]" } } | ||
| ``` | ||
|
|
||
| Once added, | ||
| you'll see the device in your Smallstep dashboard, | ||
| under Recent Devices, | ||
| and it will be automatically approved. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.