SCIM 2.0 User Provisioning
Automatically synchronize users from your identity provider (Azure AD, Okta, Google Workspace) to Exepron using the SCIM 2.0 standard. Streamline onboarding, reduce manual work, and improve security compliance.
proid.exepron.com as the Identity Server URL. If you have a self-hosted or custom deployment, replace this with your own Identity Server URL.
Table of Contents
What is SCIM?
SCIM (System for Cross-domain Identity Management) is an open standard protocol (RFC 7643 and RFC 7644) that enables automatic user provisioning and deprovisioning between identity providers and cloud applications.
┌─────────────────────┐ ┌─────────────────────┐
│ Identity Provider │ │ Exepron │
│ (Azure AD, Okta) │ │ (SCIM Server) │
│ │ │ │
│ 1. User Assigned │────────────────────>│ 2. SCIM Request │
│ to App │ POST /Users │ Received │
│ │ │ │
│ │<────────────────────│ 3. User Created │
│ │ 201 Created │ in Exepron │
│ │ │ │
│ 4. User Updated │────────────────────>│ 5. SCIM Request │
│ in IdP │ PUT /Users/{id} │ Processed │
│ │ │ │
│ 6. User Removed │────────────────────>│ 7. User Deactivated│
│ from App │ DELETE /Users/{id}│ in Exepron │
└─────────────────────┘ └─────────────────────┘
SCIM vs Manual User Management
| Aspect | Manual Management | SCIM Provisioning |
|---|---|---|
| User Creation | Admin creates user manually | Automatic when assigned in IdP |
| User Updates | Admin updates profile manually | Automatic sync from IdP |
| User Deactivation | Admin must remember to deactivate | Automatic when unassigned |
| Time Required | 5-10 minutes per user | Seconds (automated) |
| Error Rate | Higher (manual entry) | Lower (automated) |
| Audit Trail | Limited | Complete audit log |
Key Benefits
Automated Workflow
Users are automatically created, updated, and deactivated based on your identity provider assignments.
Time Savings
Eliminate manual user creation and updates. IT administrators spend less time on user management tasks.
Improved Security
Deactivated users are immediately removed from access. Enforces centralized authentication policies.
Compliance Ready
Complete audit trail of all provisioning activities. Meet compliance requirements for user lifecycle management.
Data Consistency
User data stays synchronized with your identity provider. Single source of truth for user information.
Scalability
Easily manage hundreds or thousands of users. Bulk provisioning supported through your IdP.
Supported Identity Providers
Exepron SCIM 2.0 works with any SCIM 2.0 compliant identity provider. We provide detailed integration guides for:
Prerequisites
Account Requirements
- SCIM Feature Enabled - Contact Exepron sales or support to enable SCIM for your account
- Account Administrator Access - You need admin rights in Exepron
- Payment Plan - SCIM is a premium feature (check your plan or contact sales)
Identity Provider Requirements
- SCIM 2.0 Support - Your IdP must support SCIM 2.0 protocol (RFC 7643/7644)
- OAuth 2.0 Support - Client Credentials grant type required
- Admin Access - You can configure applications in your IdP
- Premium License - Some IdPs require premium licenses for provisioning (e.g., Azure AD P1)
Network Requirements
- Outbound HTTPS - Your IdP must reach Exepron's SCIM endpoint
- TLS 1.2+ - Modern encryption protocols required
- Port 443 - Standard HTTPS port
Quick Start Guide
Follow these steps to set up SCIM provisioning in approximately 40-60 minutes:
1 Create SCIM Client in Exepron
- Log into Exepron as an Account Administrator
- Navigate to Profile Settings → User Provisioning → SCIM Clients in the Exepron Identity Server
- Click "Create New Client"
- Enter a display name (e.g., "Azure AD Production")
- Click "Create Client"
- ⚠️ IMPORTANT: Copy the Client ID and Client Secret immediately (shown only once!)
2 Configure Provisioning Settings
- Go to User Provisioning → Provisioning Settings
- Configure default settings for newly provisioned users:
- Default Role: User (recommended)
- Auto-activate provisioned users: Enabled
- Allow external login (SSO): Enabled
- Allow internal login: Disabled (enforces SSO)
- Use external username: Enabled
- Turn off project permissions by default: Enabled (more secure)
- Click Save
3 Configure Your Identity Provider
Choose your identity provider and follow the detailed integration guide:
4 Test Provisioning
- Assign a test user to the Exepron application in your IdP
- Wait for the sync cycle (Azure AD: ~40 min, Okta: seconds, Google: ~10-30 min)
- Check Exepron User Management for the new user
- Review the Audit Log for the provisioning event
- Have the user test logging in via SSO
5 Enable for All Users
- Once testing is successful, assign all users in your IdP
- Monitor the Audit Log for provisioning events
- Assign users to projects in Exepron as needed
Self-Service SCIM Client Management
Account administrators can now manage SCIM clients directly through the Identity Server admin interface. This self-service feature allows you to create, edit, and manage SCIM clients without contacting support.
Accessing SCIM Client Management
- Log into Exepron as an Account Administrator
- Navigate to Profile Settings in the Identity Server
- Select "User Provisioning" → "SCIM Clients" from the menu
Creating a SCIM Client
To create a new SCIM client:
- Click "Create New Client"
- Enter a Display Name (e.g., "Azure AD Production", "Okta Sync")
- Optionally select a Linked SSO Provider (more on this below)
- Click "Create"
- ⚠️ IMPORTANT: Copy the Client ID and Client Secret immediately - the secret is shown only once!
| Field | Required | Description |
|---|---|---|
| Display Name | Yes | A descriptive name for the SCIM client (e.g., "Azure AD Production") |
| Linked SSO Provider | No | Optional link to an SSO provider for user authentication |
Editing a SCIM Client
You can edit the following properties of an existing SCIM client:
- Display Name: Update the descriptive name to better identify the client
- Linked SSO Provider: Link or unlink an SSO provider
To edit a client:
- Find the client in the SCIM Clients list
- Click the Edit button (pencil icon)
- Modify the Display Name and/or SSO Provider link
- Click "Save Changes"
Linking SSO Providers
Linking a SCIM client to an SSO provider enables seamless authentication for users provisioned via SCIM:
Benefits of Linking:
- Seamless Authentication: Users provisioned via SCIM can immediately log in using SSO
- Consistent Identity: Same identity provider handles both provisioning and authentication
- Automated Lifecycle: User deactivation in IdP automatically affects Exepron access
How It Works:
| Scenario | User Login Method |
|---|---|
| SSO Provider Linked | Users authenticate using the linked SSO provider (SAML/OIDC). No password required. |
| No SSO Provider Linked | Users have "SCIM" as their login provider. Must set up password-based authentication. |
Regenerating Client Secret
If your SCIM client secret is compromised or needs rotation:
- Find the client in the SCIM Clients list
- Click the "Regenerate Secret" button
- Copy the new secret immediately - it's only shown once
- Update your identity provider's SCIM configuration with the new secret
- The old secret is immediately invalidated
Deactivating a SCIM Client
Deactivating a SCIM client:
- Prevents any further SCIM operations using that client
- Does not affect users already provisioned
- The client can be identified but cannot authenticate
- The client can be reactivated later if needed
Reactivating a SCIM Client
To reactivate a deactivated SCIM client:
- Find the inactive client in your SCIM Clients list (shown with "Inactive" badge)
- Click the Reactivate button (green checkmark icon)
- Confirm the reactivation
Deleting a SCIM Client Permanently
To permanently delete a SCIM client:
- Deactivate the client first (required before deletion)
- Click the Delete button (red trash icon) on the inactive client
- Confirm the permanent deletion
SCIM Client Limits
- Maximum 10 SCIM clients per account
- Contact customersupport@exepron.com if additional clients are needed
Setting Up SSO with SCIM Provisioning
For the best user experience, configure both SSO (for authentication) and SCIM (for user provisioning) together. This ensures users are automatically created AND can log in seamlessly using your identity provider.
1 Create the SSO Provider First
- Navigate to Profile Settings → SSO Providers in the Identity Server
- Click "Add SSO Provider"
- Configure your identity provider (Azure AD, Okta, Google, etc.):
- Display Name: e.g., "Azure AD SSO"
- Authentication Scheme: Unique identifier (e.g., "AzureAD")
- Authority URL: Your IdP's OIDC discovery URL
- Client ID: From your IdP app registration
- Client Secret: From your IdP app registration
- Click "Create"
- Copy the Callback URL shown and configure it in your identity provider
2 Create the SCIM Client
- Navigate to Profile Settings → User Provisioning → SCIM Clients
- Click "Create New Client"
- Enter a Display Name (e.g., "Azure AD SCIM")
- Select the SSO Provider you just created from the dropdown
- Click "Create"
- Copy the Client ID and Client Secret
3 Configure Provisioning in Your Identity Provider
- In your IdP (Azure AD, Okta, etc.), configure SCIM provisioning:
- SCIM Endpoint:
https://proid.exepron.com/scim/v2 - Client ID: Your SCIM Client ID
- Client Secret: Your SCIM Client Secret
- SCIM Endpoint:
- Configure attribute mappings (see Minimal Required Mappings)
- Enable provisioning and assign users/groups
4 Test the Complete Flow
- Assign a test user to your application in the IdP
- Wait for the SCIM sync to complete (timing varies by IdP)
- Verify the user appears in Exepron User Management
- Have the user log in using the SSO button on the Exepron login page
- The user should be authenticated without needing to set a password
- New users are automatically created when assigned in your IdP
- Users can immediately log in using SSO (no password setup required)
- User updates sync automatically from your IdP
- Removing users from your IdP deactivates them in Exepron
Integration Guides
! Minimal Required Attribute Mappings
To successfully provision users from your identity provider, you only need to configure 6 essential attribute mappings:
| Source Attribute (IdP) | Target Attribute (SCIM) | Required | Description |
|---|---|---|---|
userPrincipalName or mail |
userName |
Required | User's login identifier (typically email) |
objectId |
externalId |
Required | Must be objectId - SSO uses this to match users |
mail |
emails[type eq "work"].value |
Required | User's email address |
Switch([IsSoftDeleted],...) or accountEnabled |
active |
Required | Whether the user is active (true/false) |
givenName |
name.givenName |
Optional | User's first name |
surname |
name.familyName |
Optional | User's last name |
externalId attribute must be mapped to objectId (Azure AD) or the equivalent unique identifier from your identity provider. This is the value that SSO uses to match authenticated users to their Exepron accounts. If you use a different attribute (like userPrincipalName), SSO login will fail because the identifiers won't match.
displayName, Switch([IsSoftDeleted],...) → active (if using accountEnabled instead), and any other attributes that show errors. Exepron only requires the minimal set above.
Microsoft Azure AD / Entra ID
Prerequisites: Azure AD Premium P1 or P2 license, Global Administrator or Application Administrator role
Configuration Steps:
- Create Enterprise Application
- Sign in to Azure Portal
- Navigate to Azure Active Directory → Enterprise Applications
- Click "+ New application" → "+ Create your own application"
- Name: "Exepron"
- Select: "Integrate any other application you don't find in the gallery"
- Click "Create"
- Configure Provisioning
- Go to Provisioning tab
- Click "Get started"
- Provisioning Mode: Automatic
- Tenant URL:
https://proid.exepron.com/scim/v2 - Secret Token: [Your SCIM Client Secret]
- Click "Test Connection" (should succeed)
- Click "Save"
- Configure Attribute Mappings
userPrincipalName → userName objectId → externalId mail → emails[type eq "work"].value givenName → name.givenName surname → name.familyName accountEnabled → active
- Enable Provisioning
- Provisioning Status: On
- Scope: Sync only assigned users and groups (recommended)
- Click "Save"
- Assign Users
- Go to Users and groups tab
- Click "+ Add user/group"
- Select users or groups to provision
Okta
Prerequisites: Okta account with admin access, SCIM provisioning feature enabled
Configuration Steps:
- Create Application
- Sign in to Okta Admin Console
- Applications → Applications → "Create App Integration"
- Sign-in method: SAML 2.0 or OIDC
- App name: "Exepron"
- Enable API Integration
- Go to Provisioning tab
- Click "Configure API Integration"
- Check "Enable API integration"
- Base URL:
https://proid.exepron.com/scim/v2 - API Token: [Your SCIM Client Secret]
- Click "Test API Credentials"
- Click "Save"
- Enable Provisioning Features
- To App tab → Edit
- Enable: Create Users, Update User Attributes, Deactivate Users
- Click "Save"
- Assign Users
- Assignments tab → "Assign" → "Assign to People"
- Select users to provision
Generic SCIM 2.0 Configuration
For any SCIM 2.0 compliant identity provider, use these settings:
API Reference
Base URL: https://proid.exepron.com/scim/v2
Authentication: OAuth 2.0 Password Flow (Bearer Token)
Common Endpoints
| Endpoint | Method | Description |
|---|---|---|
/ServiceProviderConfig |
GET | Get SCIM capabilities |
/ResourceTypes |
GET | List supported resource types |
/Schemas |
GET | Get SCIM schemas |
/Users |
GET | List users (with filtering/pagination) |
/Users/{id} |
GET | Get specific user |
/Users |
POST | Create new user |
/Users/{id} |
PUT | Update user (full replace) |
/Users/{id} |
PATCH | Update user (partial) |
/Users/{id} |
DELETE | Deactivate user |
Example: Create User
Rate Limits
- 60 requests per minute per SCIM client
- 1,000 requests per hour per SCIM client
- Contact support for higher limits if needed
Role Mapping via SCIM Extension
Exepron supports role assignment during SCIM provisioning using a custom extension schema. This allows your identity provider to specify which roles a user should receive, overriding or supplementing the default role.
Available Roles
| Role ID | Role Name | Description |
|---|---|---|
1 |
Administrator | Full administrative access to the account |
2 |
General User | Standard user access (recommended default) |
Extension Schema
To map roles, include the Exepron extension in your SCIM requests:
Example: Create User with Role
Example: Multiple Roles
Azure AD Configuration
To map roles from Azure AD:
- In your Enterprise Application, go to Provisioning → Attribute Mappings
- Click "Add New Mapping" or enable "Show advanced options"
- Create a custom attribute mapping:
- Source attribute: Use an expression or custom attribute that contains the role ID
- Target attribute:
urn:exepron:scim:schemas:extension:1.0:User:roleId
replaceDefaultRoles is false, the SCIM-provided roles will be added to the default role.
Viewing SCIM Audit Logs
Every SCIM provisioning operation is logged for audit and compliance purposes. You can view these logs to troubleshoot issues or verify successful provisioning.
1 Accessing the Audit Log
- Log into Exepron as an Account Administrator
- Navigate to Profile Settings in the Identity Server
- Select "User Provisioning" → "Audit Log" from the menu
2 Understanding Log Entries
Each log entry contains:
| Field | Description |
|---|---|
| Performed On | UTC timestamp of the operation |
| Action | Created, Updated, Deactivated, Linked, or Failed |
| External ID | The user's ID from your identity provider (objectId in Azure AD) |
| Response Status | HTTP status code (200-299 = success, 400+ = error) |
| IP Address | IP address of the provisioning request source |
| Details | Click to view full request payload and error messages |
3 Filtering and Exporting
- Filter by Action: Show only Created, Updated, Deactivated, or Linked entries
- Filter by Date Range: Find logs within a specific time period
- Filter by External ID: Search for a specific user's provisioning history
- Export to CSV: Download logs for compliance auditing or external analysis
- The SCIM endpoint URL in your IdP is correct
- Test Connection succeeds in your IdP
- Users are assigned to the application in your IdP
- The initial sync cycle has completed (Azure AD: 20-40 min)
Troubleshooting
Common Issues
Connection Test Fails
Symptoms: "Test connection failed" or "Unable to reach endpoint"
Solutions:
- Verify URL is exactly:
https://proid.exepron.com/scim/v2(no trailing slash) - Check client secret for copy/paste errors
- Regenerate client secret and try again
- Verify SCIM client is Active (not deactivated)
Users Not Syncing
Symptoms: Users assigned in IdP but not appearing in Exepron
Solutions:
- Verify provisioning status is "On" in IdP
- Check users are assigned to the application
- Wait for sync cycle (Azure AD: 40 min, Okta: immediate)
- Check provisioning logs in IdP for errors
- Review Exepron Audit Log for failed requests
User Can't Login After Provisioning
Symptoms: User created but sees "Access denied"
Solutions:
- Verify "Auto-activate provisioned users" is enabled in Provisioning Settings
- Check user status is "Active" in User Management
- Ensure "Allow External Login" is enabled for the user
- User must use SSO button (not username/password)
- Verify SSO is configured for your IdP
Getting Help
If you need assistance:
- Check Audit Logs: Profile Settings → User Provisioning → Audit Log in the Exepron Identity Server
- Email Support: customersupport@exepron.com
- Include: Account ID, SCIM Client ID, error messages, and audit log exports
Frequently Asked Questions
General Questions
Q: Is SCIM included in my plan?
A: SCIM is a premium feature. Check your payment plan or contact support. If you see "User Provisioning" in Profile Settings, it's enabled.
Q: Can I use SCIM without SSO?
A: Yes, but not recommended. Users would be provisioned but must set passwords manually. Best practice is SCIM + SSO together.
Q: What SCIM version is supported?
A: SCIM 2.0 (RFC 7643 and RFC 7644). SCIM 1.1 is not supported.
Technical Questions
Q: Are groups supported?
A: Not yet. Currently only User resource type. Group provisioning may be added in future.
Q: Can I provision roles via SCIM?
A: Yes! You can map roles using the Exepron SCIM extension. See the Role Mapping section below for details.
Q: What's the rate limit?
A: 60 requests/minute and 1,000 requests/hour per SCIM client. Contact support for higher limits.
Provisioning Questions
Q: How long does provisioning take?
A: Okta: Seconds to minutes | Azure AD: 20-40 minutes initially, then every 40 minutes | Google: 10-30 minutes
Q: What happens if user already exists?
A: Exepron links the external identity to existing user (by email match). No duplicate created. Logged as "Linked" action.
Q: Are passwords synced?
A: No. SCIM doesn't sync passwords. Users authenticate via SSO (SAML/OIDC) using IdP credentials.
Security Questions
Q: Is SCIM secure?
A: Yes. OAuth 2.0 authentication, HTTPS encryption (TLS 1.2+), rate limiting, audit logging, and hashed secrets.
Q: What if my SCIM secret is compromised?
A: Immediately regenerate the secret in Exepron, update your IdP, and review audit logs for unauthorized access.