SCIM Integration with User Groups
Overview
SCIM (System for Cross-domain Identity Management) enables automatic user provisioning and group management from identity providers (IdPs) like Okta, Azure AD, or Google Workspace.
Benefits
Automatic provisioning: new users are added to groups based on IdP group membership
Synchronization: group membership stays in sync with the IdP
Deprovisioning: removing users from IdP groups removes them from Foundation groups
Reduced manual work: no manual group assignment
How SCIM Integration Works
1. Mapping IdP Groups to Foundation User Groups
Map IdP groups to Foundation user groups:
IdP Group:
engineering-data-team→ Foundation Group: Data EngineersIdP Group:
sales-team→ Foundation Group: Sales Users
2. SCIM Group Provisioning Flow
When a SCIM provider sends group information:
IdP Group Update → SCIM API → Foundation User Groups
The SCIM integration should:
Receive group information from the IdP
Create or update Foundation user groups
Map users from IdP groups to Foundation groups
Maintain group membership synchronization
3. Implementation Approach
Step 1: Create Foundation User Groups that correspond to IdP groups.
Step 2: Configure your SCIM integration to:
Map IdP group identifiers to Foundation group identifiers
Map IdP user identifiers to Foundation user identifiers
Step 3: Handle SCIM Group Events
When SCIM sends group membership updates:
Translate this to Foundation API calls:
4. SCIM Group Sync Best Practices
Initial Sync:
Fetch all groups from the IdP
Create corresponding Foundation groups
Map all users to their respective groups
Ongoing Sync:
Monitor SCIM webhooks for group changes
Update Foundation group membership accordingly
Handle user additions and removals
Error Handling:
If a user doesn't exist in Foundation, create them first (if SCIM user provisioning is enabled)
If a group doesn't exist, create it or log an error
Maintain idempotency: repeated operations should be safe
5. Example SCIM Integration Workflow
6. Role Assignment via SCIM
You can also assign roles to groups based on IdP group attributes:
SCIM Integration Checklist
[ ] Create Foundation user groups corresponding to IdP groups
[ ] Configure mapping between IdP and Foundation identifiers
[ ] Implement SCIM webhook handler for group updates
[ ] Handle user provisioning before group assignment
[ ] Implement error handling and logging
[ ] Test group synchronization in both directions
[ ] Set up monitoring for sync failures
Last updated