SCIM create operation customization

Last modified 06 May 2026 07:27 +02:00

SCIM 2.0 create operations use HTTP POST to create new resources.

This document is part of the SCIM 2.0 connector tutorial. See Introduction to SCIMREST framework for other topics.

Basic Create

To support create operation you do not need to specify anything for well-behaved SCIM 2.0 servers.

For the servers which are not well-behaved or have implementation limitations, you may need to customize create operation.

objectClass("User") {
    create {
        scim {
            supportedAttributes "externalId", "displayName", "nickName"
        }
    }
}

The framework automatically:

  • Uses POST to the resource endpoint

  • Serializes creatable attributes to JSON

  • Handles the response to extract the created object

  • Parses the id from response as Uid

Supported attributes

Specify which attributes can be used in create:

scim {
    supportedAttributes "externalId", "displayName", "nickName"
}

All creatable attributes from schema are supported by default.

Attribute-specific configuration

Configure specific attributes with supportedAttribute:

scim {
    supportedAttribute("userName") {
        // userName can only be set during create (immutable after)
    }

    supportedAttribute("active") {
        // active attribute is not creatable
        // Will be set after create via update
    }
}

Complete create example (AWS style)

objectClass("User") {
    create {
        scim {
            supportedAttributes "externalId", "displayName", "nickName",
                "profileUrl", "title", "userType", "preferredLanguage",
                "locale", "timezone", "name", "emails", "addresses", "phoneNumbers"
        }
    }
}

Post-create updates

If an attribute is updateable but not creatable, the framework issues a follow-up update after create, when updatable attributes are present in create operation:

objectClass("User") {
    create {
        scim {
            supportedAttributes "userName"
        }
    }

    update {
        scim {
            put {
                supportedAttributes "active"
            }
        }
    }
}

The active attribute will be set after creation.

Was this page helpful?
YES NO
Thanks for your feedback