Re: [Netconf] LC on subscribed-notifications-10

"Eric Voit (evoit)" <evoit@cisco.com> Wed, 14 March 2018 20:11 UTC

Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BE4F12D88E; Wed, 14 Mar 2018 13:11:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.531
X-Spam-Level:
X-Spam-Status: No, score=-14.531 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h-diiT9Ey2qe; Wed, 14 Mar 2018 13:11:52 -0700 (PDT)
Received: from alln-iport-3.cisco.com (alln-iport-3.cisco.com [173.37.142.90]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD2E912426E; Wed, 14 Mar 2018 13:11:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8100; q=dns/txt; s=iport; t=1521058311; x=1522267911; h=from:to:cc:subject:date:message-id:references: content-transfer-encoding:mime-version; bh=IeZ44Ky8hwXjKuKyAESBH81aR6u4mPZN2xdhWhnr49k=; b=J6a55vdUrNqZlxnXjfPSWkSGLDvIGwiF94jMSo2oXIPb7tXYKR9h2Nip K3oVnfBH2BQK/tLWMoOOIne+0KJnaIr3wceS6hQ2QAz0hkaajgtc6LDOp LGMndRJELGzh+PB/ngG5skykBuoqwsLXLKy65S39mWXSnoim5L6Y9Gw36 w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AQAQBhgala/5tdJa1eGQEBAQEBAQEBAQEBAQcBAQEBAYMfMWVwKAqDRooajXOCA4EWlDYUgX8KJYRrAhqDDCE0GAECAQEBAQEBAmsohSUBAQEBAyMRQwIMBAIBCBEEAQEBAgIIARoDAgICMBQBCAgCBAENBQiFEA+tdYImiGGCBwWBDYQhghSBVIFUgyCDHgKBMwELBwEHAh0QI4JOgmIEmlQJAoZEgwyHBIFth0aFMod2ggaHKQIREwGBKwEeOGFxcBWCfYIzHI4gd40cBQoYA4EHgRgBAQE
X-IronPort-AV: E=Sophos;i="5.48,306,1517875200"; d="scan'208";a="84249556"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by alln-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Mar 2018 20:11:51 +0000
Received: from XCH-RTP-006.cisco.com (xch-rtp-006.cisco.com [64.101.220.146]) by rcdn-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id w2EKBoR0031519 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 14 Mar 2018 20:11:50 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-006.cisco.com (64.101.220.146) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Wed, 14 Mar 2018 16:11:50 -0400
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1320.000; Wed, 14 Mar 2018 16:11:49 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, Martin Bjorklund <mbj@tail-f.com>
CC: "alex@clemm.org" <alex@clemm.org>, "Robert Wilton -X (rwilton - ENSOFT LIMITED at Cisco)" <rwilton@cisco.com>, "kwatsen@juniper.net" <kwatsen@juniper.net>, "netconf@ietf.org" <netconf@ietf.org>, "draft-ietf-netconf-subscribed-notifications@ietf.org" <draft-ietf-netconf-subscribed-notifications@ietf.org>
Thread-Topic: [Netconf] LC on subscribed-notifications-10
Thread-Index: AQHTuiDhP4UPxNeFY0CSJ8tCCoPN1aPM98TAgAK21ACAAAhYEIAAUPqA///MxoCAAGPMAP//wI7ggAAsTpA=
Date: Wed, 14 Mar 2018 20:11:49 +0000
Message-ID: <35a650e722954cafb2a406c407fd57b4@XCH-RTP-013.cisco.com>
References: <8d4f4193c6694fe387d284d7b74c9b09@XCH-RTP-013.cisco.com> <20180314.093900.1449292548839197417.mbj@tail-f.com> <379cfb19a5c64753a067a2ae42f65a82@XCH-RTP-013.cisco.com> <20180314.145841.72164558423482638.mbj@tail-f.com> <9b8cf6b9e6114e00800525db71505023@XCH-RTP-013.cisco.com> <CABCOCHSzcFg81LZPRhV5toN2x48AqbPk8CCt4Y-4B_GT1OrHkg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.228]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/l5cuM2Cns580T7KNwj8YMnGhFhM>
Subject: Re: [Netconf] LC on subscribed-notifications-10
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Mar 2018 20:11:57 -0000

Per below, updated text now at:
https://github.com/netconf-wg/rfc5277bis/blob/master/draft-ietf-netconf-subscribed-notifications-11.txt

Specifically:

Section 2.1.

   Access control permissions may be used to silently exclude event
   records from within a stream for which the subscriber has no read
   access.  As an example of how this might be accomplished, see
   [RFC6536bis] section 3.4.6.  Note that per Section 2.7 of this 
   document, subscription state change notifications are never 
   filtered out.

   If no access control permissions are in place for stream content,
   then a receiver MUST be allowed access to all the event records on
   the stream.


Also I modified the definition of:

          leaf excluded-notifications {
            type yang:counter64;
            config false;
            description
              "Operational data which provides the number of event
               records from a stream explicitly removed either via a 
               stream filter or an access control filter so that they 
               are not passed to a receiver.";
            }

It is likely sufficient to have a single counter here.  But if people would prefer independent counters for stream filter exclusions and access control exclusions, that can easily be included.

Eric


> -----Original Message-----
> From: Eric Voit (evoit)
> Sent: Wednesday, March 14, 2018 1:14 PM
> To: 'Andy Bierman' <andy@yumaworks.com>
> Cc: Martin Bjorklund <mbj@tail-f.com>; alex@clemm.org; Robert Wilton -X
> (rwilton - ENSOFT LIMITED at Cisco) <rwilton@cisco.com>;
> kwatsen@juniper.net; netconf@ietf.org; draft-ietf-netconf-subscribed-
> notifications@ietf.org
> Subject: RE: [Netconf] LC on subscribed-notifications-10
> 
> (Look for <Eric2>  trying to keep things legible for those using text only email
> clients)
> 
> From: Andy Bierman, March 14, 2018 12:53 PM
> 
> On Wed, Mar 14, 2018 at 8:35 AM, Eric Voit (evoit) <mailto:evoit@cisco.com>
> wrote:
> (reducing to the single open item, and adding Andy + Alex to the "to")
> 
> > From: Martin Bjorklund, March 14, 2018 9:59 AM
> >
> > Hi,
> >
> > "Eric Voit (evoit)" <mailto:evoit@cisco.com> wrote:
> > > Hi Martin,
> > >
> > > But for
> > > subscription to event streams, it is assumed that any event records
> > > placed on a stream permitted for that receiver is authorized content
> > > (just like RFC-5277).
> >
> > Hmm.  This is not how it is defined in RFC 5277:
> 
> Agree.   I should not have said "just like 5277".   More below.
> 
> >    After generation of the <notification> element, access control is
> >    applied by the server.  If a session does not have permission to
> >    receive the <notification>, then it is discarded for that session,
> >    and processing of the internal event is completed for that session.
> >
> > Also, NACM is designed to drop notifications that the client doesn't
> > have access to.
> 
> A few years ago during early discussions, Alex and I remember Andy asking that
> per receiver access control not be applied to traffic coming out of a
> stream.    We took that to mean that a receiver should get all the event records
> on a stream, without any per-notification filtering.  This is what drove the
> current text.
> 
> Per RFC-6536, section 3.4.6., the outgoing <notification> authorization is able
> to look at the notification event type, and if a receiver is authorized to receive
> the notification event type, then it is also authorized to receive any data it
> contains.
> 
> Reconsidering this, perhaps Alex and I interpreted Andy's intent wrong.  And
> Andy actually requested the current event type behavior which NACM can
> currently perform on the RFC-5277 NETCONF event stream, but no other
> filtering of event records beyond that.
> 
> I think the notification event type filtering is still applicable.
> 
> <Eric2>  Based on this, I will add the relevant RFC-5277 text into subscribed
> notifications.  Look for a link to a draft version on github shortly.  Will send link
> to this thread.
> </Eric2>
> 
> I remember some discussions about applying NACM to YANG Push
> subscriptions.
> Of course the client needs permission to receive <push-update> events.
> The issue for YP is that this is the only access control provided.
> 
> In order to support NACM for the contents of <push-update> events, the client
> MUST have permission to read every data node specified in the filters for a
> subscription. This is checked when the subscription is configured or activated.
> If a filter-ref filter is changed so this is no longer true, then the server MUST
> suspend or terminate the subscription.
> 
> IMO even this is quite an implementation burden, but less than having the
> server check NACM rules for every descendant node of every edited node for
> every <push-update>.
> 
> <Eric2> Agree that either is a valid method of achieving the requirements of
> yang-push.
> </Eric2>
> 
> Eric2
> 
> If that is the case, and this capability is desired by the WG, Alex and I would be
> happy to replicate the relevant text from RFC-5277 section 3.2 to draft-ietf-
> netconf-subscribed-notifications to cover this.
> 
> Thanks,
> Eric
> 
> Andy
> 
> 
> > > Effects like this are why the two drafts, as well as the YANG model
> > > targets and filters for datastores and to streams have been separated.
> > >
> > > > Your statement:
> > > >
> > > >   Access control is to the stream rather than the content.
> > > >
> > > > seems to imply that in order to subscribe to changes to the
> > > > datastore, you need full access to all nodes covered by the filter.
> > >
> > > As a stream and a datastore are different, hopefully my comment
> > > above clears this up.
> > >
> > > Eric
> > > > /martin
> >
> >
> > /martin