Internet DRAFT - draft-zollner-scim-referential-value-location
draft-zollner-scim-referential-value-location
SCIM D. Zollner
Internet-Draft Microsoft
Intended status: Informational 29 July 2022
Expires: 30 January 2023
SCIM Referential Value Location Extension
draft-zollner-scim-referential-value-location-01
Abstract
The System for Cross-domain Identity Management standard's schema RFC
[RFC7643], as well as custom schemas, may have attribute values that
have a finite set of acceptable values. These acceptable values are
frequently tied to a value on another resource. For instance, an
organization may only allow values in the Enterprise User schema's
costCenter attribute that are valid identifiers of cost centers
defined in another location. This draft aims to provide a way for a
SCIM client to determine if an attribute in a schema is limited to a
specific set of values, and where those values may be located on
another SCIM resource type.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 30 January 2023.
Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
Zollner Expires 30 January 2023 [Page 1]
Internet-Draft SCIM Referential Value Location Extensio July 2022
and restrictions with respect to this document. Code Components
extracted from this document must include Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. ServiceProviderConfig Extension . . . . . . . . . . . . . . . 3
3. Schema Definition Extension . . . . . . . . . . . . . . . . . 3
4. Normative Examples . . . . . . . . . . . . . . . . . . . . . 3
4.1. Manager Example . . . . . . . . . . . . . . . . . . . . . 3
5. Cost Center Example . . . . . . . . . . . . . . . . . . . . . 4
6. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 5
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
The System for Cross-domain Identity Management standard's schema RFC
[RFC7643], as well as custom schemas, may have attribute values that
have a finite set of acceptable values. These acceptable values are
frequently tied to a value on another resource. For instance, an
organization may only allow values in the Enterprise User schema's
costCenter attribute that are valid identifiers of existing cost
centers defined in another location. This draft aims to provide a
way for a SCIM client to determine if an attribute in a schema is
limited to a specific set of values, and where those values may be
located on another SCIM resource type.
The mechanism that this draft proposes is an extension to the schema
of [RFC7643]'s "attributes" attribute in the schema definition. This
extension will define three new sub-attributes of the "attributes"
attribute. These attributes will indicate if the attribute is
constrained by a referential relationship, and if it is what resource
type and attribute is the value linked to.
This problem that this aims to solve is a problem of discovery and
efficiency. Without a standardized way to determine when an
attribute is constrained by the existence of and linked to the values
of another resource's attribute, a SCIM client cannot know which
values will be accepted and which will fail. This leads to failed
requests due to invalid values being provided for attributes in
requests, and reduces efficiency and success rate of requests being
made.
Zollner Expires 30 January 2023 [Page 2]
Internet-Draft SCIM Referential Value Location Extensio July 2022
2. ServiceProviderConfig Extension
SCIM Service Providers that have implemented this extension must
advertise its availability via the following serviceProviderConfig
attribute:
referentialValueLocation A complex type that specifies configuration
related to referential value location information. REQUIRED.
supported A boolean type that indicates if the referential value
location extension has been implemented. REQUIRED.
3. Schema Definition Extension
This extension implements the following new sub-attributes of the
"attributes" attribute in
urn:ietf:params:scim:schemas:core:2.0:Schema as defined in [RFC7643].
These attributes are:
referentialValue A complex type that indicates if the value of the
attribute is constrained by values present on a SCIM resource
type. REQUIRED.
required A boolean type that indicates if the attribute's allowed
values are constrained by those present on a SCIM resource
type.
referentialValueURI A reference type that contains the URI of the
SCIM schema attribute that the attribute is constrained
against. REQUIRED if required is true.
referentialValueResourceType A reference type that contains the
relative URI of the root resource type that is referenced.
REQUIRED if required is true.
4. Normative Examples
4.1. Manager Example
The following example shows a section of the core user schema adapted
to support the referential value location attributes in this
extension for the user resource's "manager" attribute.
Zollner Expires 30 January 2023 [Page 3]
Internet-Draft SCIM Referential Value Location Extensio July 2022
{
"name" : "manager",
"type" : "complex",
"multiValued" : false,
"description" : "The User's manager. A complex type that
optionally allows service providers to represent organizational
hierarchy by referencing the 'id' attribute of another User.",
"required" : false,
"subAttributes" : [
{
"name" : "value",
"type" : "string",
"multiValued" : false,
"description" : "The id of the SCIM resource representing
the User's manager. REQUIRED.",
"required" : false,
"caseExact" : false,
"mutability" : "readWrite",
"returned" : "default",
"uniqueness" : "none"
"referentialValue" : {
"required" : true,
"referentialValueURI" : "urn:ietf:params:scim:
schemas:core:2.0:User:id",
"referentialValueResourceType" : "Users"
}
}
...
In the above example, the extension indicates that the value of the
user resource's "manager" attribute is constrained by the id value of
the core schema's User resource located at <baseUrl>/Users.
A request of GET <baseUrl>/Users would return a list of results
containing all visible cost centers. The id value of any of the
users returned should be valid for the value of the user resource's
"manager" attribute.
5. Cost Center Example
The following example shows a section of the Enterprise User schema
adapted to support the referential value location attributes in this
extension for the user resource's enterprise costCenter attribute.
Zollner Expires 30 January 2023 [Page 4]
Internet-Draft SCIM Referential Value Location Extensio July 2022
{
"name" : "costCenter",
"type" : "string",
"multiValued" : false,
"description" : "Identifies the name of a cost center.",
"required" : false,
"caseExact" : false,
"mutability" : "readWrite",
"returned" : "default",
"uniqueness" : "none",
"referentialValue" : {
"required" : true,
"referentialValueURI" : "urn:foo:bar:schema:corporate:
costCenter:displayName",
"referentialValueResourceType" : "costCenters"
}
},
...
In the above example, the extension indicates that the value of
urn:ietf:params:scim:schemas:enterprise:2.0:User:costCenter is
constrained by the displayName value of a custom resource located at
<baseUrl>/costCenters.
A request of GET <baseUrl>/costCenters would return a list of results
containing all visible cost centers. The displayName values of any
of the cost centers returned by the request should be valid for the
value of the user resource's
urn:ietf:params:Scim:schemas:enterprise:2.0:User:costCenter
attribute.
6. Change Log
v00 - July 28, 2022: Initial version v00 - July 29, 2022: Fixes of
small errors in initial draft's examples and incorrect title
7. References
TO-DO
Author's Address
Danny Zollner
Microsoft
Email: danny@zollnerd.com
Zollner Expires 30 January 2023 [Page 5]