About Okta Platform Single Sign-on for macOS
Introduced in macOS 26, Simplified Setup is a new method to require Platform SSO (PSSO) registration during Automated Device Enrollment at Setup Assistant, which can also create the first local user account on macOS with just-in-time account creation.
With this feature, users must register with their identity provider before proceeding with device setup. The first user account is then created and governed by the user’s organizational identity provider (IdP).
Useful for:
1:1 computer deployments
Enabling user-level MDM management for the identity-based user from Setup Assistant
Zero-touch provisioning and compliance enforcement
Instructions
Create and configure the platform single sign-on app in Okta
Sign in to your Okta org as a super admin.
Go to Applications > Applications > Catalog and Browse App Catalog. Search for
Platform Single Sign-on for macOS.Click Add Integration.
Note: this application will only be available for customers with Okta Device Access (ODA) licensing.
Open Platform Single Sign-on from your Applications list.
On the General tab, you can edit the app label or use the default label.
On the Sign on tab, make note of the Client ID. This is needed for the managed app configuration for Okta Verify in your MDM deployment.
To use Desktop Password Sync, users must have the Platform Single Sign-on app assigned. Assign the app to individual users or groups on the Assignments tab.
In Directory > Profile Editor in the Okta tenant, find the Platform Single Sign-On for macOS User.
Add two new attributes:
macOSAccountFullNamemacOSAccountUsername
There should now be two custom attributes for the PSSO app to use.
Back in the Platform Single Sign-On for macOS application in Okta, go to the Authentication tab and click the Configure profile mapping link.
Select the Okta User to Platform Single Sign-On for macOS tab. The new custom attributes should be visible there.
Configure the settings for whatever works best for your organization.
Use the Preview button at the bottom to confirm that the attributes pull in as expected.
Click Save Mappings.
Add Okta as a CA with dynamic SCEP challenge for macOS
In the Okta admin portal navigate to Security > Device Integrations. Select Device Access, then Add SCEP Configuration.
Select Dynamic SCEP URL, then Generate.
Note the SCEP URL, Challenge URL, Username, and Password. Those will be needed to make the deployable configuration in Jamf Pro.
Click Save.
Creating the Platform SSO profile for deployment in Jamf Pro
Navigate to Computers > Configuration Profiles and create a new profile for deployment.
Set a Name, Description, and Category. Deploy at the Computer Level, and set distribution to Install automatically.
Find the Single Sign-On Extensions payload and click Add.
Payload type:
SSOExtension Identifier:
com.okta.mobile.auth-service-extensionTeam Identifier:
B7F62B65BNSign-on Type:
RedirectURLs (use the Add button to generate a second field for entry)
https://<org-tenant>.okta.com/device-access/api/v1/noncehttps://<org-tenant>.okta.com/oauth2/v1/token
Continue configuration in the Setting area of the Single Sign-On Extension payload (modify these values based on organizational preference, some examples are listed below):

Use Platform SSO:
IncludeAuthentication method:
Password
FileVault Policy (Apple silicon):
Attempt&IncludeUser login policy:
Attempt&IncludeScreensaver unlock policy:
Attempt&IncludeEnable registration during setup:
Enable&IncludeCreate first user during Setup:
Enable&IncludeNew user creation authentication method:
Password&Include
Use Shared Device Keys:
Enable&IncludeAccount Display Name: Include (e.g.,
Company IT)
Add three payloads under Application & Custom Settings > Upload.
com.okta.mobile.auth-service-extensionProperty list example:
<?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>OktaVerify.EnrollmentOptions</key> <string>SilentEnrollmentEnabled</string> <key>OktaVerify.OrgUrl</key> <string>https://org-tenant-url.okta.com</string> <key>OktaVerify.UserPrincipalName</key> <string>$USERNAME</string> <key>OktaVerify.PasswordSyncClientID</key> <string>replace-with-PSSO-app-client-id</string> <key>PlatformSSO.ProtocolVersion</key> <string>2.0</string> </dict> </plist>
com.okta.mobileProperty list example:
<?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>OktaVerify.EnrollmentOptions</key> <string>SilentEnrollmentEnabled</string> <key>OktaVerify.OrgUrl</key> <string>https://org-tenant-url.okta.com</string> <key>OktaVerify.UserPrincipalName</key> <string>$USERNAME</string> </dict> </plist>
com.apple.preference.securityProperty list example
<?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>dontAllowPasswordResetUI</key> <true/> </dict> </plist>
Add your desired Scope for deployment (a section on creating and using a test scope is included later in this document).
Click Save.
Create the SCEP configuration in Jamf Pro
Navigate to Computers > Configuration Profiles and create a new profile for deployment.
Set a Name, Description, and Category. Deploy at the Computer Level, and set distribution to Install automatically.
Go to the SCEP payload and Configure.
Configure as follows:
URL: the SCEP URL provided while configuring the dynamic SCEP challenge in the Okta tenant
Name: enter a name (e.g.,
CA-OKTA)Redistribute Profile: set a value based on organizational preference (e.g.,
14days)Subject: add a subject name template
Note: Okta’s documentation notes that this field has a character limit and has suggestions for shorter names to ensure the profile can be effectively redistributed
Example subject name:
CN=$SERIALNUMBER ODA $PROFILE_IDENTIFIER
Challenge Type:
Dynamic-Microsoft CAURL to SCEP Admin: Enter the Challenge URL provided while configuring the dynamic SCEP challenge in the Okta tenant
Username: Enter the Username provided while configuring the dynamic SCEP challenge in the Okta tenant
Password: Enter the password provided while configuring the dynamic SCEP challenge in the Okta tenant
Verify Password: re-enter the password
Retries & Retry Delay can be left at
0.Certificate Expiration Notification Threshold should be set to organizational preference (e.g.,
15days).Key size:
2048✅ Check
Use as digital signature.⬜️ Uncheck
Allow export from keychain.✅ Check
Allow all apps access.
Add your desired Scope for deployment (a section on creating and using a test scope is included later in this document).
Click Save.
Create a PreStage Enrollment for Platform SSO in Jamf Pro
In Jamf Pro navigate to Computers > PreStage Enrollments.
Create a new PreStage Enrollment. Set organizationally-preferred options in the General section.
Under Enrollment Requirements organizational requirements may vary. For Platform SSO during Setup Assistant check the Enable Simplified Setup for Platform Single Sign-on (macOS 26 or later) option to enable.
Change the Minimum required macOS version to
26.0.Set the Platform Single Sign-on App Bundle ID to
com.okta.mobile.
Under Configuration Profiles ensure that the PSSO profile and SCEP profile are included.
In Enrollment Packages include an Okta Verify installer (version 9.52 or later).
Adjust any other settings as desired for the PreStage and click Save.
Making a limited testing scope
The following steps outline one way to create a test group for evaluating Platform SSO.
Navigate to Computers > Smart Groups and create a new Smart Group.
Give it a Name and Description (optional).
For Criteria, select Show Advanced Criteria and select Enrollment Method: PreStage enrollment. Add the name of the test PreStage created above to the Value field and click Save.
Add the new Smart Group as the scope for the PSSO configuration and SCEP configuration created above.
Add test computers to the scope of the PreStage created above.
Add the new Smart Group to the exclusion scope for any settings that may conflict with the testing PSSO configuration (e.g., Jamf Connect Login, previous Okta SCEP deployments).
Add the new Smart Group to the exclusion scope for any policy deployments that may conflict with the testing PSSO configuration (e.g., Okta Verify deployments, Jamf Connect component installations).
Troubleshooting + Tips
Profile for debug log collection and troubleshooting
Apple has provided a set of instructions for a deployable profile to enable debug logging for advanced troubleshooting of Platform SSO. Instructions and profile download links are available on the Apple Developer site for customers with an Apple Developer Account.
Uploading the AppSSO.mobileconfig file from the Apple Developer site to Jamf Pro will create a signed Enterprise Single Sign-on Diagnostics profile that can be added to a PreStage and/or deployed to computers enrolled with Platform SSO. The additional debug details can be used for advanced troubleshooting and providing more verbose logging to Apple, IdPs, and/or MDM vendors for feedback and support purposes.
Manually enabling debug logging for PSSO at the desktop
Debug logging can also be enabled manually in Terminal.app at the desktop.
Turn on debug mode:
sudo log config --mode "level:debug,persist:debug" --subsystem "com.apple.AppSSO"Reproduce the issue if possible.
Capture a sysdiagnose:
sudo sysdiagnoseTurn off debug when finished:
sudo log config --reset --subsystem "com.apple.AppSSO"
Reviewing Okta Verify logs in Setup Assistant during Automated Device Enrollment
Open Terminal by pressing command+option+control+t on the keyboard during Setup Assistant.
Logs for Okta Verify are located at ~/Library/Group Containers/B7F62B65BN.group.okta.macverify.shared/Logs
Check PSSO status of logged-in user account
To review the PSSO status of a logged-in user account run app-sso platform -s in Terminal.app.
Unable to Sign-In during Automated Device Enrollment
If you encounter the following error message during enrollment:
The single sign-on extension could not validate the domain. Contact your administrator to help get single sign-on set up.
This message often indicates that the Associated Domains payload is not being recognized during device access registration with Okta. One way to validate this behavior is to edit the Platform SSO configuration profile and remove the entire Associated Domains payload, recreate it the payload, then redeploy the profile. Click Try Again and the process should continue on as expected.
Demo Video
Resources
🔗 Platform Single Sign-on for macOS (Apple)
🔗 Configure Desktop Password Sync for macOS 15 (Okta)
🔗 Desktop Password Sync for macOS (Okta)
🔗 Device Access certificates (Okta)
🔗 Use Okta as a CA for Device Access (Okta)
🔗 Just-In-Time Local Account Creation for macOS (Okta)
🔗 Add custom attributes to apps, directories, and identity providers (Okta)
🔗 Map Okta attributes to app attributes in the Profile Editor (Okta)