Skip to main content

SCIM 2.0 Provisioning

LumoAuth supports SCIM 2.0 (System for Cross-domain Identity Management) for automated user and group provisioning from external identity providers and HR systems.


What is SCIM?

SCIM enables automatic user lifecycle management:

  • Provisioning - Automatically create users when they're added in your IdP (Okta, Azure AD, etc.)
  • Deprovisioning - Automatically disable or delete users when they're removed
  • Sync - Keep user attributes in sync between your IdP and LumoAuth
  • Group sync - Synchronize group memberships

SCIM Endpoints

LumoAuth exposes SCIM 2.0 endpoints per tenant:

EndpointMethodPurpose
/t/{tenantSlug}/api/v1/scim/v2/UsersGETList users
/t/{tenantSlug}/api/v1/scim/v2/UsersPOSTCreate a user
/t/{tenantSlug}/api/v1/scim/v2/Users/{id}GETGet a user
/t/{tenantSlug}/api/v1/scim/v2/Users/{id}PUTReplace a user
/t/{tenantSlug}/api/v1/scim/v2/Users/{id}PATCHUpdate a user
/t/{tenantSlug}/api/v1/scim/v2/Users/{id}DELETEDelete a user
/t/{tenantSlug}/api/v1/scim/v2/GroupsGETList groups
/t/{tenantSlug}/api/v1/scim/v2/GroupsPOSTCreate a group
/t/{tenantSlug}/api/v1/scim/v2/Groups/{id}GETGet a group
/t/{tenantSlug}/api/v1/scim/v2/Groups/{id}PATCHUpdate group membership
/t/{tenantSlug}/api/v1/scim/v2/Groups/{id}DELETEDelete a group
/t/{tenantSlug}/api/v1/scim/v2/ServiceProviderConfigGETSCIM capabilities
/t/{tenantSlug}/api/v1/scim/v2/SchemasGETSupported schemas

Setting Up SCIM

1. Generate a SCIM Token

  1. Go to /t/{tenantSlug}/portal/applications
  2. Create a machine-to-machine application for SCIM
  3. Generate a bearer token for SCIM authentication

2. Configure Your IdP

Provide your IdP with:

SettingValue
SCIM Base URLhttps://your-domain.com/t/{tenantSlug}/api/v1/scim/v2
AuthenticationBearer {scim_token}
Unique IdentifieruserName (email)

Okta SCIM Setup

  1. In Okta, open your LumoAuth application → Provisioning
  2. Click Configure API Integration
  3. Enter the SCIM Base URL and token
  4. Enable: Create Users, Update User Attributes, Deactivate Users

Azure AD SCIM Setup

  1. In Azure AD → Enterprise Applications → Your App → Provisioning
  2. Set Provisioning Mode to Automatic
  3. Enter the Tenant URL (SCIM base URL) and Secret Token
  4. Test connection and start provisioning

User Schema

SCIM user resources map to LumoAuth users:

SCIM AttributeLumoAuth Field
userNameEmail
name.givenNameFirst name
name.familyNameLast name
emails[0].valueEmail
phoneNumbers[0].valuePhone
activeAccount active status
externalIdExternal IdP identifier

Create User Request

POST /t/{tenantSlug}/api/v1/scim/v2/Users

{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "alice@acme.com",
"name": {
"givenName": "Alice",
"familyName": "Smith"
},
"emails": [
{
"value": "alice@acme.com",
"primary": true
}
],
"active": true,
"externalId": "okta-user-id-123"
}

Group Provisioning

SCIM groups map to LumoAuth groups:

POST /t/{tenantSlug}/api/v1/scim/v2/Groups

{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"displayName": "Engineering",
"members": [
{"value": "user-uuid-1"},
{"value": "user-uuid-2"}
]
}

Supported RFCs

RFCDescription
RFC 7643SCIM Core Schema
RFC 7644SCIM Protocol
RFC 7642SCIM Definitions, Overview, Concepts