SCIM Attributes


A SCIM Resource is a collection of SCIM Attributes identified by one or more SCIM Schemas.

Minimally, an SCIM Attributes consists of the attribute name and at least one simple or complex value, either of which may be multi-valued.

For each SCIM Attributes, a SCIM Schema defines the data type, plurality, mutability, and other distinguishing features of a SCIM Attributes.

SCIM Attributes names are case insensitive and are often "camel-cased" (e.g., "camelCase").

SCIM Resources are represented in JSON RFC 7159 format and MUST specify schema via the "schemas" attribute per Section 3.

Attribute names MUST conform to the following ABNF rules:

ATTRNAME   = ALPHA *(nameChar)
nameChar   = "$" / "-" / "_" / DIGIT / ALPHA

The above rules (and other rules in this specification) use the "Core Rules" from ABNF; see Appendix B of RFC 5234. Unless otherwise specified in this document, all ABNF strings are case insensitive and the character set for these strings is US-ASCII. For example, all attribute names defined by the above rule are case insensitive.

When defining attribute names, it should be noted that the hyphen ("-") is NOT permitted in JavaScript attribute names (or in attribute names for some other languages). While there are no known issues within HTTP protocol and JSON notation, attribute names containing hyphens may need to be escaped when declaring corresponding names of JavaScript attributes.

SCIM Data Types#

SCIM Attribute Types#

SCIM Attributes Characteristics#

All SCIM Attributess have a set of characteristics that describe their type and handling by a SCIM Service Provider; full definitions may be found in Section 7. The characteristics include:
  • required
  • canonicalValues
  • caseExact
  • mutability
  • returned
  • uniqueness
  • referenceTypes

If not otherwise stated in Section 7, SCIM Attributess have the following characteristics:

  • required is "false" (i.e., not REQUIRED),
  • canonicalValues is none assigned (for example, the "type" sub-attribute as described in Section 2.4),
  • caseExact is "false" (i.e., case-insensitive),
  • mutability is "readWrite" (i.e., modifiable),
  • returned is "default" (the attribute value is returned by default),
  • uniqueness is "none" (has no uniqueness enforced), and
  • type is "string" (Section 2.3.1).

Attribute Data Types#

Attribute data types are derived from JSON RFC 7159.

The JSON format defines a limited set of data types; hence, where appropriate, alternate JSON representations derived from XML Schema are defined in RFC 7643 Section 2.3

SCIM extensions SHOULD NOT introduce new data types.

Unassigned and null Values#

Unassigned attributes, the null value, or an empty array (in the case of a multi-valued attribute) SHALL be considered to be equivalent in "state".

Assigning an attribute with the value "null" or an empty array (in the case of multi-valued attributes) has the effect of making the attribute "unassigned".

When a resource is expressed in JSON format, unassigned attributes, although they are defined in schema, MAY be omitted for compactness.

SCIM Resource Example#

SCIM Resource Example is a non-normative example of the SCIM Resource types in JSON format.

More Information#

There might be more information for this subject on one of the following: