SCIM Attributes Mapping

When receiving user information through SCIM, the data is often organized across multiple schemas. To keep this information consistent, usable, and accessible, Applivery can map specific SCIM attributes into the user’s metadata field.

Understanding SCIM Attribute Storage #

All mappable SCIM fields are automatically stored in an internal object called attributesHistory. This object tracks every attribute received from SCIM, whether or not it is currently mapped to metadata.

SCIM Attributes History #

The attributesHistory object contains all SCIM attributes in the following structure:
				
					type IProviderSCIMAttributesHistory = {
  namespace: string
  key: string
}
				
			

This object is populated automatically with all attributes provided in SCIM requests. Its purpose is to serve as a complete record of any field that can potentially be mapped.

Custom Attribute Mapping #

To map SCIM fields into the user’s metadata, you can define a custom mapping through the mappedAttributes property in the SCIM configuration model.

				
					type IProviderSCIMCustomAttributes = {
  name: string
  attributes?: {
    namespace?: string
    key: string
  }[]
}
				
			

Each mapping entry supports the following fields:

  • Name: The key under which the mapped value will be stored inside the user’s metadata.
  • Attributes: A list of SCIM attributes (optionally specifying their namespace/schema) that will be used to generate this metadata value.

Resolution rules #

When resolving which SCIM value to map into metadata, Applivery follows these rules:

  1. If a namespace is specified, the system searches for the SCIM attribute inside that exact namespace/schema.
  2. If no namespace is defined, the system maps the first matching attribute key found in any schema.
  3. When a SCIM payload includes a value for a mapped custom attribute, Applivery automatically writes it into the user’s metadata:
    • Key: The name defined in the mappedAttributes entry.
    • Value: The resolved SCIM attribute value based on the mapping rules.

Example of a namespace-based mapping #

SCIM payload #

				
					{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User",
    "urn:company:params:scim:schemas:extension:custom:2.0:User"
  ],
  "urn:ietf:params:scim:schemas:core:2.0:User": {
    "userName": "jane.smith"
  },
  "urn:company:params:scim:schemas:extension:custom:2.0:User": {
    "employeeId": "EMP-4567",
    "department": "Engineering"
  }
}
				
			

Custom mapping configuration #

				
					const mappedAttributes = [
  {
    name: "department",
    attributes: [
      {
        namespace: "urn:company:params:scim:schemas:extension:custom:2.0:User",
        key: "department"
      }
    ]
  },
  {
    name: "employeeCode",
    attributes: [
      {
        namespace: "urn:company:params:scim:schemas:extension:custom:2.0:User",
        key: "employeeId"
      }
    ]
  }
]
				
			

Result in user's metadata #

				
					{
  "metadata": {
    "department": "Engineering",
    "employeeCode": "EMP-4567"
  }
}
				
			

Configure attribute mapping on Applivery #

Go to your Workspace > Settings (1) and open the Login providers (2) section. Then click Configure (3) next to the SAML option under the MDM Portal section.

login-providers-settings

Scroll down to Step 3 and enter the appropriate namespace. You can determine the correct namespace based on the attribute type (Core, Enterprise, or Custom) and its value.

attribute-mapping

To save your changes, simply click Save. Once your IdP performs its next scheduled sync, the mapped attributes on both sides will begin populating each user’s metadata in Applivery.

To summarize:

  • SCIM attributes can be mapped to user metadata using mappedAttributes.
  • namespace helps disambiguate attributes when multiple schemas are involved.
  • Any unmapped SCIM attributes are stored in attributesHistory for future reference.
  • This mapping system gives you full control over how user data is stored and leveraged downstream.
Updated on noviembre 25, 2025
¿Te ha sido útil este artículo?

En esta página