Overview
SCIM is an enterprise feature available in the commercial version of Bitwarden Server.
- SCIM 2.0 Protocol: Standards-compliant user and group provisioning
- User Provisioning: Automatic user creation, updates, and deactivation
- Group Management: Synchronize organizational groups and memberships
- API Key Authentication: Secure authentication for identity providers
- Real-time Sync: Instant propagation of identity changes
Architecture
SCIM 2.0 Specification
The service implements SCIM 2.0 core schema (RFC 7643) and protocol (RFC 7644):- Users:
/v2/{orgId}/users - Groups:
/v2/{orgId}/groups - Service Provider Config:
/v2/ServiceProviderConfig - Resource Types:
/v2/ResourceTypes - Schemas:
/v2/Schemas
Configuration
Frombitwarden_license/src/Scim/Startup.cs:29:
Service Configuration
Authentication
API Key Authentication
The SCIM service uses API key authentication instead of OAuth:SCIM Context
Frombitwarden_license/src/Scim/Startup.cs:50:
SCIM Context
- API key authenticity
- Organization ID matches authenticated organization
- Organization has SCIM enabled
- API key has not been revoked
Users Endpoint
List Users
Create User
Request Body
Update User
Patch User
Patch Operations
Delete User
Groups Endpoint
Frombitwarden_license/src/Scim/Controllers/v2/GroupsController.cs:17:
Groups Controller
List Groups
Create Group
Update Group Membership
Add Members
Remove Members
SCIM Commands and Queries
Frombitwarden_license/src/Scim/Startup.cs:89:
SCIM Services
- Commands: Create, update, patch, delete operations
- Queries: List, filter, search operations
- Validation: SCIM schema compliance
- Business Logic: Bitwarden-specific rules and constraints
Event Logging
All SCIM operations are logged withEventSystemUser.SCIM:
From bitwarden_license/src/Scim/Controllers/v2/GroupsController.cs:112:
Event Logging
- User invited/confirmed/removed
- Group created/updated/deleted
- Group membership changes
- Failed authentication attempts
Middleware Pipeline
Frombitwarden_license/src/Scim/Startup.cs:95:
Request Pipeline
Supported Identity Providers
Azure AD
Microsoft Entra ID (Azure Active Directory) provisioning
Okta
Okta Identity Cloud integration
OneLogin
OneLogin directory synchronization
JumpCloud
JumpCloud directory integration
Setup Guide
1
Enable SCIM
Navigate to Organization Settings → SCIM Provisioning
2
Generate API Key
Click “Enable SCIM” to generate organization-specific API key
3
Configure IdP
In your identity provider, add Bitwarden SCIM application:
- Base URL:
https://scim.bitwarden.com/v2/{organizationId} - API Key: Use generated key as bearer token
4
Test Connection
Use IdP’s test connection feature to verify configuration
5
Assign Users**
Assign users and groups in IdP to begin provisioning
Filtering and Pagination
The SCIM service supports standard SCIM query parameters:Filtering
eq- equalsne- not equalssw- starts withew- ends withco- contains
Pagination
startIndex: 1-based index (default: 1)count: Number of results per page (default: 100)
Error Handling
SCIM errors follow RFC 7644 error response format:Error Response
400- Bad Request (invalid SCIM request)401- Unauthorized (invalid API key)404- Not Found (resource doesn’t exist)409- Conflict (duplicate external ID)500- Internal Server Error
Deployment
Environment Variables
Docker
Rate Limiting
SCIM endpoints may be rate-limited to prevent abuse. Implement exponential backoff in IdP sync jobs.
- Full sync: Every 24 hours
- Incremental sync: Every 30-60 minutes
- Real-time updates: As changes occur (with backoff)
Troubleshooting
Common Issues
Debug Logging
Limitations
- Users cannot be created without an email address
- Only organization users are managed (not entire Bitwarden accounts)
- Custom attributes are not supported
- Password management is not supported via SCIM
- Collections are not managed via SCIM
Best Practices
- External IDs: Always set unique
externalIdfor users and groups - Incremental Sync: Use incremental sync to reduce API calls
- Error Handling: Implement proper error handling and retry logic
- Monitoring: Monitor SCIM sync logs in IdP admin console
- Testing: Test with small group before full deployment
Related Services
- SSO Service - SAML/OIDC authentication for provisioned users
- API Service - Organization management
- Identity Service - User authentication