Skip to main content

SCIM 2.0 Provisioning

SCIM 2.0 (System for Cross-domain Identity Management) is an IETF standard for provisioning users and groups over HTTP + JSON. It is defined by RFC 7643 — SCIM Core Schema (which defines the User and Group JSON resources) and RFC 7644 — SCIM Protocol (which defines the GET/POST/PUT/PATCH/DELETE /Users and /Groups HTTP API, plus filter, sort, and pagination). LumoAuth accepts inbound SCIM calls so an upstream IdP (Okta, Azure AD, OneLogin, HR systems) can keep users and groups in sync automatically.


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 organization:

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

Setting Up SCIM

1. Generate a SCIM Token

  1. Go to /orgs/{orgId}/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/orgs/{orgId}/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 Organization 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 /orgs/{orgId}/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 /orgs/{orgId}/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 — defines the User and Group JSON resources
RFC 7644SCIM Protocol — defines the HTTP API, filters, and pagination
RFC 7642SCIM Definitions, Overview, and Concepts