fleet/docs/solutions
Mitch Francese 3451ec6454
Update Okta Platform SSO guide: add dynamic SCEP challenge option (#41228)
## Summary

- Adds Fleet's dynamic SCEP challenge (Okta CA with a dynamic challenge,
available since Fleet 4.81.0) as the recommended path for Device Access
certificates on macOS 14+
- Preserves static SCEP as a documented legacy option, each with its own
downloadable example profile
- Adds `okta-device-access-scep-dynamic-example.mobileconfig` using
`$FLEET_VAR_NDES_SCEP_PROXY_URL` and `$FLEET_VAR_NDES_SCEP_CHALLENGE`;
existing static example profile unchanged
- Corrects renewal claim: neither static nor dynamic SCEP supports
automatic certificate renewal per Okta's own documentation — both
require profile redeployment before expiration
- Adds Okta documentation links throughout for proper SEO and
cross-reference:
- [Use Okta as a CA for Device
Access](https://help.okta.com/oie/en-us/content/topics/oda/oda-as-scep-okta-ca.htm)
- [Configure Okta as a CA with a dynamic SCEP
challenge](https://help.okta.com/oie/en-us/content/topics/identity-engine/devices/okta-ca-dynamic-scep-macos-jamf.htm)
- [Configure Okta as a CA with a static SCEP
challenge](https://help.okta.com/oie/en-us/content/topics/identity-engine/devices/okta-ca-static-scep-macos-jamf.htm)
- Uses correct Fleet UI path and CA type name verified against
`helpers.tsx` and the 4.81.0 release article
- Uses Okta's exact field names (SCEP URL, Challenge URL, Username,
Password) verified from Okta's documentation
- Updates `publishedOn` to reflect the revision date

## Files changed

- `articles/deploying-okta-platform-sso-with-fleet.md` — article update
-
`docs/solutions/macos/configuration-profiles/okta-device-access-scep-dynamic-example.mobileconfig`
— new dynamic SCEP example profile
-
`docs/solutions/macos/configuration-profiles/okta-device-access-scep-example.mobileconfig`
— unchanged (static example)

## Test plan

- [ ] Article renders correctly on fleetdm.com preview
- [ ] Dynamic example profile link resolves:
`okta-device-access-scep-dynamic-example.mobileconfig`
- [ ] Static example profile link resolves:
`okta-device-access-scep-example.mobileconfig`
- [ ] All Okta documentation links resolve
- [ ] Fleet UI path verified: **Settings → Integrations → Certificate
authorities → Add CA → Okta CA or Microsoft Device Enrollment service
(NDES)**
- [ ] Fleet variables `$FLEET_VAR_NDES_SCEP_PROXY_URL` and
`$FLEET_VAR_NDES_SCEP_CHALLENGE` confirmed in Fleet docs
- [ ] Meta tags present with updated `publishedOn` date
- [ ] Style guide compliance verified (active voice, bold UI elements,
no marketing fluff)
2026-03-10 18:50:20 -04:00
..
all Create openclaw-detection.queries.yml (#40250) 2026-02-22 18:11:39 -05:00
android/configuration-profiles Use cameraAccess instead of cameraDisabled, which is deprecated (#39751) 2026-02-12 15:19:24 -05:00
api-scripts For Github issue: 13323 (#36840) 2025-12-12 10:17:28 -08:00
docker-compose Pin MySQL and Redis images in docker-compose.yml (#38759) 2026-01-25 14:09:30 -08:00
ios-ipados Update self-service web clip template (#39750) 2026-02-13 10:37:24 +01:00
linux added .keep file to add empty folders (#35109) 2025-11-03 11:45:48 -05:00
macos Update Okta Platform SSO guide: add dynamic SCEP challenge option (#41228) 2026-03-10 18:50:20 -04:00
tines Update Jamf API endpoints (#39146) 2026-02-06 13:58:40 -06:00
windows Add fleetd debug script for Windows (#40831) 2026-03-02 15:41:25 -06:00
README.md Solutions symlinks (#37732) 2025-12-29 12:42:56 -06:00

Solutions

Best Practices

General

  • Name the file what the profile does.
    • For example, instead of googlePlayProtectVerifyApps.json (the name of the Android policy for this control), describe what it does: enforce-google-play-protect.json.
  • Use kebab case in file names, with all letters in lowercase.
    • Instead of passwordPolicy.json, use password-policy.json.
  • Be sure to end files with an empty newline.

If a solution is applicable to multiple platforms, keep the original in the main platform directory and symlink it to the other platforms. For example, if an Apple configuration profile can be used on both macOS and iOS, use macOS as the source, and create a symlink in the iOS directory.

  • cd docs/solutions/ios-ipados/configuration-profiles/
    • Note that this is the destination that we want the symlink to be in.
  • ln -s ../../macos/configuration-profiles/my-profile.mobileconfig .
    • The . here at the end means the current directory, and will use the same file name as the original (which is what we want).
  • git add profile.mobileconfig
  • git commit