Re: [scim] SCIM Events

Phillip Hunt <phil.hunt@independentid.com> Mon, 15 January 2024 16:32 UTC

Return-Path: <phil.hunt@independentid.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 06044C14F614 for <scim@ietfa.amsl.com>; Mon, 15 Jan 2024 08:32:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.011
X-Spam-Level:
X-Spam-Status: No, score=-6.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.1, MIME_HTML_ONLY_MULTI=0.001, MIME_QP_LONG_LINE=0.001, MPART_ALT_DIFF=0.79, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=independentid-com.20230601.gappssmtp.com
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 2puuR9ArH03h for <scim@ietfa.amsl.com>; Mon, 15 Jan 2024 08:31:56 -0800 (PST)
Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA981C14F60E for <scim@ietf.org>; Mon, 15 Jan 2024 08:31:56 -0800 (PST)
Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-28c0d8dd88bso5895303a91.2 for <scim@ietf.org>; Mon, 15 Jan 2024 08:31:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=independentid-com.20230601.gappssmtp.com; s=20230601; t=1705336316; x=1705941116; darn=ietf.org; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:from:to:cc:subject:date:message-id :reply-to; bh=tHawNSxbgaUh4QNgzWF70NbkEP65CfoynTAIn0DtgEk=; b=tTsZpjWzFpmtGAHOp6EdHOiGPO2/kpnfI0JPrU6dO1cDE/8HCyzjBJQsWOF0yxXV84 gpNyiPMAmz5E1lMjswc4cNnD+VrZiNAA0AuYaBPcLEX9n2gyTsxfrIQhACOwkxFPFoQX efNG66jEAsfz3VHGl/pqQzXKA4p4XovqGD4WAD2I4bvHwIlMyT4JcUNQbjZAH49SCEum khIHT1gr+bdXJkmBPC0zQrpddZXnRXXdUDurLxdNSb7VQH43F9ZD3d1RyXlWCeEcfl+F OIkyxk4hjKgmejWfv7FyZdFGKje5ZOuwdR9/2yczKDCbzIZzzFRETOJpjLi3KZoB9qN6 7lmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705336316; x=1705941116; h=to:in-reply-to:cc:references:message-id:date:subject:mime-version :from:content-transfer-encoding:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tHawNSxbgaUh4QNgzWF70NbkEP65CfoynTAIn0DtgEk=; b=adWNsFGx8lEedvShHE6zzatXX/90mC4lsuQgoT2RKNkJIVk7HOc5W4fvaBN5qh4z9j 7a8bk7JEvXWqqUzKkgvL1aI62NRZgfNNY3VEoeUMaLH65UR0EbNWINfH1nMyGyZerjPM 2p3p97qqBpl7RTwXUfZSwt+D5OvuN8EkDFVj+Ui7Rr+BN76V5cRa/4e+uuGKgfdRkdAr eQIOfWRqedlDFtzpvFVcpXdGA1ei/g+vwsW3s4Oa3arIU7NINAy3wvCblmQuiVHGd9kN Jk7/8a6M88fB4K4pT2f2EIduazD5Q27aWNjzau0giG4lcOsxRoD2O842CGIkJTzQ9pc7 sN+A==
X-Gm-Message-State: AOJu0Yx1yDYelhsh4wjONX3wrFecbjaEw0lpHWSNSHQ6WetHp1SQhTvT iVwtuTXio/ULgSHOYRJEJubPjuEL54ecXw==
X-Google-Smtp-Source: AGHT+IFxACgSBqkBH4LRhHLLvxKLdbcSTrnGYNekPA7lEhKU2D8H8bjQBvWPrstBA8lOw0oyqhtbvQ==
X-Received: by 2002:a17:90b:1d81:b0:28c:ef2b:d58 with SMTP id pf1-20020a17090b1d8100b0028cef2b0d58mr2796236pjb.69.1705336315849; Mon, 15 Jan 2024 08:31:55 -0800 (PST)
Received: from smtpclient.apple ([2001:569:7a96:c000:9d21:84f3:36f0:9c92]) by smtp.gmail.com with ESMTPSA id sw7-20020a17090b2c8700b0028c89122f8asm9909920pjb.6.2024.01.15.08.31.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Jan 2024 08:31:55 -0800 (PST)
Content-Type: multipart/alternative; boundary="Apple-Mail-01E45BEC-2358-4BAE-AA5B-F79105545727"
Content-Transfer-Encoding: 7bit
From: Phillip Hunt <phil.hunt@independentid.com>
Mime-Version: 1.0 (1.0)
Date: Mon, 15 Jan 2024 08:31:44 -0800
Message-Id: <0400E2E5-700D-45DF-BDBB-B987758EB26D@independentid.com>
References: <MW3PR11MB47300D695A2581BCC59F025DCD6C2@MW3PR11MB4730.namprd11.prod.outlook.com>
Cc: "Paulo Jorge N. Correia (paucorre)" <paucorre=40cisco.com@dmarc.ietf.org>, SCIM WG <scim@ietf.org>
In-Reply-To: <MW3PR11MB47300D695A2581BCC59F025DCD6C2@MW3PR11MB4730.namprd11.prod.outlook.com>
To: "Paulo Jorge N. Correia (paucorre)" <paucorre@cisco.com>
X-Mailer: iPhone Mail (21B101)
Archived-At: <https://mailarchive.ietf.org/arch/msg/scim/zhGoBJO2mtJ5gzLU4LUUH-2jgn8>
Subject: Re: [scim] SCIM Events
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: Mon, 15 Jan 2024 16:32:01 -0000

Paulo,

I am sorry. I am not sure what the confusion is.  For a scim create event, the data returned is the same as in normal scim create response. 

Scim client x issues scim create request (per 7644) to a scim service provider (y).  The request is processed and result is returned as normal.   If the server supports events it then generates/publishes a scim create event for registered receivers (z) that notifies the receivers of the change.  Presumably the publisher just copies the json attributes from the originating transaction to create the event. 

With minor exceptions detailed the event payloads correspond to normal scim schema and protocol formats. 

Phil

On Jan 15, 2024, at 1:21 AM, Paulo Jorge N. Correia (paucorre) <paucorre@cisco.com> wrote:



Phil,

Fully understand that the action in the receiver is not mandatory and the receiver does whatever he need to do with the information provided by the publisher/router, that still not address the point that I’m raising.

In this draft you are describing the events for provision (urn:ietf:params:SCIM:event:prov) and there can’t be any action or not if you don’t have the right way of matching objects between the publisher and receiver.

 

And I will say it again if you think that doesn’t make sense because it is logical to say that the data provided need to follow the rules of the Schema stated in the data section, I think it is perfectly ok, just saying that I struggle a little bot to figure out how would the publisher and receiver would figure out what object they were talking about if an action would be required.

 

Thank you,

Paulo

 

 

From: scim <scim-bounces@ietf.org> On Behalf Of Phillip Hunt
Sent: Sunday, January 14, 2024 8:58 PM
To: Paulo Jorge N. Correia (paucorre) <paucorre@cisco.com>
Cc: Paulo Jorge N. Correia (paucorre) <paucorre=40cisco.com@dmarc.ietf.org>; SCIM WG <scim@ietf.org>
Subject: Re: [scim] SCIM Events

 

It seems like you may be treating events like a normal api service call. A party issuing commands to another. 

 

Events are statements of facts regarding a state change that one party gives another. It would contradict 8417 to prescribe command actions on what a receiver must do.  

 

Event systems represent an inversion of control compared to typical http services. The receiver decides action based on a state change notice at the scim provider. 

 

SCIM complements scim protocol by keeping control in a client domain.

 

For example a change originates in AD (ldap) causes a scim client in the AD domain issues scim protocol requests to the scim provider domain. 

 

A change occurring in the scim provider domain is sent as a notice back to the  AD domain. The AD domain then decides what to do.  In both cases the AD domain retains “control” of its domain. 

 

Phil



On Jan 14, 2024, at 12:35 PM, Paulo Jorge N. Correia (paucorre) <paucorre@cisco.com> wrote:



Phil,

No doubt on the notice mode.

 

In the full mode still don’t understand how it would work………….. if we clearly don’t say that is mandatory to follow the rules of the schema declared in the data section.

 

Thank you,

Paulo

 

From: scim <scim-bounces@ietf.org> On Behalf Of Phillip Hunt
Sent: Sunday, January 14, 2024 8:13 PM
To: Paulo Jorge N. Correia (paucorre) <paucorre=40cisco.com@dmarc.ietf.org>
Cc: SCIM WG <scim@ietf.org>
Subject: Re: [scim] SCIM Events

 

In notice mode the receiver would need to call back to obtain the full information (eg by doing a scim get).  The message would just be a trigger to a remote scim client. 

 

In full mode, the event mirrors scim protocol so the receiver can act directly as if it were a scim request.  I2scim.io does this in order to replicate between nodes. 

 

Phil




On Jan 14, 2024, at 11:42 AM, Paulo Jorge N. Correia (paucorre) <paucorre=40cisco.com@dmarc.ietf.org> wrote:



Hi Phil,

As promised in the last IETF meeting  I’m reading the last version of the SCIM event.

 

I’m struggling with 2.4.1 where the Event Provision (EP) or Event Router (ER)  is going to create an SCIM event feed for provision, and I’m assuming that the Event Subscriber (ES) doesn’t has that user yet, how would this work if we don’t mandate the userName attribute in the data event payload attribute, in fact I would argue that similar to RFC 7863 this needs to be require for all the operations.

 

Or at this point it is irrelevant and there should be a statement saying that the data event payload should use the rules defined the schema defined in the schemas attribute in the data section, this will cover [RFC7633] but will cover others schemas like the work that Elliot is doing with devices.

 

Am I missing something ?

 

Thank you,

Paulo

 

From: scim <scim-bounces@ietf.org> On Behalf Of Saxe, Dean
Sent: Monday, December 11, 2023 11:40 PM
To: Phillip Hunt <phil.hunt@independentid.com>; SCIM WG <scim@ietf.org>
Subject: Re: [scim] SCIM Events Pull Request #20 - Unsecured Tokens

 

Thanks for raising this, Phil.

 

Intercepting proxies are in wide use, as is TLS termination that occurs in front of the targeted destination.  In both of these scenarios, unencrypted SETs may be observed by the TLS terminator, the data may be logged, and thus available to unauthorized parties. 

 

I see two specific issues here.  First, disclosure of information is a risk with any sort of intercepting proxy or TLS termination if the SET is unencrypted.  If the content of the SET is not sufficiently sensitive as to be a risk if disclosed, this is not a problem.  However, for some data such as PII this is a challenge that needs to be solved.  Second, modification of the SET in flight is a risk that is sufficiently solved by signing. 

 

Perhaps the focus should be on the security considerations section and the handling of unencrypted SETs when terminating TLS proxies may be in use.  The risk can be called out, a solution of using JWE proposed, and the attendant risks with JWEs as you outline below described.  Implementers must then make a decision about the handling of PII in SETs.

 

I’m going to reach out to some folks deep in the SSF world to get their feedback, as well.  I’ll post any relevant responses to the list.

 

Thanks,

-dhs

 

--

Dean H. Saxe, https://idpro.org/cidpro/" title="https://idpro.org/cidpro/" rel="nofollow">CIDPRO (he/him)

Senior Security Engineer, AWS Identity Security Team | Amazon Web Services (AWS)

E: deansaxe@amazon.com | M: 206-659-7293

 

From: scim <scim-bounces@ietf.org> on behalf of Phillip Hunt <phil.hunt@independentid.com>
Date: Sunday, December 10, 2023 at 11:13 AM
To: SCIM WG <scim@ietf.org>
Subject: [EXTERNAL] [scim] SCIM Events Pull Request #20 - Unsecured Tokens

 

CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.

 

I am just bringing to the group an issue that Dean raised in PR #20 (https://github.com/ietf-scim-wg/draft-ietf-scim-events/pull/20" rel="nofollow">https://github.com/ietf-scim-wg/draft-ietf-scim-events/pull/20) on the SCIM Events Github site.

 

This change occures in Section 3.1 which provides advice on use of encryption and signing (original below).  Any new proposals from the group that address both Dean and my concerns would be greatly appreciated.  Please reply to this email thread so we can record the decision.

 

Dean’s request is to change the paragraph under “Unsecured" to:

Unsecured tokens SHALL NOT be used. 

The justification in the PR was:

Updated language to prevent the use of unencrypted, unsigned tokens in this profile. The concept of "inside" and "outside" networks is no longer sufficient to consider whether transmitting over a TLS-only protocol is sufficient for securing such information.

Supporting such tokens is likely to lead to implementations that leak sensitive information and / or man in the middle interception/modification of SETs.

 

Based on this assumption (that TLS is unsuffient) we would have to also disallow the use of “signed” tokens as JWS does not provide confidentiality. Note that in many cases because SETs may be processed through gateways (e.g. aggregating events from a cluster), using JWE may become challenging as the iss and aud values would not be accessible.  Using JWE effectively forces point-to-point use only which again may cause the receiver to have to forward the unencrypted token on to its own internal endpoints. 

 

It’s my belief that TLS is sufficient in most cases. MITM is not a threat except if administrative systems are compromised or faulty. To the contrary, RFC8935/8936 talks about exchanging events through fixed endpoints. I believe editorially it would be out of scope for this spec to imagine the number of subsequent poorly security or designed systems that might lead to a mis-configuration.

 

AFAIK, most OpenID Security Signals Framework implementations currently do not support signed or encrypted SETs (though i2gosignals does). These unencrypted systems are running in production now.

 

While I do generally agree using unencrypted tokens is a bad practice, saying SHALL NOT will likely be ignored. Editorially my goal is to give guidance that in the absence of SET signatures, what the alternative requirements should be.

 

I am proposing the following revised text for the “Unsecured Token” section:

Per Section 6 <xref target="RFC7519"/>, tokens MAY be generated with <tt>{"alg":"none"}</tt>.
This mode potentially speeds up processing by avoiding what would be redundant cryptographic
processing. An example would be replication scenarios within a cluster (e.g. Kubernetes).
Unencrypted tokens MUST be transferred over mutually-authenticated TLS layer encryption and
SHOULD only be used in restricted network environments.

 

Cheers,

 

Phil

 

Original text:

3.1.  Security Event Token Signing and Encryption

   This specification uses Security Event Tokens as the message format
   for SCIM Events.  As SETs are based on JWT tokens [RFC7519], they can
   be transmitted insecurely, signed, or encrypted.  For more
   information see the JWT Cookbook specification [RFC7520] for
   examples.  The decision on whether to use JWS and JWE depends on
   operational considerations.  For each SCIM Feed relationship, it is
   up to deployers to decide on signing, encryption and algorithm
   requirements.  Deployers SHOULD be aware that too much emphasis on
   turning on every possible encryption feature may cause operational
   performance to suffer.  Deployers MUST weigh the security trade-offs
   of up-to-date SCIM services, vs. the potential information loss of an
   event.

   Unsecured
      Per Section 6 [RFC7519], tokens MAY be generated with
      {"alg":"none"}.  This mode speeds up processing and is best used
      in DBR scenarios.  Unencrypted tokens MUST be transferred over
      authenticated TLS layer encryption and SHOULD only be used in a
      restricted network environment.

   Signed
      JWS ([RFC7515]) signed SETs are useful when it is important to be
      able to verify the issuer of a SET as valid.  In addition, some



Hunt, et al.               Expires 24 May 2024                 [Page 27]
?
Internet-Draft           draft-ietf-scim-events            November 2023


      systems MAY wish to validate the authenticity of the event in a
      review process which may occur at a later date.  While the content
      can be validated as originating from the correct issuer and is
      unmodified, the message contents remain unsecure.  Signed SETs
      MUST be transferred over encrypted transport.

   Encrypted
      JWE ([RFC7516]) are encrypted SETs and are useful when the
      transport mechanism is not fully secured (e.g. messages carried by
      a third party).  The use of JWEs ensures only the designated
      receiver can read the event and provides mutual authentication
      within the SET message itself.

 

 

 

 

 

_______________________________________________
scim mailing list
scim@ietf.org
https://www.ietf.org/mailman/listinfo/scim" rel="nofollow">https://www.ietf.org/mailman/listinfo/scim