draft-ietf-scim-core-schema-01.txt   draft-ietf-scim-core-schema-02.txt 
Network Working Group C. Mortimore, Ed. Network Working Group C. Mortimore, Ed.
Internet-Draft Salesforce Internet-Draft Salesforce
Intended status: Standards Track P. Harding Intended status: Standards Track P. Harding
Expires: October 17, 2013 P. Madsen Expires: March 03, 2014 P. Madsen
Ping Ping
T. Drake T. Drake
UnboundID UnboundID
April 15, 2013 August 30, 2013
System for Cross-Domain Identity Management: Core Schema System for Cross-Domain Identity Management: Core Schema
draft-ietf-scim-core-schema-01 draft-ietf-scim-core-schema-02
Abstract Abstract
The System for Cross-Domain Identity Management (SCIM) specification The System for Cross-Domain Identity Management (SCIM) specification
is designed to make managing user identity in cloud based is designed to make managing user identity in cloud based
applications and services easier. The specification suite builds applications and services easier. The specification suite builds
upon experience with existing schemas and deployments, placing upon experience with existing schemas and deployments, placing
specific emphasis on simplicity of development and integration, while specific emphasis on simplicity of development and integration, while
applying existing authentication, authorization, and privacy models. applying existing authentication, authorization, and privacy models.
Its intent is to reduce the cost and complexity of user management Its intent is to reduce the cost and complexity of user management
skipping to change at page 1, line 35 skipping to change at page 1, line 35
well as binding documents to provide patterns for exchanging this well as binding documents to provide patterns for exchanging this
schema using standard protocols. In essence, make it fast, cheap, schema using standard protocols. In essence, make it fast, cheap,
and easy to move identity in to, out of, and around the cloud. and easy to move identity in to, out of, and around the cloud.
This document provides a platform neutral schema and extension model This document provides a platform neutral schema and extension model
for representing users and groups in JSON format. This schema is for representing users and groups in JSON format. This schema is
intended for exchange and use with cloud service providers. intended for exchange and use with cloud service providers.
Additional binding documents provide a standard REST API, SAML Additional binding documents provide a standard REST API, SAML
binding, and use cases. binding, and use cases.
Status of this Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 17, 2013. This Internet-Draft will expire on March 03, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Requirements Notation and Conventions . . . . . . . . . . . . 4 1. Requirements Notation and Conventions . . . . . . . . . . . . 3
2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4
3. SCIM Schema Structure . . . . . . . . . . . . . . . . . . . . 5 3. SCIM Schema Structure . . . . . . . . . . . . . . . . . . . . 4
3.1. Attribute Data Types . . . . . . . . . . . . . . . . . . . 5 3.1. Attribute Data Types . . . . . . . . . . . . . . . . . . 5
3.1.1. String . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.1. String . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.2. Boolean . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.3. Decimal . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.3. Decimal . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.4. Integer . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.4. Integer . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.5. DateTime . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.5. DateTime . . . . . . . . . . . . . . . . . . . . . . 6
3.1.6. Binary . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.6. Binary . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.7. Reference . . . . . . . . . . . . . . . . . . . . . . 7 3.1.7. Reference . . . . . . . . . . . . . . . . . . . . . . 6
3.1.8. Complex . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.8. Complex . . . . . . . . . . . . . . . . . . . . . . . 6
3.2. Multi-valued Attributes . . . . . . . . . . . . . . . . . 7 3.2. Multi-valued Attributes . . . . . . . . . . . . . . . . . 6
4. Schema Extension Model . . . . . . . . . . . . . . . . . . . . 8 4. Schema Extension Model . . . . . . . . . . . . . . . . . . . 8
5. SCIM Core Schema . . . . . . . . . . . . . . . . . . . . . . . 9 5. SCIM Core Schema . . . . . . . . . . . . . . . . . . . . . . 8
5.1. Common Schema Attributes . . . . . . . . . . . . . . . . . 9 5.1. Common Schema Attributes . . . . . . . . . . . . . . . . 8
5.2. "schemas" Attribute . . . . . . . . . . . . . . . . . . . 10 5.2. "schemas" Attribute . . . . . . . . . . . . . . . . . . . 9
6. SCIM User Schema . . . . . . . . . . . . . . . . . . . . . . . 10 6. SCIM User Schema . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Singular Attributes . . . . . . . . . . . . . . . . . . . 10 6.1. Singular Attributes . . . . . . . . . . . . . . . . . . . 10
6.2. Multi-valued Attributes . . . . . . . . . . . . . . . . . 12 6.2. Multi-valued Attributes . . . . . . . . . . . . . . . . . 12
7. SCIM Enterprise User Schema Extension . . . . . . . . . . . . 15 7. SCIM Enterprise User Schema Extension . . . . . . . . . . . . 14
8. SCIM Group Schema . . . . . . . . . . . . . . . . . . . . . . 15 8. SCIM Group Schema . . . . . . . . . . . . . . . . . . . . . . 15
9. Service Provider Configuration Schema . . . . . . . . . . . . 16 9. Service Provider Configuration Schema . . . . . . . . . . . . 15
10. Resource Schema . . . . . . . . . . . . . . . . . . . . . . . 18 10. Resource Type Schema . . . . . . . . . . . . . . . . . . . . 17
11. JSON Representation . . . . . . . . . . . . . . . . . . . . . 20 11. Schema Schema . . . . . . . . . . . . . . . . . . . . . . . . 18
11.1. Minimal User Representation . . . . . . . . . . . . . . . 20 12. JSON Representation . . . . . . . . . . . . . . . . . . . . . 20
11.2. Full User Representation . . . . . . . . . . . . . . . . . 20 12.1. Minimal User Representation . . . . . . . . . . . . . . 20
11.3. Enterprise User Extension Representation . . . . . . . . . 23 12.2. Full User Representation . . . . . . . . . . . . . . . . 20
11.4. Group Representation . . . . . . . . . . . . . . . . . . . 26 12.3. Enterprise User Extension Representation . . . . . . . . 23
11.5. Service Provider Configuration Representation . . . . . . 27 12.4. Group Representation . . . . . . . . . . . . . . . . . . 26
11.6. Resource Schema Representation . . . . . . . . . . . . . . 28 12.5. Service Provider Configuration Representation . . . . . 27
12. Security Considerations . . . . . . . . . . . . . . . . . . . 32 12.6. Resource Type Representation . . . . . . . . . . . . . . 28
13. Normative References . . . . . . . . . . . . . . . . . . . . . 32 12.7. Schema Representation . . . . . . . . . . . . . . . . . 29
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 33 13. Security Considerations . . . . . . . . . . . . . . . . . . . 33
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 33 14. Normative References . . . . . . . . . . . . . . . . . . . . 33
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 34
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34
1. Requirements Notation and Conventions 1. Requirements Notation and Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119] . document are to be interpreted as described in [RFC2119] .
Throughout this document, values are quoted to indicate that they are Throughout this document, values are quoted to indicate that they are
to be taken literally. When using these values in protocol messages, to be taken literally. When using these values in protocol messages,
the quotes MUST NOT be used as part of the value. the quotes MUST NOT be used as part of the value.
skipping to change at page 5, line 11 skipping to change at page 4, line 16
Service Provider: A web application that provides identity Service Provider: A web application that provides identity
information via the SCIM protocol. information via the SCIM protocol.
Consumer: A website or application that uses the SCIM protocol to Consumer: A website or application that uses the SCIM protocol to
manage identity data maintained by the Service Provider. manage identity data maintained by the Service Provider.
Resource: The Service Provider managed artifact containing one or Resource: The Service Provider managed artifact containing one or
more attributes; e.g., User or Group more attributes; e.g., User or Group
Resource Type: A type of a Resource that is managed by a Service
Provider. The Resource Type defines the Resource name, endpoint
URL, Schemas, and other meta-data which indicate where a Resource
is managed and how it is composed; e.g., User or Group.
Schema: A collection of Attribute Definitions that describe the
contents of an entire or partial Resource; e.g.,
urn:scim:schemas:core:User:2.0.
Singular Attribute: A Resource attribute that contains 0..1 values; Singular Attribute: A Resource attribute that contains 0..1 values;
e.g., displayName. e.g., displayName.
Multi-valued Attribute: A Resource attribute that contains 0..n Multi-valued Attribute: A Resource attribute that contains 0..n
values; e.g., emails. values; e.g., emails.
Simple Attribute: A Singular or Multi-valued Attribute whose value Simple Attribute: A Singular or Multi-valued Attribute whose value
is a primitive; e.g., String. is a primitive; e.g., String.
Complex Attribute: A Singular or Multi-valued Attribute whose value Complex Attribute: A Singular or Multi-valued Attribute whose value
skipping to change at page 6, line 12 skipping to change at page 5, line 25
Attribute data types are derived from JSON [2] and unless otherwise Attribute data types are derived from JSON [2] and unless otherwise
specified are optional, modifiable by Consumers, and of type String specified are optional, modifiable by Consumers, and of type String
(Section 3.1.1). The JSON format defines a limited set of data (Section 3.1.1). The JSON format defines a limited set of data
types, hence, where appropriate, alternate JSON representations types, hence, where appropriate, alternate JSON representations
derived from XML schema [3] are defined below. SCIM extensions derived from XML schema [3] are defined below. SCIM extensions
SHOULD not introduce new data types. SHOULD not introduce new data types.
3.1.1. String 3.1.1. String
A sequence of zero or more Unicode characters. The JSON format is A sequence of zero or more Unicode characters. The JSON format is
defined in section 2.5 of RFC 4627. A String attribute MAY specify a defined in section 2.5 [4] of RFC 4627. A String attribute MAY
required data format. Additionally, when Canonical Values are specify a required data format. Additionally, when Canonical Values
specified Service Providers SHOULD conform to those values if are specified Service Providers SHOULD conform to those values if
appropriate, but MAY provide alternate String values to represent appropriate, but MAY provide alternate String values to represent
additional values. additional values.
3.1.2. Boolean 3.1.2. Boolean
The literal "true" or "false". The JSON format is defined in section The literal "true" or "false". The JSON format is defined in section
2.1 of RFC 4627. 2.1 [5] of RFC 4627.
3.1.3. Decimal 3.1.3. Decimal
A real number with at least one digit to the left and right of the A real number with at least one digit to the left and right of the
period. The JSON format is defined in section 2.4 of RFC 4627. period. The JSON format is defined in section 2.4 [6] of RFC 4627.
3.1.4. Integer 3.1.4. Integer
A Decimal number with no fractional digits. The JSON format is A Decimal number with no fractional digits. The JSON format is
defined in section 2.4 of RFC 4627 with the additional constraint defined in section 2.4 [7] of RFC 4627 with the additional constraint
that the value MUST NOT contain fractionial or exponent parts. that the value MUST NOT contain fractionial or exponent parts.
3.1.5. DateTime 3.1.5. DateTime
A DateTime value (e.g. 2008-01-23T04:56:22Z). The attribute value A DateTime value (e.g. 2008-01-23T04:56:22Z). The attribute value
MUST be encoded as a valid xsd:dateTime as specified in section 3.2.7 MUST be encoded as a valid xsd:dateTime as specified in section 3.2.7
of the XML Schema Datatypes Specification. [8] of the XML Schema Datatypes Specification.
Values represented in JSON MUST conform to the XML constraints above Values represented in JSON MUST conform to the XML constraints above
and are represented as a JSON String. and are represented as a JSON String [9].
3.1.6. Binary 3.1.6. Binary
Arbitrary binary data. The attribute value MUST be encoded as a Arbitrary binary data. The attribute value MUST be encoded as a
valid xsd:base64Binary as specified in section 3.2.16 of the XML valid xsd:base64Binary as specified in section 3.2.16 [10] of the XML
Schema Datatypes Specification. Schema Datatypes Specification.
Values represented in JSON MUST conform to the XML constraints above Values represented in JSON MUST conform to the XML constraints above
and are represented as a JSON String. and are represented as a JSON String [11].
3.1.7. Reference 3.1.7. Reference
A reference to a SCIM Resource. The value MUST be the absolute or A reference to a SCIM Resource. The value MUST be the absolute or
relative URI of the target Resource. Relative URIs should be relative URI of the target Resource. Relative URIs should be
resolved as specified in section 5.2 of RFC 3986. The base URI for resolved as specified in section 5.2 [12] of RFC 3986. The base URI
relative URI resolution MUST include all URI components and path for relative URI resolution MUST include all URI components and path
segments up to but not including the Endpoint URI; e.g., the base URI segments up to but not including the Endpoint URI; e.g., the base URI
for a request to for a request to https://example.com/v1/Users/2819c223-7f76-453a-
https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646 919d-413861904646 would be https://example.com/v1/ and the relative
would be https://example.com/v1/ and the relative URI for this URI for this Resource would be Users/2819c223-7f76-453a-
Resource would be Users/2819c223-7f76-453a-919d-413861904646. 919d-413861904646.
Performing a GET operation on a reference URI MUST return the target Performing a GET operation on a reference URI MUST return the target
Resource or an appropriate HTTP response code. The Service Provider Resource or an appropriate HTTP response code. The Service Provider
MAY optionally choose to enforce referential integrity for MAY optionally choose to enforce referential integrity for
references. references.
By convention, a reference is commonly represented as a "$ref" sub- By convention, a reference is commonly represented as a "$ref" sub-
attribute in complex or multi-valued attributes, however this is attribute in complex or multi-valued attributes, however this is
OPTIONAL. OPTIONAL.
3.1.8. Complex 3.1.8. Complex
A Singular or Multi-valued Attribute whose value is a composition of A Singular or Multi-valued Attribute whose value is a composition of
one or more Simple Attributes. The JSON format is defined in section one or more Simple Attributes. The JSON format is defined in section
2.2 of RFC 4627. 2.2 [13] of RFC 4627.
3.2. Multi-valued Attributes 3.2. Multi-valued Attributes
Multi-valued attributes are unordered lists of attributes. Each Multi-valued attributes are unordered lists of attributes. Each
attribute MAY contain Sub-Attributes and therefore multi-valued attribute MAY contain Sub-Attributes and therefore multi-valued
attributes may contain Complex Attributes. The below Sub-Attributes attributes may contain Complex Attributes. The below Sub-Attributes
are considered normative and when specified SHOULD be used as are considered normative and when specified SHOULD be used as
defined. defined.
type A label indicating the attribute's function; e.g., "work" or type A label indicating the attribute's function; e.g., "work" or
"home". "home".
primary A Boolean value indicating the 'primary' or preferred primary A Boolean value indicating the 'primary' or preferred
skipping to change at page 8, line 14 skipping to change at page 7, line 30
operation The operation to perform on the multi-valued attribute operation The operation to perform on the multi-valued attribute
during a PATCH request. The only valid value is "delete", which during a PATCH request. The only valid value is "delete", which
signifies that this instance should be removed from the Resource. signifies that this instance should be removed from the Resource.
value The attribute's significant value; e.g., the e-mail address, value The attribute's significant value; e.g., the e-mail address,
phone number, etc. Attributes that define a "value" sub-attribute phone number, etc. Attributes that define a "value" sub-attribute
MAY be alternately represented as a collection of primitive types. MAY be alternately represented as a collection of primitive types.
For example: For example:
{ {
"emails": [ "emails": [
{"value":"bjensen@example.com"}, {"value":"bjensen@example.com"},
{"value":"babs@example.com"} {"value":"babs@example.com"}
] ]
} }
May also be represented as: May also be represented as:
{ {
"emails": ["bjensen@example.com","babs@example.com"] "emails": ["bjensen@example.com","babs@example.com"]
} }
$ref The Reference of the target Resource, if the attribute is a $ref The Reference of the target Resource, if the attribute is a
reference. reference.
skipping to change at page 8, line 43 skipping to change at page 8, line 14
once with different types (e.g. the same e-mail address may used for once with different types (e.g. the same e-mail address may used for
work and home), but SHOULD NOT return the same (type, value) work and home), but SHOULD NOT return the same (type, value)
combination more than once per Attribute, as this complicates combination more than once per Attribute, as this complicates
processing by the Consumer. processing by the Consumer.
4. Schema Extension Model 4. Schema Extension Model
SCIM schema follows an object extension model similar to SCIM schema follows an object extension model similar to
ObjectClasses used in LDAP. Unlike LDAP there is no inheritance ObjectClasses used in LDAP. Unlike LDAP there is no inheritance
model; all extensions are additive (similar to LDAP Auxiliary Object model; all extensions are additive (similar to LDAP Auxiliary Object
Classes [4]). Each value indicates additive schema that may exist in Classes [14]). Each value indicates additive schema that may exist
a SCIM representation as specified by extensions not defined in this in a SCIM representation as specified by extensions not defined in
suite. Schema extensions MUST NOT redefine any attributes defined in this suite. Schema extensions MUST NOT redefine any attributes
this specification and SHOULD follow conventions defined in this defined in this specification and SHOULD follow conventions defined
specification. Each schema extension must identify a URI used to in this specification. Each schema extension must identify a URI
identify the extension. The JSON format MUST use the "schemas" used to identify the extension. The JSON format MUST use the
attribute (Section 5.2) to distinguish extended resources and "schemas" attribute (Section 5.2) to distinguish extended resources
attributes. and attributes.
5. SCIM Core Schema 5. SCIM Core Schema
5.1. Common Schema Attributes 5.1. Common Schema Attributes
Each SCIM Resource (Users, Groups, etc.) includes the below common Each SCIM Resource (Users, Groups, etc.) includes the below common
attributes. These attributes MUST be included in all Resources, attributes. These attributes MUST be included in all Resources,
including any extended Resource types. It is not necessary to including any extended Resource types. It is not necessary to
specify the schemas attribute if the Resource is fully defined in specify the schemas attribute if the Resource is fully defined in
this document as the core schema is implicitly included. this document as the core schema is implicitly included.
id Unique identifier for the SCIM Resource as defined by the Service id Unique identifier for the SCIM Resource as defined by the Service
Provider. Each representation of the Resource MUST include a non- Provider. Each representation of the Resource MUST include a non-
empty id value. This identifier MUST be unique across the Service empty id value. This identifier MUST be unique across the Service
Provider's entire set of Resources. It MUST be a stable, non- Provider's entire set of Resources. It MUST be a stable, non-
reassignable identifier that does not change when the same reassignable identifier that does not change when the same
Resource is returned in subsequent requests. The value of the id Resource is returned in subsequent requests. The value of the id
attribute is always issued by the Service Provider and MUST never attribute is always issued by the Service Provider and MUST never
be specified by the Service Consumer. bulkId: is a reserved be specified by the Service Consumer. bulkId: is a reserved
keyword and MUST NOT be used in the unique identifier. REQUIRED keyword and MUST NOT be used in the unique identifier. REQUIRED
and READ-ONLY. and READ-ONLY.
externalId An identifier for the Resource as defined by the Service externalId An identifier for the Resource as defined by the Service
Consumer. The externalId may simplify identification of the Consumer. The externalId may simplify identification of the
Resource between Service Consumer and Service provider by allowing Resource between Service Consumer and Service provider by allowing
the Consumer to refer to the Resource with its own identifier, the Consumer to refer to the Resource with its own identifier,
obviating the need to store a local mapping between the local obviating the need to store a local mapping between the local
identifier of the Resource and the identifier used by the Service identifier of the Resource and the identifier used by the Service
Provider. Each Resource MAY include a non-empty externalId value. Provider. Each Resource MAY include a non-empty externalId value.
The value of the externalId attribute is always issued be the The value of the externalId attribute is always issued be the
Service Consumer and can never be specified by the Service Service Consumer and can never be specified by the Service
Provider. The Service Provider MUST always interpret the Provider. The Service Provider MUST always interpret the
externalId as scoped to the Service Consumer's tenant. externalId as scoped to the Service Consumer's tenant.
meta A complex attribute containing resource metadata. All sub- meta A complex attribute containing resource metadata. All sub-
attributes are OPTIONAL attributes are OPTIONAL
resourceType The name of the Resource Type of the Resource.
READ-ONLY.
created The DateTime the Resource was added to the Service created The DateTime the Resource was added to the Service
Provider. The attribute MUST be a DateTime. READ-ONLY. Provider. The attribute MUST be a DateTime. READ-ONLY.
lastModified The most recent DateTime the details of this lastModified The most recent DateTime the details of this
Resource were updated at the Service Provider. If this Resource were updated at the Service Provider. If this
Resource has never been modified since its initial creation, Resource has never been modified since its initial creation,
the value MUST be the same as the value of created. The the value MUST be the same as the value of created. The
attribute MUST be a DateTime. READ-ONLY. attribute MUST be a DateTime. READ-ONLY.
location The URI of the Resource being returned. This value MUST location The URI of the Resource being returned. This value MUST
be the same as the Location HTTP response header. READ-ONLY. be the same as the Location HTTP response header. READ-
ONLY.
version The version of the Resource being returned. This value version The version of the Resource being returned. This value
must be the same as the ETag HTTP response header. READ-ONLY. must be the same as the ETag HTTP response header. READ-
ONLY.
attributes The names of the attributes to remove from the attributes The names of the attributes to remove from the
Resource during a PATCH operation. Resource during a PATCH operation.
5.2. "schemas" Attribute 5.2. "schemas" Attribute
SCIM supports resources of different types, with extensible schemas. SCIM supports resources of different types, with extensible schemas.
Each resource MUST be indicated using fully qualified URLs. Each resource MUST be indicated using fully qualified URLs.
When a representation does not explicitly provide support for When a representation does not explicitly provide support for
indicating a schema, such as JSON, a schemas attribute is used to indicating a schema, such as JSON, a schemas attribute is used to
indicate the version of SCIM schema as well as any schema extensions. indicate the version of SCIM schema as well as any schema extensions.
schemas The schemas attribute is an array of Strings which allows schemas The schemas attribute is an array of Strings which allows
introspection of the supported schema version for a SCIM introspection of the supported schema version for a SCIM
representation as well any schema extensions supported by that representation as well any schema extensions supported by that
representation. Each String value must be a unique URI. This representation. Each String value must be a unique URI. This
specification defines URIs for User, Group, and a standard specification defines URIs for User, Group, and a standard
"enterprise" extension. All representations of SCIM schema MUST "enterprise" extension. All representations of SCIM schema MUST
include a non-zero value array with value(s) of the URIs supported include a non-zero value array with value(s) of the URIs supported
by that representation. Duplicate values MUST NOT be included. by that representation. The schemas attribute for a Resource MUST
Value order is not specified and MUST not impact behavior. only contain values defined as "schema" and "schemaExtensions" for
REQUIRED. the Resource's Resource Type. Duplicate values MUST NOT be
included. Value order is not specified and MUST not impact
behavior. REQUIRED.
6. SCIM User Schema 6. SCIM User Schema
SCIM provides a schema for representing Users, identified using the SCIM provides a schema for representing Users, identified using the
following URI: 'urn:scim:schemas:core:1.0'. The following attributes following URI: 'urn:scim:schemas:core:2.0:User'. The following
are defined in addition to those attributes defined in SCIM Core attributes are defined in addition to those attributes defined in
Schema: SCIM Core Schema:
6.1. Singular Attributes 6.1. Singular Attributes
userName Unique identifier for the User, typically used by the user userName Unique identifier for the User, typically used by the user
to directly authenticate to the service provider. Often displayed to directly authenticate to the service provider. Often displayed
to the user as their unique identifier within the system (as to the user as their unique identifier within the system (as
opposed to id or externalId, which are generally opaque and not opposed to id or externalId, which are generally opaque and not
user-friendly identifiers). Each User MUST include a non-empty user-friendly identifiers). Each User MUST include a non-empty
userName value. This identifier MUST be unique across the Service userName value. This identifier MUST be unique across the Service
Consumer's entire set of Users. REQUIRED. Consumer's entire set of Users. REQUIRED.
name The components of the User's real name. Providers MAY return name The components of the User's real name. Providers MAY return
just the full name as a single string in the formatted sub- just the full name as a single string in the formatted sub-
attribute, or they MAY return just the individual component attribute, or they MAY return just the individual component
attributes using the other sub-attributes, or they MAY return attributes using the other sub-attributes, or they MAY return
both. If both variants are returned, they SHOULD be describing both. If both variants are returned, they SHOULD be describing
the same name, with the formatted name indicating how the the same name, with the formatted name indicating how the
component attributes should be combined. component attributes should be combined.
formatted The full name, including all middle names, titles, and formatted The full name, including all middle names, titles, and
suffixes as appropriate, formatted for display (e.g. Ms. suffixes as appropriate, formatted for display (e.g. Ms.
Barbara Jane Jensen, III.). Barbara Jane Jensen, III.).
familyName The family name of the User, or "Last Name" in most familyName The family name of the User, or "Last Name" in most
Western languages (e.g. Jensen given the full name Ms. Barbara Western languages (e.g. Jensen given the full name Ms.
Jane Jensen, III.). Barbara Jane Jensen, III.).
givenName The given name of the User, or "First Name" in most givenName The given name of the User, or "First Name" in most
Western languages (e.g. Barbara given the full name Ms. Western languages (e.g. Barbara given the full name Ms.
Barbara Jane Jensen, III.). Barbara Jane Jensen, III.).
middleName The middle name(s) of the User (e.g. Jane given the middleName The middle name(s) of the User (e.g. Jane given the
full name Ms. Barbara Jane Jensen, III.). full name Ms. Barbara Jane Jensen, III.).
honorificPrefix The honorific prefix(es) of the User, or "Title" honorificPrefix The honorific prefix(es) of the User, or "Title"
in most Western languages (e.g. Ms. given the full name Ms. in most Western languages (e.g. Ms. given the full name Ms.
Barbara Jane Jensen, III.). Barbara Jane Jensen, III.).
honorificSuffix The honorific suffix(es) of the User, or "Suffix" honorificSuffix The honorific suffix(es) of the User, or "Suffix"
in most Western languages (e.g. III. given the full name Ms. in most Western languages (e.g. III. given the full name Ms.
Barbara Jane Jensen, III.). Barbara Jane Jensen, III.).
displayName The name of the User, suitable for display to end-users. displayName The name of the User, suitable for display to end-users.
Each User returned MAY include a non-empty displayName value. The Each User returned MAY include a non-empty displayName value. The
name SHOULD be the full name of the User being described if known name SHOULD be the full name of the User being described if known
(e.g. Babs Jensen or Ms. Barbara J Jensen, III), but MAY be a (e.g. Babs Jensen or Ms. Barbara J Jensen, III), but MAY be a
username or handle, if that is all that is available (e.g. username or handle, if that is all that is available (e.g.
bjensen). The value provided SHOULD be the primary textual label bjensen). The value provided SHOULD be the primary textual label
by which this User is normally displayed by the Service Provider by which this User is normally displayed by the Service Provider
when presenting it to end-users. when presenting it to end-users.
nickName The casual way to address the user in real life, e.g. nickName The casual way to address the user in real life, e.g. "Bob"
"Bob" or "Bobby" instead of "Robert". This attribute SHOULD NOT or "Bobby" instead of "Robert". This attribute SHOULD NOT be used
be used to represent a User's username (e.g. bjensen or to represent a User's username (e.g. bjensen or mpepperidge).
mpepperidge).
profileUrl A fully qualified URL to a page representing the User's profileUrl A fully qualified URL to a page representing the User's
online profile. online profile.
title The user's title, such as "Vice President." title The user's title, such as "Vice President."
userType Used to identify the organization to user relationship. userType Used to identify the organization to user relationship.
Typical values used might be "Contractor", "Employee", "Intern", Typical values used might be "Contractor", "Employee", "Intern",
"Temp", "External", and "Unknown" but any value may be used. "Temp", "External", and "Unknown" but any value may be used.
preferredLanguage Indicates the User's preferred written or spoken preferredLanguage Indicates the User's preferred written or spoken
language. Generally used for selecting a localized User language. Generally used for selecting a localized User
interface. Valid values are concatenation of the ISO 639-1 two interface. Valid values are concatenation of the ISO 639-1 two
letter language code [5], an underscore, and the ISO 3166-1 2 letter language code [15], an underscore, and the ISO 3166-1 2
letter country code [6]; e.g., 'en_US' specifies the language letter country code [16]; e.g., 'en_US' specifies the language
English and country US. English and country US.
locale Used to indicate the User's default location for purposes of locale Used to indicate the User's default location for purposes of
localizing items such as currency, date time format, numerical localizing items such as currency, date time format, numerical
representations, etc. A locale value is a concatenation of the representations, etc. A locale value is a concatenation of the
ISO 639-1 two letter language code [5], an underscore, and the ISO ISO 639-1 two letter language code [17], an underscore, and the
3166-1 2 letter country code [6]; e.g., 'en_US' specifies the ISO 3166-1 2 letter country code [18]; e.g., 'en_US' specifies the
language English and country US. language English and country US.
timezone The User's time zone in the "Olson" timezone database timezone The User's time zone in the "Olson" timezone database
format [7]; e.g.,'America/Los_Angeles'. format [19]; e.g.,'America/Los_Angeles'.
active A Boolean value indicating the User's administrative status. active A Boolean value indicating the User's administrative status.
The definitive meaning of this attribute is determined by the The definitive meaning of this attribute is determined by the
Service Provider though a value of true infers the User is, for Service Provider though a value of true infers the User is, for
example, able to login while a value of false implies the User's example, able to login while a value of false implies the User's
account has been suspended. account has been suspended.
password The User's clear text password. This attribute is intended password The User's clear text password. This attribute is intended
to be used as a means to specify an initial password when creating to be used as a means to specify an initial password when creating
a new User or to reset an existing User's password. No accepted a new User or to reset an existing User's password. No accepted
standards exist to convey password policies, hence Consumers standards exist to convey password policies, hence Consumers
should expect Service Providers to reject password values. This should expect Service Providers to reject password values. This
value MUST never be returned by a Service Provider in any form. value MUST never be returned by a Service Provider in any form.
6.2. Multi-valued Attributes 6.2. Multi-valued Attributes
The following multi-valued attributes are defined. The following multi-valued attributes are defined.
emails E-mail addresses for the User. The value SHOULD be emails E-mail addresses for the User. The value SHOULD be
canonicalized by the Service Provider, e.g. bjensen@example.com canonicalized by the Service Provider, e.g. bjensen@example.com
instead of bjensen@EXAMPLE.COM. Canonical Type values of work, instead of bjensen@EXAMPLE.COM. Canonical Type values of work,
home, and other. home, and other.
phoneNumbers Phone numbers for the User. The value SHOULD be phoneNumbers Phone numbers for the User. The value SHOULD be
canonicalized by the Service Provider according to format in canonicalized by the Service Provider according to format in
RFC3966 [8] e.g. 'tel:+1-201-555-0123'. Canonical Type values of RFC3966 [20] e.g. 'tel:+1-201-555-0123'. Canonical Type values of
work, home, mobile, fax, pager and other. work, home, mobile, fax, pager and other.
ims Instant messaging address for the User. No official ims Instant messaging address for the User. No official
canonicalization rules exist for all instant messaging addresses, canonicalization rules exist for all instant messaging addresses,
but Service Providers SHOULD, when appropriate, remove all but Service Providers SHOULD, when appropriate, remove all
whitespace and convert the address to lowercase. Instead of the whitespace and convert the address to lowercase. Instead of the
standard Canonical Values for type, this attribute defines the standard Canonical Values for type, this attribute defines the
following Canonical Values to represent currently popular IM following Canonical Values to represent currently popular IM
services: aim, gtalk, icq, xmpp, msn, skype, qq, and yahoo. services: aim, gtalk, icq, xmpp, msn, skype, qq, and yahoo.
skipping to change at page 13, line 37 skipping to change at page 13, line 6
Canonical Values for type, this attribute defines the following Canonical Values for type, this attribute defines the following
Canonical Values to represent popular photo sizes: photo, Canonical Values to represent popular photo sizes: photo,
thumbnail. thumbnail.
addresses A physical mailing address for this User. Canonical Type addresses A physical mailing address for this User. Canonical Type
Values of work, home, and other. The value attribute is a complex Values of work, home, and other. The value attribute is a complex
type with the following sub-attributes. All Sub-Attributes are type with the following sub-attributes. All Sub-Attributes are
OPTIONAL. OPTIONAL.
formatted The full mailing address, formatted for display or use formatted The full mailing address, formatted for display or use
with a mailing label. This attribute MAY contain newlines. with a mailing label. This attribute MAY contain newlines.
streetAddress The full street address component, which may streetAddress The full street address component, which may
include house number, street name, P.O. box, and multi-line include house number, street name, P.O. box, and multi-line
extended street address information. This attribute MAY extended street address information. This attribute MAY
contain newlines. contain newlines.
locality The city or locality component. locality The city or locality component.
region The state or region component. region The state or region component.
postalCode The zipcode or postal code component. postalCode The zipcode or postal code component.
country The country name component. When specified the value country The country name component. When specified the value
MUST be in ISO 3166-1 alpha 2 "short" code format [6]; e.g., MUST be in ISO 3166-1 alpha 2 "short" code format [21];
the United States and Sweden are "US" and "SE", respectively. e.g., the United States and Sweden are "US" and "SE",
respectively.
groups A list of groups that the user belongs to, either thorough groups A list of groups that the user belongs to, either thorough
direct membership, nested groups, or dynamically calculated. The direct membership, nested groups, or dynamically calculated. The
values are meant to enable expression of common group or role values are meant to enable expression of common group or role
based access control models, although no explicit authorization based access control models, although no explicit authorization
model is defined. It is intended that the semantics of group model is defined. It is intended that the semantics of group
membership and any behavior or authorization granted as a result membership and any behavior or authorization granted as a result
of membership are defined by the Service Provider. The Canonical of membership are defined by the Service Provider. The Canonical
types "direct" and "indirect" are defined to describe how the types "direct" and "indirect" are defined to describe how the
group membership was derived. Direct group membership indicates group membership was derived. Direct group membership indicates
skipping to change at page 15, line 10 skipping to change at page 14, line 29
x509Certificates A list of certificates issued to the User. Values x509Certificates A list of certificates issued to the User. Values
are Binary (Section 3.1.6) and DER encoded x509. This value has are Binary (Section 3.1.6) and DER encoded x509. This value has
NO canonical types. NO canonical types.
7. SCIM Enterprise User Schema Extension 7. SCIM Enterprise User Schema Extension
The following SCIM extension defines attributes commonly used in The following SCIM extension defines attributes commonly used in
representing users that belong to, or act on behalf of a business or representing users that belong to, or act on behalf of a business or
enterprise. The enterprise user extension is identified using the enterprise. The enterprise user extension is identified using the
following URI: 'urn:scim:schemas:extension:enterprise:1.0'. following URI: 'urn:scim:schemas:extension:enterprise:2.0:User'.
The following Singular Attributes are defined: The following Singular Attributes are defined:
employeeNumber Numeric or alphanumeric identifier assigned to a employeeNumber Numeric or alphanumeric identifier assigned to a
person, typically based on order of hire or association with an person, typically based on order of hire or association with an
organization. organization.
costCenter Identifies the name of a cost center. costCenter Identifies the name of a cost center.
organization Identifies the name of an organization. organization Identifies the name of an organization.
division Identifies the name of a division. division Identifies the name of a division.
department Identifies the name of a department. department Identifies the name of a department.
manager The User's manager. A complex type that optionally allows manager The User's manager. A complex type that optionally allows
Service Providers to represent organizational hierarchy by Service Providers to represent organizational hierarchy by
referencing the "id" attribute of another User. referencing the "id" attribute of another User.
managerId The id of the SCIM resource representing the User's managerId The id of the SCIM resource representing the User's
manager. REQUIRED. manager. REQUIRED.
$ref The URI of the SCIM resource representing the User's $ref The URI of the SCIM resource representing the User's
manager. REQUIRED. manager. REQUIRED.
displayName The displayName of the User's manager. OPTIONAL and displayName The displayName of the User's manager. OPTIONAL and
READ-ONLY. READ-ONLY.
8. SCIM Group Schema 8. SCIM Group Schema
SCIM provides a schema for representing groups, identified using the SCIM provides a schema for representing groups, identified using the
following URI: 'urn:scim:schemas:core:1.0'. following URI: 'urn:scim:schemas:core:2.0:Group'.
Group resources are meant to enable expression of common Group or Group resources are meant to enable expression of common Group or
role based access control models, although no explicit authorization role based access control models, although no explicit authorization
model is defined. It is intended that the semantics of group model is defined. It is intended that the semantics of group
membership and any behavior or authorization granted as a result of membership and any behavior or authorization granted as a result of
membership are defined by the Service Provider are considered out of membership are defined by the Service Provider are considered out of
scope for this specification. scope for this specification.
The following Singular Attribute is defined in addition to the common The following Singular Attribute is defined in addition to the common
attributes defined in SCIM Core Schema: attributes defined in SCIM Core Schema:
skipping to change at page 16, line 24 skipping to change at page 15, line 44
either a User, or a Group. The intention of the Group type is to either a User, or a Group. The intention of the Group type is to
allow the Service Provider to support nested Groups. Service allow the Service Provider to support nested Groups. Service
Providers MAY require Consumers to provide a non-empty members Providers MAY require Consumers to provide a non-empty members
value based on the "required" sub attribute of the "members" value based on the "required" sub attribute of the "members"
attribute in Group Resource Schema. attribute in Group Resource Schema.
9. Service Provider Configuration Schema 9. Service Provider Configuration Schema
SCIM provides a schema for representing the Service Provider's SCIM provides a schema for representing the Service Provider's
configuration identified using the following URI: configuration identified using the following URI:
'urn:scim:schemas:core:1.0' 'urn:scim:schemas:core:2.0:ServiceProviderConfig'
The Service Provider Configuration Resource enables a Service The Service Provider Configuration Resource enables a Service
Provider to expose its compliance with the SCIM specification in a Provider to expose its compliance with the SCIM specification in a
standardized form as well as provide additional implementation standardized form as well as provide additional implementation
details to Consumers. All attributes are READ-ONLY. details to Consumers. All attributes are READ-ONLY. Unlike other
core Resources, the "id" attribute is not required for the Service
Provider Configuration Resource.
The following Singular Attributes are defined in addition to the The following Singular Attributes are defined in addition to the
common attributes defined in Core Schema: common attributes defined in Core Schema:
documentationUrl An HTTP addressable URL pointing to the Service documentationUrl An HTTP addressable URL pointing to the Service
Provider's human consumable help documentation. Provider's human consumable help documentation.
patch A complex type that specifies PATCH configuration options. patch A complex type that specifies PATCH configuration options.
REQUIRED. REQUIRED.
supported Boolean value specifying whether the operation is supported Boolean value specifying whether the operation is
supported. REQUIRED. supported. REQUIRED.
bulk A complex type that specifies BULK configuration options. bulk A complex type that specifies BULK configuration options.
REQUIRED REQUIRED
supported Boolean value specifying whether the operation is supported Boolean value specifying whether the operation is
supported. REQUIRED. supported. REQUIRED.
maxOperations An integer value specifying the maximum number of maxOperations An integer value specifying the maximum number of
operations. REQUIRED. operations. REQUIRED.
maxPayloadSize An integer value specifying the maximum payload maxPayloadSize An integer value specifying the maximum payload
size in bytes. REQUIRED. size in bytes. REQUIRED.
filter A complex type that specifies FILTER options. REQUIRED. filter A complex type that specifies FILTER options. REQUIRED.
supported Boolean value specifying whether the operation is supported Boolean value specifying whether the operation is
supported. REQUIRED. supported. REQUIRED.
maxResults Integer value specifying the maximum number of maxResults Integer value specifying the maximum number of
Resources returned in a response. REQUIRED. Resources returned in a response. REQUIRED.
changePassword A complex type that specifies Change Password changePassword A complex type that specifies Change Password
configuration options. REQUIRED. configuration options. REQUIRED.
supported Boolean value specifying whether the operation is supported Boolean value specifying whether the operation is
supported. REQUIRED. supported. REQUIRED.
sort A complex type that specifies Sort configuration options. sort A complex type that specifies Sort configuration options.
REQUIRED. REQUIRED.
supported Boolean value specifying whether sorting is supported. supported Boolean value specifying whether sorting is supported.
REQUIRED. REQUIRED.
etag A complex type that specifies Etag configuration options. etag A complex type that specifies Etag configuration options.
REQUIRED. REQUIRED.
supported Boolean value specifying whether the operation is supported Boolean value specifying whether the operation is
supported. REQUIRED. supported. REQUIRED.
The following multi-valued attribute is defined in addition to the The following multi-valued attribute is defined in addition to the
common attributes defined in Core Schema: common attributes defined in Core Schema:
authenticationSchemes A complex type that specifies supported authenticationSchemes A complex type that specifies supported
Authentication Scheme properties. Instead of the standard Authentication Scheme properties. Instead of the standard
Canonical Values for type, this attribute defines the following Canonical Values for type, this attribute defines the following
Canonical Values to represent common schemes: oauth, oauth2, Canonical Values to represent common schemes: oauth, oauth2,
oauthbearertoken, httpbasic, and httpdigest. To enable seamless oauthbearertoken, httpbasic, and httpdigest. To enable seamless
discovery of configuration, the Service Provider SHOULD, with the discovery of configuration, the Service Provider SHOULD, with the
appropriate security considerations, make the appropriate security considerations, make the
authenticationSchemes attribute publicly accessible without prior authenticationSchemes attribute publicly accessible without prior
authentication. REQUIRED. authentication. REQUIRED.
name The common authentication scheme name; e.g., HTTP Basic. name The common authentication scheme name; e.g., HTTP Basic.
REQUIRED. REQUIRED.
description A description of the Authentication Scheme. description A description of the Authentication Scheme.
REQUIRED. REQUIRED.
specUrl A HTTP addressable URL pointing to the Authentication specUrl A HTTP addressable URL pointing to the Authentication
Scheme's specification. OPTIONAL. Scheme's specification. OPTIONAL.
documentationUrl A HTTP addressable URL pointing to the documentationUrl A HTTP addressable URL pointing to the
Authentication Scheme's usage documentation. OPTIONAL. Authentication Scheme's usage documentation. OPTIONAL.
10. Resource Schema 10. Resource Type Schema
The Resource schema specifies the Attribute(s) and meta-data that The Resource Type schema specifies the meta-data about a Resource
constitute a Resource. Schema Resources are READ-ONLY and identified Type. Resource Type Resources are READ-ONLY and identified using the
using the following URI: 'urn:scim:schemas:core:1.0'. Unlike other following URI: 'urn:scim:schemas:core:2.0:ResourceType'. Unlike
core Resources the schema Resource MAY contain a complex object other core Resources, all Attributes are REQUIRED unless otherwise
within a Sub-Attribute and all Attributes are REQUIRED unless other specified, and the "id" attribute is not required for the Resource
specified. Type Resource.
The following Singular Attributes are defined: The following Singular Attributes are defined:
name The Resource name. When applicable Service Providers MUST name The Resource Type name. When applicable Service Providers MUST
specify the name specified in the core schema specification; e.g., specify the name specified in the core schema specification; e.g.,
"User" or "Group". "User" or "Group". This name is referenced by the
meta.resourceType attribute in all resources.
description The Resource's human readable description. When description The Resource Type's human readable description. When
applicable Service Providers MUST specify the description applicable Service Providers MUST specify the description
specified in the core schema specification. specified in the core schema specification.
schema The Resource's associated schema URI; e.g., endpoint The Resource Type's HTTP addressable endpoint relative to
urn:scim:schemas:core:1.0. the Base URL; e.g., /Users.
endpoint The Resource's HTTP addressable endpoint relative to the schema The Resource Type's primary schema URI; e.g.,
Base URL; e.g., /Users. urn:scim:schemas:core:2.0:User. This MUST be equal to the "id"
attribute of the Schema.
schemaExtensions A list of URIs of the Resource Type's schema
extensions. OPTIONAL.
schema The URI of an extended schema; e.g., urn:edu:2.0:Staff.
This MUST be equal to the "id" attribute of a Schema.
REQUIRED.
required A Boolean value that specifies whether the schema
extension is required for the Resource Type. If true, a
Resource of this type MUST include this schema extension and
include any attributes declared as required in this schema
extension. If false, a Resource of this type MAY omit this
schema extension. REQUIRED.
11. Schema Schema
The Schema schema specifies the Attribute(s) and meta-data that
constitute a Schema. Schema Resources are READ-ONLY and identified
using the following URI: 'urn:scim:schemas:core:2.0:Schema'. Unlike
other core Resources the Schema Resource MAY contain a complex object
within a Sub-Attribute and all Attributes are REQUIRED unless other
specified.
The following Singular Attributes are defined:
id The unique URI of the schema. When applicable Service Providers
MUST specify the URI specified in the core schema specification;
e.g., "urn:scim:core:2.0:User". Unlike most other schemas, which
use some sort of a GUID for the "id", the Schema "id" is a URI so
that it can be registered and is portable between different
Service Providers and Clients.
name The Schema's human readable name. When applicable Service
Providers MUST specify the name specified in the core schema
specification; e.g., "User" or "Group". OPTIONAL.
description The Schema's human readable description. When
applicable Service Providers MUST specify the description
specified in the core schema specification. OPTIONAL.
The following multi-valued attribute is defined: The following multi-valued attribute is defined:
attributes A complex type that specifies the set of Resource attributes A complex type that specifies the set of Resource
attributes. attributes.
name The attribute's name. name The attribute's name.
type The attribute's data type; e.g., String. type The attribute's data type; e.g., String.
multiValued Boolean value indicating the attribute's plurality. multiValued Boolean value indicating the attribute's plurality.
description The attribute's human readable description. When description The attribute's human readable description. When
applicable Service Providers MUST specify the description applicable Service Providers MUST specify the description
specified in the core schema specification. specified in the core schema specification.
schema The attribute's associated schema; e.g.,
urn:scim:schemas:core:1.0.
readOnly A Boolean value that specifies if the attribute is readOnly A Boolean value that specifies if the attribute is
mutable. mutable.
required A Boolean value that specifies if the attribute is required A Boolean value that specifies if the attribute is
required. required.
caseExact A Boolean value that specifies if the String attribute caseExact A Boolean value that specifies if the String attribute
is case sensitive. is case sensitive.
referenceTypes The names of the Resources that may be referenced; referenceTypes The names of the Resource Types that may be
e.g., User. This is only applicable for attributes that are of referenced; e.g., User. This is only applicable for
the "reference" data type. attributes that are of the "reference" data type.
The following multi-valued attributes are defined. There are The following multi-valued attributes are defined. There
no canonical type values defined and the primary value serves are no canonical type values defined and the primary value
no useful purpose. serves no useful purpose.
subAttributes A list specifying the contained attributes. subAttributes A list specifying the contained attributes.
OPTIONAL. OPTIONAL.
name The attribute's name. name The attribute's name.
type The attribute's data type; e.g., String. type The attribute's data type; e.g.,
String.
description The attribute's human readable description. description The attribute's human readable
When applicable Service Providers MUST specify the description. When applicable Service
description specified in the core schema specification. Providers MUST specify the description
specified in the core schema
specification.
readOnly A Boolean value that specifies if the attribute is readOnly A Boolean value that specifies if the
mutable. attribute is mutable.
required A Boolean value that specifies if the attribute is required A Boolean value that specifies if the
required. attribute is required.
caseExact A Boolean value that specifies if the String caseExact A Boolean value that specifies if the
attribute is case sensitive. String attribute is case sensitive.
referenceTypes The names of the Resources that may be referenceTypes The names of the Resource Types
referenced; e.g., User. This is only applicable for that may be referenced; e.g., User.
attributes that are of the "reference" data type. This is only applicable for attributes
that are of the "reference" data type.
canonicalValues A collection of canonical values. When canonicalValues A collection of canonical values.
applicable Service Providers MUST specify the canonical When applicable Service Providers MUST
types specified in the core schema specification; specify the canonical types specified
e.g.,"work","home". OPTIONAL. in the core schema specification;
e.g.,"work","home". OPTIONAL.
11. JSON Representation 12. JSON Representation
11.1. Minimal User Representation 12.1. Minimal User Representation
The following is a non-normative example of the minimal required SCIM The following is a non-normative example of the minimal required SCIM
representation in JSON format. representation in JSON format.
{ {
"schemas": ["urn:scim:schemas:core:1.0"], "schemas": ["urn:scim:schemas:core:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646", "id": "2819c223-7f76-453a-919d-413861904646",
"userName": "bjensen@example.com" "userName": "bjensen@example.com"
"meta": {
"resourceType": "User",
"created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"3694e05e9dff590\"",
"location": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646"
}
} }
11.2. Full User Representation 12.2. Full User Representation
The following is a non-normative example of the fully populated SCIM The following is a non-normative example of the fully populated SCIM
representation in JSON format. representation in JSON format.
{ {
"schemas": ["urn:scim:schemas:core:1.0"], "schemas": ["urn:scim:schemas:core:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646", "id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "701984", "externalId": "701984",
"userName": "bjensen@example.com", "userName": "bjensen@example.com",
"name": { "name": {
"formatted": "Ms. Barbara J Jensen III", "formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen", "familyName": "Jensen",
"givenName": "Barbara", "givenName": "Barbara",
"middleName": "Jane", "middleName": "Jane",
"honorificPrefix": "Ms.", "honorificPrefix": "Ms.",
"honorificSuffix": "III" "honorificSuffix": "III"
}, },
"displayName": "Babs Jensen", "displayName": "Babs Jensen",
"nickName": "Babs", "nickName": "Babs",
"profileUrl": "https://login.example.com/bjensen", "profileUrl": "https://login.example.com/bjensen",
"emails": [ "emails": [
{ {
"value": "bjensen@example.com", "value": "bjensen@example.com",
"type": "work", "type": "work",
"primary": true "primary": true
}, },
{ {
"value": "babs@jensen.org", "value": "babs@jensen.org",
"type": "home" "type": "home"
} }
], ],
"addresses": [ "addresses": [
{ {
"type": "work", "type": "work",
"streetAddress": "100 Universal City Plaza", "streetAddress": "100 Universal City Plaza",
"locality": "Hollywood", "locality": "Hollywood",
"region": "CA", "region": "CA",
"postalCode": "91608", "postalCode": "91608",
"country": "USA", "country": "USA",
"formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA", "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
"primary": true "primary": true
}, },
{ {
"type": "home", "type": "home",
"streetAddress": "456 Hollywood Blvd", "streetAddress": "456 Hollywood Blvd",
"locality": "Hollywood", "locality": "Hollywood",
"region": "CA", "region": "CA",
"postalCode": "91608", "postalCode": "91608",
"country": "USA", "country": "USA",
"formatted": "456 Hollywood Blvd\nHollywood, CA 91608 USA" "formatted": "456 Hollywood Blvd\nHollywood, CA 91608 USA"
} }
], ],
"phoneNumbers": [ "phoneNumbers": [
{ {
"value": "555-555-5555", "value": "555-555-5555",
"type": "work" "type": "work"
}, },
{ {
"value": "555-555-4444", "value": "555-555-4444",
"type": "mobile" "type": "mobile"
} }
], ],
"ims": [ "ims": [
{ {
"value": "someaimhandle", "value": "someaimhandle",
"type": "aim" "type": "aim"
} }
],
], "photos": [
"photos": [ {
{ "value": "https://photos.example.com/profilephoto/72930000000Ccne/F",
"value": "https://photos.example.com/profilephoto/72930000000Ccne/F", "type": "photo"
"type": "photo" },
}, {
{ "value": "https://photos.example.com/profilephoto/72930000000Ccne/T",
"value": "https://photos.example.com/profilephoto/72930000000Ccne/T", "type": "thumbnail"
"type": "thumbnail" }
} ],
], "userType": "Employee",
"userType": "Employee", "title": "Tour Guide",
"title": "Tour Guide", "preferredLanguage":"en_US",
"preferredLanguage":"en_US", "locale": "en_US",
"locale": "en_US", "timezone": "America/Los_Angeles",
"timezone": "America/Los_Angeles", "active":true,
"active":true, "password":"t1meMa$heen",
"password":"t1meMa$heen", "groups": [
"groups": [ {
{ "value": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"value": "e9e30dba-f08f-4109-8486-d5c6a331660a", "$ref": "https://example.com/v1/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a",
"$ref": "https://example.com/v1/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a", "display": "Tour Guides"
"display": "Tour Guides" },
}, {
{ "value": "fc348aa8-3835-40eb-a20b-c726e15c55b5",
"value": "fc348aa8-3835-40eb-a20b-c726e15c55b5", "$ref": "https://example.com/v1/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5",
"$ref": "https://example.com/v1/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5", "display": "Employees"
"display": "Employees" },
}, {
{ "value": "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"value": "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7", "$ref": "https://example.com/v1/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"$ref": "https://example.com/v1/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7", "display": "US Employees"
"display": "US Employees" }
} ],
], "x509Certificates": [
"x509Certificates": [ {
{ "value": "MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx
"value": "MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD
EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa
VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl
MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw
eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B
IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc
AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc 1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i
1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ
PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3
zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3 DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr
DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV
SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU
Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt
dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R
Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1
C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1 +GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo=" }
} ],
], "meta": {
"meta": { "resourceType": "User",
"created": "2010-01-23T04:56:22Z", "created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z", "lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"a330bc54f0671c9\"", "version": "W\/\"a330bc54f0671c9\"",
"location": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646" "location": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646"
} }
} }
11.3. Enterprise User Extension Representation 12.3. Enterprise User Extension Representation
The following is a non-normative example of the fully populated User The following is a non-normative example of the fully populated User
using the enterprise User extension in JSON format. using the enterprise User extension in JSON format.
{ {
"schemas": ["urn:scim:schemas:core:1.0", "urn:scim:schemas:extension:enterprise:1.0"], "schemas": ["urn:scim:schemas:core:2.0:User", "urn:scim:schemas:extension:enterprise:2.0:User"],
"id": "2819c223-7f76-453a-919d-413861904646", "id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "701984", "externalId": "701984",
"userName": "bjensen@example.com", "userName": "bjensen@example.com",
"name": { "name": {
"formatted": "Ms. Barbara J Jensen III", "formatted": "Ms. Barbara J Jensen III",
"familyName": "Jensen", "familyName": "Jensen",
"givenName": "Barbara", "givenName": "Barbara",
"middleName": "Jane", "middleName": "Jane",
"honorificPrefix": "Ms.", "honorificPrefix": "Ms.",
"honorificSuffix": "III" "honorificSuffix": "III"
}, },
"displayName": "Babs Jensen", "displayName": "Babs Jensen",
"nickName": "Babs", "nickName": "Babs",
"profileUrl": "https://login.example.com/bjensen", "profileUrl": "https://login.example.com/bjensen",
"emails": [ "emails": [
{ {
"value": "bjensen@example.com", "value": "bjensen@example.com",
"type": "work", "type": "work",
"primary": true "primary": true
}, },
{ {
"value": "babs@jensen.org", "value": "babs@jensen.org",
"type": "home" "type": "home"
}
} ],
], "addresses": [
"addresses": [ {
{ "streetAddress": "100 Universal City Plaza",
"streetAddress": "100 Universal City Plaza", "locality": "Hollywood",
"locality": "Hollywood", "region": "CA",
"region": "CA", "postalCode": "91608",
"postalCode": "91608", "country": "USA",
"country": "USA", "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
"formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA", "type": "work",
"type": "work", "primary": true
"primary": true },
}, {
{ "streetAddress": "456 Hollywood Blvd",
"streetAddress": "456 Hollywood Blvd", "locality": "Hollywood",
"locality": "Hollywood", "region": "CA",
"region": "CA", "postalCode": "91608",
"postalCode": "91608", "country": "USA",
"country": "USA", "formatted": "456 Hollywood Blvd\nHollywood, CA 91608 USA",
"formatted": "456 Hollywood Blvd\nHollywood, CA 91608 USA", "type": "home"
"type": "home" }
],
"phoneNumbers": [
{
"value": "555-555-5555",
"type": "work"
},
{
"value": "555-555-4444",
"type": "mobile"
}
],
"ims": [
{
"value": "someaimhandle",
"type": "aim"
}
],
"photos": [
{
"value": "https://photos.example.com/profilephoto/72930000000Ccne/F",
"type": "photo"
},
{
"value": "https://photos.example.com/profilephoto/72930000000Ccne/T",
"type": "thumbnail"
}
],
"userType": "Employee",
"title": "Tour Guide",
"preferredLanguage":"en_US",
"locale": "en_US",
"timezone": "America/Los_Angeles",
"active":true,
"password":"t1meMa$heen",
"groups": [
{
"value": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"$ref": "/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a",
"display": "Tour Guides"
},
{
"value": "fc348aa8-3835-40eb-a20b-c726e15c55b5",
"$ref": "/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5",
"display": "Employees"
},
{
"value": "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"$ref": "/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"display": "US Employees"
}
],
"x509Certificates": [
{
"value": "MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx
EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD
VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa
MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl
eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw
IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc
1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i
PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ
zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3
DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr
SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU
dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt
Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R
C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1
+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
}
],
"urn:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"managerId": "26118915-6090-4610-87e4-49d8ca9f808d",
"$ref": "/Users/26118915-6090-4610-87e4-49d8ca9f808d",
"displayName": "John Smith"
}
},
"meta": {
"resourceType": "User",
"created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"3694e05e9dff591\"",
"location": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646"
} }
], }
"phoneNumbers": [
{
"value": "555-555-5555",
"type": "work"
},
{
"value": "555-555-4444",
"type": "mobile"
}
],
"ims": [
{
"value": "someaimhandle",
"type": "aim"
}
],
"photos": [
{
"value": "https://photos.example.com/profilephoto/72930000000Ccne/F",
"type": "photo"
},
{
"value": "https://photos.example.com/profilephoto/72930000000Ccne/T",
"type": "thumbnail"
}
],
"userType": "Employee",
"title": "Tour Guide",
"preferredLanguage":"en_US",
"locale": "en_US",
"timezone": "America/Los_Angeles",
"active":true,
"password":"t1meMa$heen",
"groups": [
{
"value": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"$ref": "/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a",
"display": "Tour Guides"
},
{
"value": "fc348aa8-3835-40eb-a20b-c726e15c55b5",
"$ref": "/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5",
"display": "Employees"
},
{
"value": "71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"$ref": "/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7",
"display": "US Employees"
}
],
"x509Certificates": [
{
"value": "MIIDQzCCAqygAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwTjELMAkGA1UEBhMCVVMx
EzARBgNVBAgMCkNhbGlmb3JuaWExFDASBgNVBAoMC2V4YW1wbGUuY29tMRQwEgYD
VQQDDAtleGFtcGxlLmNvbTAeFw0xMTEwMjIwNjI0MzFaFw0xMjEwMDQwNjI0MzFa
MH8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRQwEgYDVQQKDAtl
eGFtcGxlLmNvbTEhMB8GA1UEAwwYTXMuIEJhcmJhcmEgSiBKZW5zZW4gSUlJMSIw
IAYJKoZIhvcNAQkBFhNiamVuc2VuQGV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEA7Kr+Dcds/JQ5GwejJFcBIP682X3xpjis56AK02bc
1FLgzdLI8auoR+cC9/Vrh5t66HkQIOdA4unHh0AaZ4xL5PhVbXIPMB5vAPKpzz5i
PSi8xO8SL7I7SDhcBVJhqVqr3HgllEG6UClDdHO7nkLuwXq8HcISKkbT5WFTVfFZ
zidPl8HZ7DhXkZIRtJwBweq4bvm3hM1Os7UQH05ZS6cVDgweKNwdLLrT51ikSQG3
DYrl+ft781UQRIqxgwqCfXEuDiinPh0kkvIi5jivVu1Z9QiwlYEdRbLJ4zJQBmDr
SGTMYn4lRc2HgHO4DqB/bnMVorHB0CC6AV1QoFK4GPe1LwIDAQABo3sweTAJBgNV
HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZp
Y2F0ZTAdBgNVHQ4EFgQU8pD0U0vsZIsaA16lL8En8bx0F/gwHwYDVR0jBBgwFoAU
dGeKitcaF7gnzsNwDx708kqaVt0wDQYJKoZIhvcNAQEFBQADgYEAA81SsFnOdYJt
Ng5Tcq+/ByEDrBgnusx0jloUhByPMEVkoMZ3J7j1ZgI8rAbOkNngX8+pKfTiDz1R
C4+dx8oU6Za+4NJXUjlL5CvV6BEYb1+QAEJwitTVvxB/A67g42/vzgAtoRUeDov1
+GFiBZ+GNF/cAYKcMtGcrs2i97ZkJMo="
}
],
"urn:scim:schemas:extension:enterprise:1.0": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"managerId": "26118915-6090-4610-87e4-49d8ca9f808d",
"$ref": "/Users/26118915-6090-4610-87e4-49d8ca9f808d",
"displayName": "John Smith"
}
},
"meta": {
"created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"3694e05e9dff591\"",
"location": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646"
}
}
11.4. Group Representation 12.4. Group Representation
The following is a non-normative example of SCIM Group representation The following is a non-normative example of SCIM Group representation
in JSON format. in JSON format.
{ {
"schemas": ["urn:scim:schemas:core:1.0"], "schemas": ["urn:scim:schemas:core:2.0:Group"],
"id": "e9e30dba-f08f-4109-8486-d5c6a331660a", "id": "e9e30dba-f08f-4109-8486-d5c6a331660a",
"displayName": "Tour Guides", "displayName": "Tour Guides",
"members": [ "members": [
{ {
"value": "2819c223-7f76-453a-919d-413861904646", "value": "2819c223-7f76-453a-919d-413861904646",
"$ref": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646", "$ref": "https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646",
"display": "Babs Jensen" "display": "Babs Jensen"
}, },
{ {
"value": "902c246b-6245-4190-8e05-00816be7344a", "value": "902c246b-6245-4190-8e05-00816be7344a",
"$ref": "https://example.com/v1/Users/902c246b-6245-4190-8e05-00816be7344a", "$ref": "https://example.com/v1/Users/902c246b-6245-4190-8e05-00816be7344a",
"display": "Mandy Pepperidge" "display": "Mandy Pepperidge"
} }
] ]
} "meta": {
11.5. Service Provider Configuration Representation "resourceType": "Group",
"created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"3694e05e9dff592\"",
"location": "https://example.com/v1/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a"
}
}
12.5. Service Provider Configuration Representation
The following is a non-normative example of the SCIM Service Provider The following is a non-normative example of the SCIM Service Provider
Configuration representation in JSON format. Configuration representation in JSON format.
{ {
"schemas": ["urn:scim:schemas:core:1.0"], "schemas": ["urn:scim:schemas:core:2.0:ServiceProviderConfig"],
"documentationUrl":"http://example.com/help/scim.html", "documentationUrl":"http://example.com/help/scim.html",
"patch": { "patch": {
"supported":true "supported":true
}, },
"bulk": { "bulk": {
"supported":true, "supported":true,
"maxOperations":1000, "maxOperations":1000,
"maxPayloadSize":1048576 "maxPayloadSize":1048576
}, },
"filter": { "filter": {
"supported":true, "supported":true,
"maxResults": 200 "maxResults": 200
}, },
"changePassword" : { "changePassword" : {
"supported":true "supported":true
}, },
"sort": { "sort": {
"supported":true "supported":true
}, },
"etag": { "etag": {
"supported":true "supported":true
}, },
"authenticationSchemes": [ "authenticationSchemes": [
{ {
"name": "OAuth Bearer Token", "name": "OAuth Bearer Token",
"description": "Authentication Scheme using the OAuth Bearer Token Standard", "description": "Authentication Scheme using the OAuth Bearer Token Standard",
"specUrl":"http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-01", "specUrl":"http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-01",
"documentationUrl":"http://example.com/help/oauth.html", "documentationUrl":"http://example.com/help/oauth.html",
"type":"oauthbearertoken", "type":"oauthbearertoken",
"primary": true "primary": true
}, },
{ {
"name": "HTTP Basic", "name": "HTTP Basic",
"description": "Authentication Scheme using the Http Basic Standard", "description": "Authentication Scheme using the Http Basic Standard",
"specUrl":"http://www.ietf.org/rfc/rfc2617.txt", "specUrl":"http://www.ietf.org/rfc/rfc2617.txt",
"documentationUrl":"http://example.com/help/httpBasic.html", "documentationUrl":"http://example.com/help/httpBasic.html",
"type":"httpbasic" "type":"httpbasic"
}
],
"meta": {
"resourceType": "ServiceProviderConfig"
"created": "2010-01-23T04:56:22Z",
"lastModified": "2011-05-13T04:42:34Z",
"version": "W\/\"3694e05e9dff594\""
} }
] }
}
11.6. Resource Schema Representation
The following is a normative example of the SCIM Resource Schema 12.6. Resource Type Representation
The following is a normative example of the SCIM Resource Type
representation in JSON format. representation in JSON format.
{ {
"id":"urn:scim:schemas:core:1.0:User", "schemas": ["urn:scim:schemas:core:2.0:ResourceType"],
"name":"User", "name": "User",
"description":"Core User", "endpoint": "/Users",
"schema":"urn:scim:schemas:core:1.0", "description": "Core User",
"endpoint":"/Users", "schema": "urn:scim:schemas:core:2.0:User",
"attributes":[ "schemaExtensions": [
{ {
"name":"id", "schema": "urn:scim:schemas:extension:enterprise:2.0:EnterpriseUser",
"type":"string", "required": true
"multiValued":false, }
"description":"Unique identifier for the SCIM resource as defined by the Service Provider. Each representation of the resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of resources. It MUST be a stable, non-reassignable identifier that does not change when the same resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. REQUIRED.", ],
"schema":"urn:scim:schemas:core:1.0", "meta": {
"readOnly":true, "resourceType": "ResourceType",
"required":true, "created": "2010-01-23T04:56:22Z",
"caseExact":false "lastModified": "2011-05-13T04:42:34Z",
}, "version": "W\/\"3694e05e9dff595\""
{ }
"name":"name", }
"type":"complex",
"multiValued":false, 12.7. Schema Representation
"description":"The components of the user's real name. Providers MAY return just the full name as a single string in the formatted sub-attribute, or they MAY return just the individual component attributes using the other sub-attributes, or they MAY return both. If both variants are returned, they SHOULD be describing the same name, with the formatted name indicating how the component attributes should be combined.",
"schema":"urn:scim:schemas:core:1.0", The following is a normative example of the SCIM Schema
"readOnly":false, representation in JSON format.
"required":false,
"caseExact":false, {
"subAttributes":[ "id": "urn:scim:schemas:core:2.0:User",
{ "name": "User",
"name":"formatted", "description": "Core User",
"type":"string", "attributes":[
"multiValued":false, {
"description":"The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g. Ms. Barbara J Jensen, III.)." , "name":"id",
"readOnly":false, "type":"string",
"required":false, "multiValued":false,
"caseExact":false "description":"Unique identifier for the SCIM resource as defined by the Service Provider. Each representation of the resource MUST include a non-empty id value. This identifier MUST be unique across the Service Provider's entire set of resources. It MUST be a stable, non-reassignable identifier that does not change when the same resource is returned in subsequent requests. The value of the id attribute is always issued by the Service Provider and MUST never be specified by the Service Consumer. REQUIRED.",
}, "readOnly":true,
{ "required":true,
"name":"familyName", "caseExact":false
"type":"string", },
"multiValued":false, {
"description":"The family name of the User, or Last Name in most Western languages (e.g. Jensen given the full name Ms. Barbara J Jensen, III.).", "name":"name",
"readOnly":false, "type":"complex",
"required":false, "multiValued":false,
"caseExact":false "description":"The components of the user's real name. Providers MAY return just the full name as a single string in the formatted sub-attribute, or they MAY return just the individual component attributes using the other sub-attributes, or they MAY return both. If both variants are returned, they SHOULD be describing the same name, with the formatted name indicating how the component attributes should be combined.",
}, "readOnly":false,
{ "required":false,
"name":"givenName", "caseExact":false,
"type":"string", "subAttributes":[
"multiValued":false, {
"description":"The given name of the User, or First Name in most Western languages (e.g. Barbara given the full name Ms. Barbara J Jensen, III.).", "name":"formatted",
"readOnly":false, "type":"string",
"required":false, "multiValued":false,
"caseExact":false "description":"The full name, including all middle names, titles, and suffixes as appropriate, formatted for display (e.g. Ms. Barbara J Jensen, III.)." ,
}, "readOnly":false,
{ "required":false,
"name":"middleName", "caseExact":false
"type":"string", },
"multiValued":false, {
"description":"The middle name(s) of the User (e.g. Robert given the full name Ms. Barbara J Jensen, III.).", "name":"familyName",
"readOnly":false, "type":"string",
"required":false, "multiValued":false,
"caseExact":false "description":"The family name of the User, or Last Name in most Western languages (e.g. Jensen given the full name Ms. Barbara J Jensen, III.).",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"givenName",
"type":"string",
"multiValued":false,
"description":"The given name of the User, or First Name in most Western languages (e.g. Barbara given the full name Ms. Barbara J Jensen, III.).",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"middleName",
"type":"string",
"multiValued":false,
"description":"The middle name(s) of the User (e.g. Robert given the full name Ms. Barbara J Jensen, III.).",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"honorificPrefix",
"type":"string",
"multiValued":false,
"description":"The honorific prefix(es) of the User, or Title in most Western languages (e.g. Ms. given the full name Ms. Barbara J Jensen, III.).",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"honorificSuffix",
"type":"string",
"multiValued":false,
"description":"The honorific suffix(es) of the User, or Suffix in most Western languages (e.g. III. given the full name Ms. Barbara J Jensen, III.).",
"readOnly":false,
"required":false,
"caseExact":false
}
]
}, },
{ {
"name":"honorificPrefix", "name":"emails",
"type":"string", "type":"complex",
"multiValued":false, "multiValued":true,
"description":"The honorific prefix(es) of the User, or Title in most Western languages (e.g. Ms. given the full name Ms. Barbara J Jensen, III.).", "description":"E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
"readOnly":false, "readOnly":false,
"required":false, "required":false,
"caseExact":false "caseExact":false,
"subAttributes":[
{
"name":"value",
"type":"string",
"multiValued":false,
"description":"E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"display",
"type":"string",
"multiValued":false,
"description":"A human readable name, primarily used for display purposes. READ-ONLY.",
"readOnly":true,
"required":false,
"caseExact":false
},
{
"name":"type",
"type":"string",
"multiValued":false,
"description":"A label indicating the attribute's function; e.g., 'work' or 'home'.",
"readOnly":false,
"required":false,
"caseExact":false,
"canonicalValues":["work","home","other"]
},
{
"name":"primary",
"type":"boolean",
"multiValued":false,
"description":"A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
"readOnly":false,
"required":false,
"caseExact":false
}
}, },
{ {
"name":"honorificSuffix", "name":"addresses",
"type":"string", "type":"complex",
"multiValued":false, "multiValued":true,
"description":"The honorific suffix(es) of the User, or Suffix in most Western languages (e.g. III. given the full name Ms. Barbara J Jensen, III.).", "description":"A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes.",
"readOnly":false, "readOnly":false,
"required":false, "required":false,
"caseExact":false "caseExact":false,
"subAttributes":[
{
"name":"formatted",
"type":"string",
"multiValued":false,
"description":"The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"streetAddress",
"type":"string",
"multiValued":false,
"description":"The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"locality",
"type":"string",
"multiValued":false,
"description":"The city or locality component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"region",
"type":"string",
"multiValued":false,
"description":"The state or region component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"postalCode",
"type":"string",
"multiValued":false,
"description":"The zipcode or postal code component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"country",
"type":"string",
"multiValued":false,
"description":"The country name component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"type",
"type":"string",
"multiValued":false,
"description":"A label indicating the attribute's function; e.g., 'work' or 'home'.",
"readOnly":false,
"required":false,
"caseExact":false,
"canonicalValues":["work","home","other"]
}
]
} }
] ],
}, "meta": {
{ "resourceType": "Schema"
"name":"emails", "created": "2010-01-23T04:56:22Z",
"type":"complex", "lastModified": "2011-05-13T04:42:34Z",
"multiValued":true, "version": "W\/\"3694e05e9dff596\"",
"description":"E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.", "location": "https://example.com/v1/Schemas/urn:scim:schemas:core:2.0:User"
"schema":"urn:scim:schemas:core:1.0",
"readOnly":false,
"required":false,
"caseExact":false,
"subAttributes":[
{
"name":"value",
"type":"string",
"multiValued":false,
"description":"E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g. bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"display",
"type":"string",
"multiValued":false,
"description":"A human readable name, primarily used for display purposes. READ-ONLY.",
"readOnly":true,
"required":false,
"caseExact":false
},
{
"name":"type",
"type":"string",
"multiValued":false,
"description":"A label indicating the attribute's function; e.g., 'work' or 'home'.",
"readOnly":false,
"required":false,
"caseExact":false,
"canonicalValues":["work","home","other"]
},
{
"name":"primary",
"type":"boolean",
"multiValued":false,
"description":"A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g. the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
"readOnly":false,
"required":false,
"caseExact":false
}
},
{
"name":"addresses",
"type":"complex",
"multiValued":true,
"description":"A physical mailing address for this User, as described in (address Element). Canonical Type Values of work, home, and other. The value attribute is a complex type with the following sub-attributes.",
"schema":"urn:scim:schemas:core:1.0",
"readOnly":false,
"required":false,
"caseExact":false,
"subAttributes":[
{
"name":"formatted",
"type":"string",
"multiValued":false,
"description":"The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"streetAddress",
"type":"string",
"multiValued":false,
"description":"The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"locality",
"type":"string",
"multiValued":false,
"description":"The city or locality component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"region",
"type":"string",
"multiValued":false,
"description":"The state or region component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"postalCode",
"type":"string",
"multiValued":false,
"description":"The zipcode or postal code component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"country",
"type":"string",
"multiValued":false,
"description":"The country name component.",
"readOnly":false,
"required":false,
"caseExact":false
},
{
"name":"type",
"type":"string",
"multiValued":false,
"description":"A label indicating the attribute's function; e.g., 'work' or 'home'.",
"readOnly":false,
"required":false,
"caseExact":false,
"canonicalValues":["work","home","other"]
},
]
},
{
"name":"employeeNumber",
"type":"string",
"multiValued":false,
"description":"Numeric or alphanumeric identifier assigned to a person, typically based on order of hire or association with an organization.",
"schema":"urn:scim:schemas:extension:enterprise:1.0",
"readOnly":false,
"required":false,
"caseExact":false
} }
] }
}
12. Security Considerations 13. Security Considerations
The SCIM Core schema contains personally identifiable information as The SCIM Core schema contains personally identifiable information as
well as other sensitive data. Aside from prohibiting password values well as other sensitive data. Aside from prohibiting password values
in a SCIM response this specification does not provide any means or in a SCIM response this specification does not provide any means or
guarantee of confidentiality. guarantee of confidentiality.
13. Normative References 14. Normative References
[PortableContacts] [PortableContacts]
Smarr, J., "Portable Contacts 1.0 Draft C - Schema Only", Smarr, J., "Portable Contacts 1.0 Draft C - Schema Only",
August 2008. August 2008.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[1] <http://json.org>
[2] <http://tools.ietf.org/html/rfc4627>
[3] <http://www.w3.org/TR/xmlschema-2/>
[4] <http://tools.ietf.org/html/rfc4512>
[5] <http://www.loc.gov/standards/iso639-2/php/code_list.php>
[6] <http://www.iso.org/iso/country_codes/iso_3166_code_lists/
country_names_and_code_elements.htm>
[7] <http://www.twinsun.com/tz/tz-link.htm>
[8] <http://tools.ietf.org/html/rfc3966>
Appendix A. Contributors Appendix A. Contributors
The SCIM Community would like to thank the following people for the The SCIM Community would like to thank the following people for the
work they've done in the research, formulation, drafting, editing, work they've done in the research, formulation, drafting, editing,
and support of this specification. and support of this specification.
Morteza Ansari (morteza.ansari@cisco.com) Morteza Ansari (morteza.ansari@cisco.com)
Sidharth Choudhury (schoudhury@salesforce.com) Sidharth Choudhury (schoudhury@salesforce.com)
 End of changes. 112 change blocks. 
748 lines changed or deleted 832 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/