Okta Developer Setup Guide: SAML SSO and SCIM Provisioning
This guide walks you through configuring Okta Developer as your Identity Provider (IdP) for CRA Evidence, covering both SAML 2.0 Single Sign-On (SSO) and SCIM 2.0 user provisioning.
Overview
What Okta Developer Offers
Okta Developer (https://developer.okta.com/) provides a free tier suitable for testing and small deployments:
| Feature | Free Tier Limit |
|---|---|
| Monthly Active Users | Up to 100 |
| SAML Applications | Unlimited |
| SCIM Provisioning | Included |
| Multi-Factor Authentication | Included |
| Custom Domains | Not included (requires paid) |
For production environments with more users, consider Okta Workforce Identity.
What You Will Configure
| Feature | Purpose |
|---|---|
| SAML 2.0 SSO | Allow users to log in to CRA Evidence using Okta credentials |
| SCIM 2.0 Provisioning | Automatically create, update, and deactivate users in CRA Evidence when changes occur in Okta |
When combined, SAML and SCIM provide:
- Single Sign-On: Users authenticate once in Okta to access CRA Evidence
- Automated Provisioning: No manual user creation in CRA Evidence
- Lifecycle Management: Deactivate CRA Evidence access when employees leave
- Centralized Control: Manage all access from your IdP
Prerequisites
Before starting, ensure you have:
1. Okta Developer Account
Sign up at https://developer.okta.com/signup/ if you do not have an account:
- Visit the signup page
- Enter your email and create a password
- Verify your email address
- Note your Okta domain (e.g.,
dev-123456.okta.com)
2. CRA Evidence Access
- CRA Evidence instance running and accessible (e.g.,
https://app.craevidence.comor your self-hosted URL) - Organisation admin access in CRA Evidence
- Professional or Enterprise plan (SSO features require a paid plan)
3. Domain Information
- Your company email domain(s) (e.g.,
company.com) - DNS access to add TXT records for domain verification
Part 1: SAML SSO Setup
Step 1.1: Gather CRA Evidence SP Information
Before configuring Okta, collect the Service Provider (SP) information from CRA Evidence:
- Log in to CRA Evidence as an organisation admin
- Navigate to Settings > Single Sign-On
- Note the following values:
| Field | Value (Example) |
|---|---|
| Entity ID (SP Issuer) | https://app.craevidence.com |
| ACS URL | https://app.craevidence.com/api/v1/saml/acs |
| Metadata URL | https://app.craevidence.com/api/v1/saml/metadata |
Replace app.craevidence.com with your actual CRA Evidence domain.
Step 1.2: Create SAML Application in Okta
- Log in to your Okta Admin Console (https://your-domain.okta.com/admin)
- Navigate to Applications > Applications in the left sidebar
- Click Create App Integration
- Select the following options:
- Sign-in method: SAML 2.0
- Click Next
Step 1.3: Configure General Settings
| Field | Value |
|---|---|
| App name | CRA Evidence |
| App logo | Upload your company or CRA Evidence logo (optional) |
| App visibility | Check both visibility options if you want users to see this app |
Click Next to proceed to SAML settings.
Step 1.4: Configure SAML Settings
General SAML Configuration
| Field | Value |
|---|---|
| Single sign-on URL | https://app.craevidence.com/api/v1/saml/acs |
| Use this for Recipient URL and Destination URL | Checked |
| Audience URI (SP Entity ID) | https://app.craevidence.com |
| Default RelayState | (leave blank) |
| Name ID format | EmailAddress |
| Application username | Email |
| Update application username on | Create and update |
Attribute Statements (Required)
Configure these attribute mappings so CRA Evidence receives user information:
| Name | Name format | Value |
|---|---|---|
email |
Basic | user.email |
firstName |
Basic | user.firstName |
lastName |
Basic | user.lastName |
displayName |
Basic | user.displayName |
Group Attribute Statements (Optional)
If you want to pass group information:
| Name | Name format | Filter | Value |
|---|---|---|---|
groups |
Basic | Matches regex | .* |
Click Next to proceed.
Step 1.5: Complete Feedback Section
- Select I'm an Okta customer adding an internal app
- Check This is an internal app that we have created
- Click Finish
Step 1.6: Download IdP Metadata
After creating the application:
- On the application page, go to the Sign On tab
- Scroll down to SAML Signing Certificates
- For the active certificate, click Actions > View IdP metadata
- Save this metadata URL, or download the XML file
Alternatively, manually note these values:
| Field | Where to Find |
|---|---|
| IdP Entity ID | "Identity Provider Issuer" in setup instructions |
| IdP SSO URL | "Identity Provider Single Sign-On URL" |
| X.509 Certificate | Download from "SAML Signing Certificates" |
Step 1.7: Configure CRA Evidence with Okta IdP
- In CRA Evidence, navigate to Settings > Single Sign-On
- Click Add Identity Provider
- Fill in the form:
| Field | Value |
|---|---|
| Name | Okta (or a descriptive name like "Okta Production") |
| Vendor | Select Okta |
| Entity ID | The Identity Provider Issuer from Okta |
| SSO URL | The Identity Provider SSO URL from Okta |
| SLO URL | (optional) Single Logout URL if provided |
| X.509 Certificate | Paste the certificate content (including BEGIN/END lines) |
JIT Provisioning Settings
| Field | Recommended Value | Description |
|---|---|---|
| Enable JIT Provisioning | Yes | Automatically create users on first login |
| Default Role | Member | Role assigned to new users |
| Update on Login | Yes | Sync user attributes on each login |
- Click Add Identity Provider
Step 1.8: Add and Verify SSO Domain
Link your email domain to the Okta IdP:
- In CRA Evidence SSO settings, go to the Domains tab
- Click Add Domain
- Enter your email domain (e.g.,
company.com) - Select the Okta IdP you created
- Click Add Domain
Domain Verification
CRA Evidence requires domain ownership verification:
- After adding the domain, note the verification token displayed
- Add a DNS TXT record to your domain:
Host: _craevidence-verification.company.com
Type: TXT
Value: craevidence-verify=<your-verification-token>
- Wait for DNS propagation (typically 5-30 minutes, up to 48 hours)
- Click Verify Now in CRA Evidence
The domain status will change from "Pending" to "Verified" upon successful verification.
Step 1.9: Assign Users in Okta
Before testing, assign users to the CRA Evidence application:
- In Okta Admin Console, go to your CRA Evidence application
- Click the Assignments tab
- Click Assign and choose either:
- Assign to People: Select individual users
- Assign to Groups: Select entire groups (recommended)
- Click Save and Go Back
Step 1.10: Test SSO Flow
- Open a new incognito/private browser window
- Navigate to your CRA Evidence login page (e.g.,
https://app.craevidence.com/login) - Enter an email address from your verified SSO domain
- Click Continue
- You should be redirected to Okta's login page
- Authenticate with your Okta credentials
- Upon successful authentication, you should be redirected back to CRA Evidence, logged in
If JIT provisioning is enabled and this is your first login, a new user account will be created automatically.
Part 2: SCIM Provisioning Setup
SCIM enables automatic user provisioning from Okta to CRA Evidence, eliminating manual user management.
Step 2.1: Enable Provisioning in Okta
- In Okta Admin Console, go to your CRA Evidence application
- Click the Provisioning tab
- Click Configure API Integration
- Check Enable API Integration
Do not fill in the credentials yet - you need to create a SCIM client in CRA Evidence first.
Step 2.2: Create SCIM Client in CRA Evidence
- In CRA Evidence, navigate to Settings > SCIM Provisioning
- Click Add SCIM Client
- Configure the client:
| Field | Value |
|---|---|
| Name | Okta SCIM |
| Description | SCIM provisioning from Okta (optional) |
| Link to IdP | Select your Okta SAML IdP (optional but recommended) |
Provisioning Settings
| Setting | Recommended Value | Description |
|---|---|---|
| Default Role | member |
Role for SCIM-created users |
| Auto-Activate | Yes | Users are active immediately |
| Sync Attributes | Yes | Update user info on changes |
| Allow Deactivation | Yes | Okta can deactivate users |
| Allow Deletion | No | Safer to deactivate rather than delete |
- Click Create Client
Important: A bearer token will be displayed only once. Copy and securely store this token immediately. You cannot retrieve it later.
Example token format:
scim_xK9mN2pQ5rT8vW3y...
Step 2.3: Configure SCIM Connector in Okta
Return to Okta and complete the API integration:
- In the API Integration section, enter:
| Field | Value |
|---|---|
| SCIM connector base URL | https://app.craevidence.com/scim/v2 |
| Unique identifier field for users | userName |
| Supported provisioning actions | Check all applicable options |
| Authentication Mode | HTTP Header |
- Click Test API Credentials to verify the connection
If the test fails:
- Verify the SCIM client is enabled in CRA Evidence
- Check the bearer token is correct
- Ensure the base URL is correct (no trailing slash)
- Click Save once the test succeeds
Step 2.4: Configure Provisioning Options
After saving API credentials, additional tabs appear:
To App Settings
Click Provisioning > To App and click Edit:
| Feature | Recommended | Description |
|---|---|---|
| Create Users | Enabled | Create users when assigned in Okta |
| Update User Attributes | Enabled | Sync attribute changes |
| Deactivate Users | Enabled | Deactivate when unassigned |
Click Save.
Attribute Mappings
Click Provisioning > To App then scroll to Attribute Mappings.
Verify these mappings (most should be automatic):
| CRA Evidence Attribute | Okta Attribute |
|---|---|
userName |
user.email |
givenName |
user.firstName |
familyName |
user.lastName |
email |
user.email |
displayName |
user.displayName |
active |
(automatic) |
Step 2.5: Assign Users and Groups
Trigger provisioning by assigning users:
- Go to the Assignments tab
- Click Assign and select users or groups
- For each assignment, you can customize attributes (optional)
- Click Save and Go Back
Okta will automatically provision assigned users to CRA Evidence via SCIM.
Step 2.6: Verify Provisioning
Check that users were created in CRA Evidence:
- In CRA Evidence, go to Settings > Members
- Verify the provisioned users appear
- Check their Provisioned Via field shows "SCIM"
In Okta, check provisioning status:
- Go to your CRA Evidence application
- Click Provisioning > To App
- Scroll down to see Provisioning Troubleshooting or recent operations
Part 3: Testing Checklist
Use this checklist to verify your configuration:
SSO Login Flow
- [ ] User with SSO domain email is redirected to Okta from CRA Evidence login
- [ ] After Okta authentication, user is redirected back to CRA Evidence
- [ ] User is logged in and sees their dashboard
- [ ] User attributes (name, email) are correct in CRA Evidence
JIT Provisioning (SAML)
- [ ] New user authenticating via SSO for the first time gets account created
- [ ] New user is assigned the configured default role
- [ ] User's
provisioned_viafield shows "saml_jit"
SCIM User Sync
- [ ] User assigned in Okta appears in CRA Evidence within minutes
- [ ] User's
provisioned_viafield shows "scim" - [ ] User attributes match what is configured in Okta
SCIM User Updates
- [ ] Changing user's name in Okta updates it in CRA Evidence
- [ ] Changing user's email in Okta updates it in CRA Evidence (if allowed)
SCIM User Deactivation
- [ ] Unassigning user in Okta deactivates them in CRA Evidence
- [ ] Deactivated user cannot log in to CRA Evidence
- [ ] User record remains in CRA Evidence (for audit purposes)
Combined SAML + SCIM
- [ ] SCIM-provisioned user can log in via SAML SSO
- [ ] User attributes are consistent between SCIM and SAML assertions
Part 4: Troubleshooting
SAML SSO Issues
"Invalid SAML Response" Error
Symptoms: Error message after Okta authentication, user not logged in.
Solutions:
- Verify the ACS URL matches exactly (including https and no trailing slash)
- Ensure the X.509 certificate in CRA Evidence matches Okta's active certificate
- Check the certificate has not expired
- Verify Name ID format is set to
EmailAddressin Okta
"User Not Being Created" (JIT)
Symptoms: User authenticates successfully but no account is created.
Solutions:
- Confirm JIT Provisioning is enabled in the IdP settings
- Verify the
emailattribute statement is configured in Okta - Check CRA Evidence logs for attribute parsing errors
- Ensure the user's email domain matches a verified SSO domain
"Domain Not Configured" Message
Symptoms: User enters email but is not redirected to Okta.
Solutions:
- Verify the domain is verified (not just added) in CRA Evidence
- Check domain spelling matches exactly (case-insensitive)
- Ensure the domain is linked to the correct IdP
- Wait for DNS propagation if domain was recently verified
Clock Skew Errors
Symptoms: SAML assertion rejected due to timing.
Solutions:
- CRA Evidence allows up to 2 minutes of clock drift by default
- Ensure your Okta tenant has accurate time
- Check server time synchronization if self-hosting CRA Evidence
SCIM Provisioning Issues
401 Unauthorized
Symptoms: Okta test connection fails, no users provisioned.
Solutions:
- Verify the bearer token is correct (regenerate if unsure)
- Check the SCIM client is enabled in CRA Evidence
- Confirm
SCIM_ENABLED=truein CRA Evidence configuration - Ensure there are no extra spaces in the token
429 Too Many Requests
Symptoms: Provisioning operations fail intermittently.
Solutions:
- SCIM clients have rate limits (default 1000/hour)
- Wait for the rate limit window to reset
- Contact support if you need higher limits
409 Conflict
Symptoms: User creation fails with conflict error.
Solutions:
- User may already exist with a different external ID
- Check if user was previously created via JIT provisioning
- Review SCIM provisioning logs in CRA Evidence for details
User Not Created
Symptoms: Okta shows success but user does not appear in CRA Evidence.
Solutions:
- Verify
userNameattribute is a valid email address - Check the
auto_activatesetting in SCIM client - Review CRA Evidence SCIM provisioning logs
- Check Okta provisioning logs for detailed errors
Okta-Specific Issues
Certificate Rollover
Okta periodically rotates signing certificates:
- Okta sends email notifications before rotation
- Download the new certificate from Okta
- Update the certificate in CRA Evidence IdP settings
- Test login before the old certificate expires
Rate Limiting from Okta Side
If Okta is rate-limited when calling CRA Evidence:
- Okta will retry with exponential backoff
- Check Okta System Log for SCIM-related events
- Monitor CRA Evidence rate limit headers in responses
Optional: Advanced Configuration
SSO Enforcement
Once SSO is working reliably, enforce it for all users:
- In CRA Evidence, go to Settings > Single Sign-On > Enforcement
- Enable Require SSO for all users
- Optionally enable Allow admins to bypass SSO (for emergency access)
- Click Save Settings
With enforcement enabled, password login is disabled for non-admin users.
Multiple Okta Tenants
If you have separate Okta environments (e.g., dev, staging, production):
- Create separate IdP configurations in CRA Evidence
- Link different email domains to different IdPs
- Create separate SCIM clients for each Okta tenant
Linking SCIM Client to SAML IdP
Linking your SCIM client to a SAML IdP provides:
- Unified view in CRA Evidence settings
- Consistent user tracking across SSO and provisioning
To link:
- When creating or editing a SCIM client, select the SAML IdP in the "Link to IdP" field
Support
If you encounter issues not covered here:
-
Review the detailed architecture documentation:
- SAML SSO Architecture (contact support for details)
- SCIM Provisioning Architecture (contact support for details)
-
Contact CRA Evidence support:
- Email: support@craevidence.com
- Include:
- Screenshots of error messages
- Okta application configuration (mask sensitive data)
- CRA Evidence IdP/SCIM client configuration
- Relevant log entries
-
For Okta-specific issues:
- Okta Support: https://support.okta.com/
- Okta Developer Forums: https://devforum.okta.com/
Quick Reference
CRA Evidence URLs
| Purpose | URL Pattern |
|---|---|
| ACS URL | https://<your-domain>/api/v1/saml/acs |
| SP Metadata | https://<your-domain>/api/v1/saml/metadata |
| SCIM Base URL | https://<your-domain>/scim/v2 |
Required Okta Settings
| Setting | Value |
|---|---|
| Name ID format | EmailAddress |
| Application username | Email |
| SCIM unique identifier | userName |
| SCIM auth mode | HTTP Header |
Attribute Mappings
| SAML Attribute | SCIM Attribute | Okta Source |
|---|---|---|
email |
userName, emails |
user.email |
firstName |
name.givenName |
user.firstName |
lastName |
name.familyName |
user.lastName |
displayName |
displayName |
user.displayName |
Other identity providers
CRA Evidence supports SAML SSO with any compliant identity provider:
Related documentation
- SCIM Provisioning — Automated user management
- Team Management — Manual user management
- Organisation Settings — General configuration
Help us improve. What was missing or unclear?