This article discusses the different connection methods supported when building a System for Cross-domain Identity Management (SCIM) server to set up a test environment to interact with Okta using this protocol.
NOTE: Okta does not maintain or support the SCIM playground. Only use test data with the SCIM playground. Do not export any sensitive information.
- API Access Management
- SCIM Integration
The SCIM playground provides several ways to connect with Okta. Each connection method has a unique setup.
Using API Key
- On the SCIM playground, go to get an API key.
- Accept the terms and conditions, then click on Access My Playground. The API key is valid for 24 hours by default, but a longer or shorter value can be selected before generating it.
- Save the key generated in the Use Existing Key section in Notepad or an external location.
- Click on the SCIM Playground icon in the top left corner, then the Playground button > Data Generator, and generate mock data for the test SCIM server:
- Click on Generate Users > Create activated users.
- Click on the Generate user button.
- Click on the Generate groups button.
- Click on the Assign users to groups button.
- On the Okta Admin Dashboard, create a SCIM application:
- Go to Applications > Applications, then click on Create App Integration.
- Choose SAML 2.0, then press Next.
- Enter the App Name, then press Next.
- In SAML Settings, use
https://scim.dev/as Single sign-on URL and Audience URI, then press Next.
-
- Check App type > This is an internal app that we have created.
-
- Press Finish to complete application creation. Now, the application is created.
- Go to the General tab > Edit button on App Settings > Provisioning > check SCIM and Save.
- A Provisioning tab will appear. Go to this tab, press Edit, and configure the integration with the following details:
- SCIM connector base URL:
https://api.scim.dev/scim/v2 - Unique identifier field for users:
userName - Supported provisioning actions: Check all the boxes.
- Authentication Mode: HTTP Header.
- HTTP Header > Authorization: Paste the API Key obtained from the SCIM playground.
- Press Save.
- SCIM connector base URL:
Using OAuth2
- On the SCIM playground, go to get an API key
https://scim.dev/apikey/- Accept the terms and conditions, then click on Access My Playground.
- Scroll down to the Authorization Code Grant section to see the generated client ID and secret.
- Click on the SCIM Playground icon in the top left corner, then the Playground button > Data Generator, and generate mock data for the test SCIM server:
- Click on Generate Users > Create activated users.
- Click on the Generate user button.
- Click on the Generate groups button.
- Click on the Assign users to groups button.
- On the Okta Admin Dashboard, create a SCIM application:
- Go to Applications > Applications, then click on Create App Integration.
- Choose SAML 2.0, then press Next.
- Enter the App Name, then press Next.
- In SAML Settings, use
https://scim.dev/as Single sign-on URL and Audience URI, then press Next.
-
- Check App type > This is an internal app that we have created.
-
- Press Finish to complete application creation. Now, the application is created:
- Go to the General tab > Edit button on App Settings > Provisioning > check SCIM and Save.
- A Provisioning tab will appear. Go to this tab, press Edit, and configure the integration with the following details:
- SCIM connector base URL:
https://api.scim.dev/scim/v2 - Unique identifier field for users:
userName - Supported provisioning actions: Check all the boxes.
- Authentication Mode: OAuth2
- Access token endpoint URI:
https://idp.scim.dev/oauth/token - Authorization endpoint URI:
https://idp.scim.dev/oauth/authorize - Client ID: The client generated on the SCIM playground.
- Client Secret: The client secret that was generated on the SCIM playground.
- Press Save.
- SCIM connector base URL:
- On the SCIM playground, press Send to create an administrator of the SCIM server.
- Scroll back up to Authorization Code Grant and add the callback URL to Okta as described in Authentication:
-
- The redirect URL will look like:
https://system-admin.{oktaDomain}.com/admin/app/cpc/{appName}/oauth/callback- Where the Okta domain could be okta, okta-emea, or oktapreview, according to the tenant.
- Get the appName directly from the address bar of the Okta Dashboard when navigating to the application's settings. For example:
- The redirect URL will look like:
-
-
- Here, the redirect URL to add to the SCIM Playground would be:
-
https://system-admin.oktapreview.com/admin/app/cpc/oie_scimdemo_10/oauth/callback
-
-
- Do not forget to click Add URL to add the URL to save the redirect URL.
-
- In Okta, go to Provisioning > Integration, scroll down, and press Authenticate with *.
- A login page will appear. Enter the SCIM playground-generated admin username and password (refer to section 6).
This will redirect to Okta, where the SCIM application is now connected to the SCIM playground.
Using a SCIM template
- On the SCIM playground, go to get an API key https://scim.dev/apikey/.
- Accept the terms and conditions, then click on Access My Playground.
- This will display an auto-generated API Key and the SCIM base URL.
- Click on the SCIM Playground icon on the top left corner, then the Playground button > Data Generator, and generate mock data for the test SCIM server:
- Click on Generate Users > Create activated users.
- Click on the Generate user button.
- Click on the Generate groups button.
- Click on the Assign users to groups button.
- On the Okta Admin Dashboard, create a SCIM application:
- Go to Applications, then click on Browse App Catalog.
- Search for the SCIM 2.0 Test App (OAuth Bearer Token) template.
- Click to open the template.
- Set up the integration:
-
- Click on Add Integration in the top right corner.
- Add a title (or keep the default one) to the SCIM integration.
- Press Next.
- Scroll down and press Done.
- Click on the Provisioning tab > Configure API Integration.
- Enter the base URL and API Key generated on the SCIM Playground, then press Save:
Now, it is all set to test the SCIM implementation.
