Re: [scim] [EXTERNAL] Re: Extension Clarification Request

Danny Zollner <Danny.Zollner@microsoft.com> Fri, 21 October 2022 19:03 UTC

Return-Path: <Danny.Zollner@microsoft.com>
X-Original-To: scim@ietfa.amsl.com
Delivered-To: scim@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 955D4C157B5F for <scim@ietfa.amsl.com>; Fri, 21 Oct 2022 12:03:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.806
X-Spam-Level:
X-Spam-Status: No, score=-1.806 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZgIsX6UCf0UI for <scim@ietfa.amsl.com>; Fri, 21 Oct 2022 12:03:17 -0700 (PDT)
Received: from DM6FTOPR00CU001-vft-obe.outbound.protection.outlook.com (mail-cusazon11020025.outbound.protection.outlook.com [52.101.61.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 829F9C15948B for <scim@ietf.org>; Fri, 21 Oct 2022 12:01:45 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=faetrdvg7YGmdPdGxSiISlDCTECwedAXIzCvP71rBhtq2CZI/hky5VGPD/mdDXQZtl1BRlN5Mg3+J9ddcFfRK8AjiPisukQaGKDIFUosqFaTAY9Y9SS0n+7f4KSsE11nWCJuZKx6/67eN5QVjwDyBXWGoxa2StdRvlp8e5jDPHdGkceHIlYZmlqEb6CRcHjG2pUfQZ1ZX5cYHcbo9/jwm4WrU/4SJU4WqrGsx9jwMtcpEiv72akAxrRNWQ2c4+6S0OvKy3/3q4tigo7SP1xoQ16jo2RleGy5DC5AWVmfIhKIDZb0BAL/EjlIVU5BpxrSOuaLSf4LJmS+YYuLWJIjMg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=U9w1OJIk5iv89tSroLYUxJKV0xIeP1dzR56R9QFCB2s=; b=McAFAi1+ZOq64VTG+JShMxd9MS2yvH28nDT05fGU1kTddkjlo9CHbMGa2QTWKHQrv5b/heaBi5SDbcoI8WgZrhveekau96+4enfBdlukucZEvX5mya8zOr6iD0YJZXwmrCNNykNybxixxsNxKcerwH7iDTBbMb+nY75gQABkyfzYGAbQsCcLpUDVWROTNddjxf9ffw9HCrF7UD/Nwlyqb+JPAN84ojT3/T1rrDEPOzRsXG5iLA7hDd6yk39SujPr/6rFXhCv4wmq1lJHTCPLV8c5O4/xIrgbiPNqYgtQc8PgzwqufPgjyNn8Z8xkO2BzULI4WwLeex0xiTCMaBq8kg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
Received: from BY5PR00MB0708.namprd00.prod.outlook.com (2603:10b6:a03:204::9) by MW2PPF212306841.namprd00.prod.outlook.com (2603:10b6:30f:fff1:0:2:0:6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5671.0; Fri, 21 Oct 2022 19:01:41 +0000
Received: from BY5PR00MB0708.namprd00.prod.outlook.com ([fe80::95cf:de7d:217c:5d21]) by BY5PR00MB0708.namprd00.prod.outlook.com ([fe80::95cf:de7d:217c:5d21%5]) with mapi id 15.20.5794.000; Fri, 21 Oct 2022 19:01:40 +0000
From: Danny Zollner <Danny.Zollner@microsoft.com>
To: Phillip Hunt <phil.hunt@independentid.com>, Chad Vincent <chad.vincent@crashplan.com>
CC: "scim@ietf.org" <scim@ietf.org>
Thread-Topic: [EXTERNAL] Re: [scim] Extension Clarification Request
Thread-Index: AQHY5XBMsstIqVFKnUal/mgP3GcyBK4ZJZuQ
Date: Fri, 21 Oct 2022 19:01:40 +0000
Message-ID: <BY5PR00MB070873165E22B5A4FF549BD0FF2D9@BY5PR00MB0708.namprd00.prod.outlook.com>
References: <CAKXu=h_4LR-VXiEozAA2OwSX-E==7NLcD4oVU1DKngyUfSGoGQ@mail.gmail.com> <AAB851CE-D019-49E2-8DA9-132B8EA03DD4@independentid.com>
In-Reply-To: <AAB851CE-D019-49E2-8DA9-132B8EA03DD4@independentid.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BY5PR00MB0708:EE_|MW2PPF212306841:EE_
x-ms-office365-filtering-correlation-id: d20a55b3-def9-4dac-dc7a-08dab396b033
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: RqVEKhRRxB0X79D8ZvdNFo1WqD8Aii2II/RMHtyXINr+ZWpRHT7lnIaa5J1ohsh6GVUjeXEIi0Xmz+8tk78gvlvF1fTqdV9e6qqPtJG4Yt9SRpedONAk2ahEVFroB4MhrqL4dHVCKPgAKEX1Hha3I+wIDtww4z/2wbuQ9KvnANTZv3+1U+o7hlerZsQ82fb/Nqc5vLobRJbEHAXsOWlyn2twLMTUx3b5Q/BziO7xVyFjEL6A/DS3IiEih+fbcOhLRK+l8ZHGT862MgN/+EBS4mWLebiRaCTOp6pfR6zCAABAf2pZCqPsm6Ca5Ua6dEq4LOWZZGhNV1nYhDVzjYtAZrEo+eqR0tf4vYAbPaW3mDZg/eFuDsTJ4y6bwWe6lfsYg5oN/X0VKGXawk3Na/xygbWyBsUIaSkmfS4hkpi6XoDuzynMj0LX+xw3nvHav6DomMj7iqnaDf+qoNN5XM/bxxQtrKZ3WjHv78rmNiW8KPwPOrV0cnnle9MlzxxTrIEvAzCV7uZ3fg10uU8zOKcTyb2SDndmB3RP8yWwB07/jpyg6sAcgeFD/9aSh7CvQ1dcgRgmANNIuhsCJIssgAasKkgWDzj37fQk/8f6O655i1lq6EUArFpRqtln5HPUU4LdSG2vVTb2Ht2tembzaF6NkHq2edr7WgXR5YAxvo6tPyWgDTzsgxF2Fj5KLY3+YCV6bpFEmH9JAVWXnYUuj35z7NnQK/rpezGUqTuP+2sRretHBubOKX4u+g2ghXihFEUAK7RZFldaSgLg4RMoPzwM2CCd04JzWPj0uq8H2FdGSBXZbYwI/PXwdchPsyFMJceCk6fwiogy67kVl3nY2KMYKQ==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR00MB0708.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(396003)(346002)(136003)(39860400002)(376002)(366004)(451199015)(4326008)(316002)(86362001)(8936002)(122000001)(83380400001)(82960400001)(82950400001)(10290500003)(53546011)(186003)(64756008)(66476007)(110136005)(166002)(7696005)(38070700005)(71200400001)(26005)(52536014)(66556008)(8990500004)(66946007)(478600001)(41300700001)(9686003)(66446008)(6506007)(966005)(8676002)(2906002)(5660300002)(76116006)(38100700002)(55016003)(33656002); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: pIVwrU9exlyrChIeUJANXNR1JX2k/hX0r+DgP1BR4EVA+//EcJjvarKnI4e9OLtRsu85E6/gf5p7isFZvK/ywD2VJREPMugrIIF4skJzobtZy3eXO2y0lyNfrFH1x+jF4IxEwUUppowOOLzD0YFJ43p0FrSJoNwZUR08cfkM3c2wsJYF7b8QAYcTofVSHx/JyF5pnsD0qmzQECfm1pw0TnzRIveU0UPH3nVbrFtzyuvINQUY9YDeGnzQhil675Q6EMdDMPIEIEXPOXXKq4/4GJ0znW1MISIosYFREAyxL+9TJ/rV5mitJfe/7tx38gFfAF0XS497vVmEoPUmcHdsgcZCDEuZCFtM/KK9cT1lVD9GXDnY2elK8uaA11/r7LQhrR9pBGNrDwGOjFuQS1PYIpqA2iGGMb6yjP1aa9hofE9qx5j7eT9422uHgL2FH6C40Dk7Ufku63y+lKSzXUFI64NtGQVnhEAuFLu1ylqELwkSYrpGoQKTDB+h3V4tK3zrZSBu7jtLMOu2p/37UKMSitZavcFBFoQfMS2O9GdZeqGqkhE+IvE8na0NYhDG9uVhhrUIiIGlAbmHlXk6DjAavRZatFvN7oXasbeqnYFDs8y0rMQc0k/FLKJe3dRV83fY6rf+z3X992VFwb2vslD0kOr0wxg/yP68RlBBy+9dytqgAWBXOj0+zxL7gJpK/R2jUfbbMc598mK7QptgTj19LPSZ6pIHZXgpAtV+azv5UhT14fFPw5s/pgFmcOs9PQIY9g1luGg1PVdA01gu0GaBZItj8clnztlukn/HxVOYiC61g+TzUCdjvML02DLuy9EH1BxnFIWLwGOvofQT4fwYubafjZF9xI15Yes8ANNVUOZpz3BWBt8xXTFiOUYKgQH0F85wMSvC6jOvrSqSc72sJ7w1MA6Cj3yAiE5iB/daNEHJ9wKyEyq/XB9Ansp75UXskNimpGRiUFtTV+aBJtKtDWQIfsrR0uDlzjzPlQyxQka64drzzeptRh/Yy7CSYOXlZ0mWXWoOQvm5W3h8OgOpFP5yJCUcAsw0k2th1J9QxQfv9Os/Kj3nYwfnlUhApyBErbrXuoMtxSdK+4t2T9j79hEnQsPFrjxloELQG6tBdd0RLkRnRpdQryMNpMcCem0rjfmccrqc6kju8IT7O5K7Iodctco8u4b3VSsLhFVGF9LGPC1JwOh3Ne3lEO646nfM/J81ra6RsDiuxDq5NRoHDCfQpdErlgeaOezxIldEzGpm5slNkm10pJmE0OYJIZcX3psPJRNXa3iPYgzw6soDT6tTBNvVzUlm0LHt3G3gI94kXHj6blSGnr1+UmisKNwWGLv1lr8r+zgYSTln/NC4lAd7L1iZG741iFldlSiyzFlLOfhUfvBf9vg7R5RCBpbqxqd0IlUWa77egYOy+zL7tx2Tzg8yQGHXXtvND8KxFuJb+IXLQmIMvpp27vUlcIe/wJIkQ9qUOzNsPw4eanw/Bx30mfa7y1A5TbTs3EE9jwvXHRhwJwplfe8fnTXrRhy+MOdODK5kEke3WTJRQxuN2szfaDj5nqr56FV6R3hFCZ+k69kQWjJZi+e4L7TccdV1
Content-Type: multipart/alternative; boundary="_000_BY5PR00MB070873165E22B5A4FF549BD0FF2D9BY5PR00MB0708namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR00MB0708.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d20a55b3-def9-4dac-dc7a-08dab396b033
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Oct 2022 19:01:40.8843 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: MhhTOiOAes+QG8OYmho/ZfKddcGNN41VQ/OssiP/Ql6eOcKLlzMZhrCsihFKF4Ys9ZYDbv2HZlcPM9VX8qi7tA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PPF212306841
Archived-At: <https://mailarchive.ietf.org/arch/msg/scim/3eogvWUniQNCQm-Qw-_aPuCgW-I>
Subject: Re: [scim] [EXTERNAL] Re: Extension Clarification Request
X-BeenThere: scim@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Simple Cloud Identity Management BOF <scim.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/scim>, <mailto:scim-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/scim/>
List-Post: <mailto:scim@ietf.org>
List-Help: <mailto:scim-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/scim>, <mailto:scim-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 21 Oct 2022 19:03:21 -0000

Looking at RFC 7643, I can see how the language isn't crystal clear on the requirement for each in-use schema to be represented by a value in the schemas attribute. I think the line that states this is in 7643 3.3:

All representations of SCIM schemas MUST include a non-empty array with value(s) of the URIs supported by that representation.

The latter half of that sentence being key, I think. The MUST applies to both "include a non-empty array" and "with values of the URIs supported by that representation" - meaning every schema represented on the resource needs to be present in the array of values for the schemas attribute.

I think if we end up revising the core schema RFC and publish a new version in the future, there may be a way to word this requirement more clearly.

(As a side note, originally, I was going to say that based on a past reading I'd had of the spec that it wasn't clear if including each schema value was a requirement, but while rereading to make that case the above quoted part of 7643 3.3 made sense to me as meaning the same thing that Phil said in his email)

Thanks,

Danny Zollner (He/Him)

From: scim <scim-bounces@ietf.org> On Behalf Of Phillip Hunt
Sent: Friday, October 21, 2022 12:12 PM
To: Chad Vincent <chad.vincent@crashplan.com>
Cc: scim@ietf.org
Subject: [EXTERNAL] Re: [scim] Extension Clarification Request

Chad,

The logic should be: The ResourceType for the ServiceProvider defines what schemas are possible in the User resource type.  The schemas attribute indicates what attributes are present in the JSON object and how to parse them (by looking up the schema in the /Schemas endpoint). So if you add an enterprise user attribute to a User, you have to make sure the enterprise user schema URI value is in the schemas attribute.

If no enterprise user attributes are present, then the schema value is not there either.

The idea here is to help parsers know what to look for.

Phillip Hunt
@independentid
phil.hunt@independentid.com<mailto:phil.hunt@independentid.com>




On Oct 21, 2022, at 9:50 AM, Chad Vincent <chad.vincent@crashplan.com<mailto:chad.vincent@crashplan.com>> wrote:

If I could get clarification on this from an official source, it would be most helpful.

A Service Provider responding to a SCIM request has a User with none of the fields in the Enterprise Extension set.  Based on RFC 7643 Section 3, the "schemas" attribute is "used to indicate the namespaces of the SCIM schemas that define the attributes present in the current JSON structure."  As there are no Enterprise Extension attributes present, the extension schema urn would not be included.  However, later in the same paragraph it says that it, "MUST include a non-empty array with value(s) of the URIs supported (emphasis mine) by that representation."

Section 3.3 is likewise not helpful in clarifying, as I am reading "Each value in the "schemas" attribute indicates additive schema that MAY exist in a SCIM resource representation." as being indicative of the particular representation/response, not the service provider as a whole.  And in Section 6 it says that including the extensions in the Resource Type schema is optional.

This comes up because we've identified an Identity Provider that will not add the extension and its attributes if the extension isn't already in the user when performing a GET.  It will, however, include the extension on net-new user creation or update it if already present.  Okta and Azure have no issue with seeing a User object without the Enterprise Extension and then adding one if they want to set one of those fields.  The library we're using likewise doesn't include the schema if it's not present in the User.  This has us reviewing our interpretation of the specification.

So for a SCIM response where all the fields in an extension do not exist, is it correct to send just the root schema, include the extension schema in the "schemas" attribute, or include the extension schema in the "schemas" attribute and an empty extension attribute/object?

Sample objects:

-- No values --
{
  "schemas":
    ["urn:ietf:params:scim:schemas:core:2.0:User"],
  "id": "2819c223-7f76-453a-919d-413861904646",
  "externalId": "701984",
  "userName": "bjensen@example.com<mailto:bjensen@example.com>",
  "emails": [
    {
      "value": "bjensen@example.com<mailto:bjensen@example.com>",
      "type": "work",
      "primary": true
    }
  ],
  "userType": "Employee",
  "title": "Tour Guide",
  "active":true,
  "meta": {
    "resourceType": "User",
    "created": "2010-01-23T04:56:22Z",
    "lastModified": "2011-05-13T04:42:34Z",
    "version": "W\/\"3694e05e9dff591\"",
    "location":
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Fv2%2FUsers%2F2819c223-7f76-453a-919d-413861904646&data=05%7C01%7Cdanny.zollner%40microsoft.com%7Ca40158f6408c4669e01108dab3876be8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638019691494951041%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=fmk9GAxu6%2FFZr6VQ%2F5NihrHbeO3UVBhziJ4%2FEl1UW00%3D&reserved=0>"
  }
}

-- Schema but no Object --
{
  "schemas":
    ["urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
  "id": "2819c223-7f76-453a-919d-413861904646",
  "externalId": "701984",
  "userName": "bjensen@example.com<mailto:bjensen@example.com>",
  "emails": [
    {
      "value": "bjensen@example.com<mailto:bjensen@example.com>",
      "type": "work",
      "primary": true
    }
  ],
  "userType": "Employee",
  "title": "Tour Guide",
  "active":true,
  "meta": {
    "resourceType": "User",
    "created": "2010-01-23T04:56:22Z",
    "lastModified": "2011-05-13T04:42:34Z",
    "version": "W\/\"3694e05e9dff591\"",
    "location":
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Fv2%2FUsers%2F2819c223-7f76-453a-919d-413861904646&data=05%7C01%7Cdanny.zollner%40microsoft.com%7Ca40158f6408c4669e01108dab3876be8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638019691494951041%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=fmk9GAxu6%2FFZr6VQ%2F5NihrHbeO3UVBhziJ4%2FEl1UW00%3D&reserved=0>"
  }
}

-- Empty object present --
{
  "schemas":
    ["urn:ietf:params:scim:schemas:core:2.0:User",
      "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
  "id": "2819c223-7f76-453a-919d-413861904646",
  "externalId": "701984",
  "userName": "bjensen@example.com<mailto:bjensen@example.com>",
  "emails": [
    {
      "value": "bjensen@example.com<mailto:bjensen@example.com>",
      "type": "work",
      "primary": true
    }
  ],
  "userType": "Employee",
  "title": "Tour Guide",
  "active":true,
  "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {},
  "meta": {
    "resourceType": "User",
    "created": "2010-01-23T04:56:22Z",
    "lastModified": "2011-05-13T04:42:34Z",
    "version": "W\/\"3694e05e9dff591\"",
    "location":
"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fexample.com%2Fv2%2FUsers%2F2819c223-7f76-453a-919d-413861904646&data=05%7C01%7Cdanny.zollner%40microsoft.com%7Ca40158f6408c4669e01108dab3876be8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638019691494951041%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=fmk9GAxu6%2FFZr6VQ%2F5NihrHbeO3UVBhziJ4%2FEl1UW00%3D&reserved=0>"
  }
}

--
Chad Vincent (he/him) | Software Engineer, Senior - CrashPlan
chad.vincent@crashplan.com<mailto:chad.vincent@crashplan.com>
400 S 4th St Suite 410 PMB 31083 Minneapolis, MN 55415-1419

_______________________________________________
scim mailing list
scim@ietf.org<mailto:scim@ietf.org>
https://www.ietf.org/mailman/listinfo/scim