For updates on this blog and other blogs, follow me on Twitter: @SteveIDM
In the third installment of the Okta Integration with Workspace ONE, we are going to cover SCIM Provisioning from Okta to Workspace ONE.
NOTE: This integration requires UEM 19.09 which should be deployed to most SAAS tenants.
These instructions will use a "CUSTOM" SCIM application. I will update this blog when the official WS1 application is released in OIN.
Please do not use in Production.
In the first release of this functionality, there will be a lot of manual steps. I fully expect a more seamless process in future releases.
This process will require some proficiency and knowledge in using Postman to manage identities in Workspace ONE Access (formerly known as VMware Identity Manager). Please check out my blog on using Postman to Manage Workspace ONE Identities.
Here is a high level overview of the process:
- Okta is configured to use Workspace ONE Provisioning Application
- Okta will SCIM the user to Workspace ONE Access
- The AirWatch Provisioning Adapter in Workspace ONE Access will provision the user to Workspace ONE UEM.
This blog will not going into detail on the provisioning to UEM. Please see the following blog on provisioning to UEM:
Step 1: Create a Remote App Access Client
- Log into Workspace ONE Access
- Click on Catalog (Down Arrow) and then Settings
- Click on Remote App Access
- Click Create Client
- Select "Service Client Token"
- Enter a Client ID ie. OktaSCIM
- Expand Advanced
- Click Generate Shared Secret
- Update the Access Token TTL to something longer then the default. Note: If you choose 1 year, you will need to update the Okta configuration every year with a new bearer token.
- Copy the shared secret. You will need this later.
- Click Add
Step 2: Configure Postman to use your OAuth Token
Note: Depending on your version of Postman, these steps below might be slightly different.
- Open a new Tab in Postman
- In the authorization section, select "OAuth 2.0" as the type:
- Click Get New Access Token
- Provide a Token Name (ie. Workspace ONE)
- Under Grant Type, select "Client Credentials"
- "Under Access Token URL", enter https:[Tenant URL]/SAAS/auth/oauthtoken
- ie. https://dsas.vmwareidentity.com/SAAS/auth/oauthtoken
- Under Client ID, enter your Client ID from step 1.
- Under Secret, enter your secret from step 1.
- Under Scope, enter 'admin'
- Click Request Token
- On the left hand side, Select "Request Headers" and click "Preview Request".
- You should see a message saying headers were updated correctly:
- Click the Headers Tab and verify that the bearer token was added as a temporary header.
- If the bearer token was not added, return to the Authorization Tab and select your token from the available tokens drop down list and preview the request again.
Step 3: Create an "Other" Directory for your Okta Users.
- Open a new Tab in Postman
- Add the Authorization Header as per the previous section.
- For the HTTP Method, select "POST"
- For the URL, enter: https://[TENANTURL]/SAAS/jersey/manager/api/connectormanagement/directoryconfigs
Replace the Tenant URL with your URL
ie. https://dsas.vmwareidentity.com/SAAS/jersey/manager/api/connectormanagement/directoryconfigs - Under "Headers", Set the Content-Type to "application/vnd.vmware.horizon.manager.connector.management.directory.other+json"
- Use the following as a sample and Click Send
{ "type":"OTHER_DIRECTORY", "domains":["Okta.com"], "name":"Okta Universal Directory" }
You should see a similar result
Step 4: Add the Workspace ONE SCIM Provisioning App in Okta
At the time of writing this blog, the Workspace ONE Provisioning APP is not published on the OIN.
In the meanwhile, I will document the steps to create on manually.
- Log into the Okta Admin Console
- Click on Applications -> Applications
- Search for the "SCIM 1.1 Test App (OAuth Bearer Token)" application
- Provide a Name for the application and check both "Do not display" checkboxes
- Click Next
- Click Done
- Click on Sign On
- Under application format, select Email prefix
Note: This step is required to avoid an issue with using email addresses as usernames when deploying SCEP certificates in Workspace ONE UEM.
- Click on the Provisiong Tab and Click Configure API IntegrationClick Enable API Integration
- Enter the SCIM 1.1 Base URL in the following format: https://[tenant url]/SAAS/jersey/manager/api/scim
- Paste your bearer token that was created in the earlier step with postman.
- Click Test API Credentials
- Ensure you have a "Success" before proceeding.
- Click Save
- Scroll down to the Attribute Mapping Section
- Delete the following attributes
-entitlements
-roles - Click "Go to Profile Editor"
- Click "Add Attribute"
- Click Add Attribute
- Enter "userPrincipalName" as the Display name, Variable Name and External Name
- Enter "urn:scim:schemas:extension:workspace:1.0" as the External Namespace
- Save
- Click Add Attribute
- Enter "domain" as the Display name, Variable Name and External Name
- Enter "urn:scim:schemas:extension:workspace:1.0" as the External Namespace
- Save
- Click on Mappings
- Click on the Okta to Workspace ONE SCIM Tab
- Scroll down to the new attributes we created and map the attributes as per below:
Okta User Profile Workspace ONE SCIM User Profile 'PROVISIONED' internalUserType user.email userPrincipalName Enter the Domain Used in Step 3 domain - Remove the mappings (Mappings -> Okta to Scim 1.1):
Attributes displayName locale title department organization - Click Save Mappings
- Click Apply Updates Now
- Click on the Provisioning Tab again
- Click Edit and Enable Provisioning for Create Users and Deactivate Users. Note: Do not select update users
- Click Save
- Using a test user, assign the user the Workspace ONE SCIM application
- If you receive an error such as below you might need to un-map additional attributes.
Issues with Groups
It has been discovered that there are a few issues with provisioning groups from Okta to Workspace ONE. While we wait for these issues to be resolved, you will need to pre-create the groups in Workspace ONE Access before they can be sync'd from Okta.
The following instructions require you to use Postman. You will not be able to do this from the Workspace ONE Access console.
- Open a new tab in Postman
- Add the Authorization Header as per the previous section.
- For the HTTP Method, select "POST"
- For the URL, enter: HTTPS://[TENANTURL]/SAAS/JERSEY/MANAGER/API/SCIM/GROUPS
- Replace the Tenant URL with your URL
- Under "Headers", Set the Content-Type to " APPLICATION/JSON"
- Use the following as a sample and Send. You will need to do this for each group you plan on linking in Okta: Replace the DisplayName with the same name as the group in Okta.
{ "SCHEMAS": [ "URN:SCIM:SCHEMAS:CORE:1.0" ], "DISPLAYNAME": "SCIMTESTING2" }
Next we will need to "LINK" the groups in Okta:
- In the VMware Workspace ONE application (your SCIM 1.1 app) in the Okta console, click on “Push Groups”
- Click on Refresh App Groups to ensure Okta has a complete list of groups in Workspace ONE Access.
- Click on Push Groups -> Find Groups by Name
- Enter the name of the group that is already created in Okta
- Ensure that a match is found in Workspace ONE Access with the option to Link Group:
- Click Save
For additional troubleshooting see:
https://communities.vmware.com/blogs/steveIDM/2019/10/21/workspace-one-and-okta-troubleshooting-blog