Dynamically Set SCIM Base URL Using Integration Variables in Okta Integration Network Submissions
Last Updated:
Overview
When creating a new Okta Integration Network (OIN) application for both Security Assertion Markup Language (SAML) and System for Cross-domain Identity Management (SCIM), developers often need to dynamically generate the SCIM Base URL based on an integration variable like acs_url.
Okta rejects standard SAML syntax concatenations, such as https://' + String.substringBefore(app.acs_url, '/saml/') + '/scim', and generates a validation error. Applying a specific substring expression without manually prepending the protocol resolves the issue.
Applies To
- Okta Identity Engine (OIE)
- Okta Integration Network (OIN)
- Integrator Free Org
- Security Assertion Markup Language (SAML) 2.0
- System for Cross-domain Identity Management (SCIM) 2.0
Cause
Okta enforces stricter validation for the Base URL field in the Integrator Free Org Plan than the SAML section. Okta expects a valid URL format or a specific expression that resolves to a URL starting with https://. Directly concatenating strings, such as
https://' + String.substringBefore(app.acs_url, '/saml/') + '/scim'
triggers validation errors because the syntax does not match the expected format of the integrator engine.
Solution
How is the SCIM Base URL dynamically set using integration variables?
Configure the SCIM Base URL to dynamically derive from an integration variable by applying the correct substring expression in the Integrator Free Org.
- Sign in to the Integrator Free Org.
- Navigate to the SCIM configuration section of the app integration.
- Enter the following expression in the Base URL field:
String.substringBefore(app.acs_url, '/saml/') + '/scim'
- Select Save or Next to validate the configuration.
NOTE: Do not manually prepend https:// if the variable app.acs_url already contains the protocol, as Okta resolves the full string correctly.
Review an example scenario of this expression.
Review the following example to understand how the expression processes the input URL.
-
- Input (
acs_url):https://example.site.co/saml/ - Expression Result:
https://example.site.co/scim
- Input (
