Re: [Id-event] Dealing with issuer conflict

Marius Scurtescu <mscurtescu@google.com> Thu, 18 May 2017 20:17 UTC

Return-Path: <mscurtescu@google.com>
X-Original-To: id-event@ietfa.amsl.com
Delivered-To: id-event@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 183CF12E3AE for <id-event@ietfa.amsl.com>; Thu, 18 May 2017 13:17:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[AC_DIV_BONANZA=0.001, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 cbIm7Ql3Q2CH for <id-event@ietfa.amsl.com>; Thu, 18 May 2017 13:16:58 -0700 (PDT)
Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B3778129420 for <id-event@ietf.org>; Thu, 18 May 2017 13:11:26 -0700 (PDT)
Received: by mail-io0-x22d.google.com with SMTP id k91so35805456ioi.1 for <id-event@ietf.org>; Thu, 18 May 2017 13:11:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZFhsqjG0lYxl+kTsWoPWfxeRWkQt9HSFyygeIuXvYbc=; b=NC6fFvzH6EC42n8QYB8iHdhTmhGA/DznF7SwAUQdP5cKZ3TVyaVQhBIHFZNFDBJ+D2 fuGohJKvTa8jA8FwPaw4WOhKj94S4JZFmhSnbFmzd/WhOJfj3fwp0UKPNKZEG1HmYJhG D7IB8Cbe3LYGUUH+KeNPbxZz2BcXWZJBZKSXD5Gs/6NBohde+dSnSnpl/NdBrPP16gq/ 1eLtjFozPGXo0ePVQ81tb9zAiZVcBozgYRHYtcsPba57NFjSwdAXur/MZzDiIrKte76E HyVjBOHVbzGPfUwQErtui6acoqTO2UtERd8VU+mzew9AMDuRSTNcKXB9JwaRGs++Ev7C hN6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZFhsqjG0lYxl+kTsWoPWfxeRWkQt9HSFyygeIuXvYbc=; b=TS88mX/llZQpc8An0WHqJRjYZ0zrOrzMsYQzZEZrc76HHg5j2hMQcunoWFbDo7C2Df e9YxV1TTOdkCZb7X0mQbt9Vc3r0GjQMb7sK1lfFvrtkOL4bqDAjY8ex6GWAxUp5lxghF c37vNbdSZ/VGpwobgCgSl6UOVPe0WoPBuz5X5+00v3ucEQxwGg2fIgGomyDq1f2UGb+m mwqCKIpBSNWU+8S3cGHjAJTz80Acdzw0Zl8/UuSZrQH8xdCttF06uP8TLV6fjy4sC+7D t1+p6M6NoLEtm4lk5yLSRkv/uTCASdfxmm2A8q/IWG88Ood/mgy+s0Up5tJfAbDmQx99 riLQ==
X-Gm-Message-State: AODbwcAWe7Qk8mSgubYl/6bTg1qQrn0qidn4b2QSoHuC7flJPX8jfpYg v+A9EbAC14GdqfnQ80OxclIYeOTA49Qq
X-Received: by 10.107.6.27 with SMTP id 27mr6446978iog.53.1495138285809; Thu, 18 May 2017 13:11:25 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.107.136.77 with HTTP; Thu, 18 May 2017 13:11:05 -0700 (PDT)
In-Reply-To: <9342926E-FC34-45E4-919D-FB61FE8EB6A3@oracle.com>
References: <D1129EE9-8D49-4262-A569-FF373490EB85@oracle.com> <CAD9ie-unodo_BgMdH-iT64U6n7A4H_kEVOLCViWqDuLfRSRgSg@mail.gmail.com> <262D32B6-940E-4B96-9981-079A5443ED3E@oracle.com> <CY4PR21MB0504CBB636CAD1E33158997DF5E40@CY4PR21MB0504.namprd21.prod.outlook.com> <74177700-9959-4F07-83E3-F3B750CAC9B8@oracle.com> <CY4PR21MB0504BE77665A866FF1960E58F5E40@CY4PR21MB0504.namprd21.prod.outlook.com> <9342926E-FC34-45E4-919D-FB61FE8EB6A3@oracle.com>
From: Marius Scurtescu <mscurtescu@google.com>
Date: Thu, 18 May 2017 13:11:05 -0700
Message-ID: <CAGdjJpJQJYwJtCXn30PkqRMf-9M1PgdZw1nr18GmaQe+G6h3Bw@mail.gmail.com>
To: "Phil Hunt (IDM)" <phil.hunt@oracle.com>
Cc: Mike Jones <Michael.Jones@microsoft.com>, ID Events Mailing List <id-event@ietf.org>, Dick Hardt <dick.hardt@gmail.com>
Content-Type: multipart/alternative; boundary="001a113ee7d26acc1e054fd2024f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/id-event/DktH8uCMva66Yo_5wY4cVJQRdf0>
Subject: Re: [Id-event] Dealing with issuer conflict
X-BeenThere: id-event@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "A mailing list to discuss the potential solution for a common identity event messaging format and distribution system." <id-event.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/id-event>, <mailto:id-event-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/id-event/>
List-Post: <mailto:id-event@ietf.org>
List-Help: <mailto:id-event-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/id-event>, <mailto:id-event-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 May 2017 20:17:02 -0000

We also have the open issue of SETs being confused for Id Tokens or access
tokens.

Pushing the iss+sub pair always down to the event level, and leaving only
an iss at the top level solves both problems.

The top level iss is the issuer of the SET and provides context for the SET
signature.

The event level iss provides context for event level sub.

There is no top level sub, this eliminates any Id Token or access token
confusion possibility.

The only drawback I can see is the extra verbosity in case multiple events
are in one SET. Also, the top level iss and event level iss will probably
be the same often for SETs issued by an IdP, but they don't have to. But I
don't see this as a big problem.

This is the alternative I am referring to:
{
  "iss": "https://exampleretail.store.com",
  "aud": ["connect.myidp.com"],
  "iat": 1471566154,
  "jti": "bWJq",
  "events": {
    "http://schemas.openid.net/risc/event-type/account-deleted": {
      "iss”:”connect.myidp.com”
      "sub": "248289761001",
    }
  }
}




Marius

On Thu, May 18, 2017 at 12:34 PM, Phil Hunt (IDM) <phil.hunt@oracle.com>
wrote:

> Thanks Mike.
>
> I think we disagree.
>
> The concern I have is that most implementers will have to write code that
> always checks for the absence of a duplicate issuer claim because it
> changes the meaning of subject.
>
> This strikes me as complexity that needs to be dealt with in the core
> spec. It stems from our SecToken's use of JWT and its popular use today.
>
> If every profiling spec can do this differently requiring different
> parsers whats the point of secevents?
>
> Phil
>
> On May 18, 2017, at 12:08 PM, Mike Jones <Michael.Jones@microsoft.com>
> wrote:
>
> Most of what you’re talking about seems to me to be decisions that can be
> made by particular event definitions or event family definitions.  I have
> no problem with particular events or event families employing some of the
> strategies that you’re describing.  The SET spec already facilitates that.
>
>
>
> But per previous discussions, we shouldn’t be making restrictions in the
> SET spec that limit its applicability by making restrictions on claims
> usage that will only work for some event use cases and will rule out
> others.  We should hold to the bright-line test that event definitions
> define what claims are included in SETS (other than the “events” claim
> itself) and how they’re used.  Intruding on that will unnecessarily limit
> the applicability of SETs.
>
>
>
>                                                                 -- Mike
>
>
>
> *From:* Phil Hunt [mailto:phil.hunt@oracle.com <phil.hunt@oracle.com>]
> *Sent:* Thursday, May 18, 2017 11:41 AM
> *To:* Mike Jones <Michael.Jones@microsoft.com>
> *Cc:* Dick Hardt <dick.hardt@gmail.com>; ID Events Mailing List <
> id-event@ietf.org>
>
> *Subject:* Re: [Id-event] Dealing with issuer conflict
>
>
>
> Mike,
>
>
>
> I’m not sure we’re on the same page here. My impression is this is still
> on the outstanding list.
>
>
>
> Let’s look at some example cases:
>
>
>
> For example, if a relying party (e.g. retail store) wants to notify an IDP
> that the user has been deleted…
>
>
>
> Currently in the draft:
>
> When issued by an OpenID Connect issuer:
>
> {
>
>   "iss": "https://connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=https-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=kJ5Mfn6i39lorLgbbkC40kBC-Hfkom_nHJw9DvCTou8&e=>",
>
>   "sub": "248289761001",
>
>   "aud": ["connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>"],
>
>   "iat": 1471566154,
>
>   "jti": "bWJq",
>
>   "events": {
>
>     "*http://schemas.openid.net/risc/event-type/account-deleted <https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.openid.net_risc_event-2Dtype_account-2Ddeleted&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=QHxJy7zqDzcRGhmcGhatA2k15bYULPODbW71Ztc4Kx4&e=>*": {}
>
>   }
>
> }
>
>
>
> BUT, when issued by a party other than the issuer of the subject:
>
> {
>
>   "iss": "https://exampleretail.store.com <https://urldefense.proofpoint.com/v2/url?u=https-3A__exampleretail.store.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=YZax0bYIy8_J3nc40E5kAMdsqQpui6Slj4YZYqI7bFM&e=>",
>
>   "sub": "248289761001",
>
>   "aud": ["connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>"],
>
>   "iat": 1471566154,
>
>   "jti": "bWJq",
>
>   "events": {
>
>     "*http://schemas.openid.net/risc/ <https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.openid.net_risc_&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JVaG5ee6BYf27emDyvsG749Ej4XX9d2FcKveRJ20ww8&e=>event-type/account-deleted*": {
>
>       "iss”:"connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>”
>
>     }
>
>   }
>
> }
>
>
>
> If you are writing code, if you agree that the OP issues a lot of events,
> you end up having to check that there’s no embedded “iss” present before
> you can assume the issuer of the subject is the same as that of the SET
> token.  This strikes me as very complex.
>
>
>
> Regarding your assertion:
>
> Any “sub” at the top-level (if any) should be associated with the “iss” at
> the top-level, which is always the event issuer.
>
>
>
> May be you are thinking that we should be solving this by always issuing
> embedded iss and sub (Alternative 1):
>
> {
>
>   "iss": "https://exampleretail.store.com <https://urldefense.proofpoint.com/v2/url?u=https-3A__exampleretail.store.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=YZax0bYIy8_J3nc40E5kAMdsqQpui6Slj4YZYqI7bFM&e=>",
>
>   "aud": ["connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>"],
>
>   "iat": 1471566154,
>
>   "jti": "bWJq",
>
>   "events": {
>
>     "*http://schemas.openid.net/risc/event-type/account-deleted <https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.openid.net_risc_event-2Dtype_account-2Ddeleted&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=QHxJy7zqDzcRGhmcGhatA2k15bYULPODbW71Ztc4Kx4&e=>*": {
>
>       "iss”:”connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>”
>
>       "sub": "248289761001",
>
>     }
>
>   }
>
> }
>
>
>
> OR, Alternative 2:
>
> {
>
>   "iss": "https://exampleretail.store.com <https://urldefense.proofpoint.com/v2/url?u=https-3A__exampleretail.store.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=YZax0bYIy8_J3nc40E5kAMdsqQpui6Slj4YZYqI7bFM&e=>",
>
>   "sub": "248289761001",
>
>   "aud": ["connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>"],
>
>   "iat": 1471566154,
>
>   "jti": “bWJq"
>
>   “subIss”:”connect.myidp.com <https://urldefense.proofpoint.com/v2/url?u=http-3A__connect.myidp.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=JcMmHMLfNI_3lsrNceb6VM6dKMbZBX7-Urd_E6grwkg&e=>”,
>
>   "events": {
>
>     "*http://schemas.openid.net/risc/event-type/account-deleted <https://urldefense.proofpoint.com/v2/url?u=http-3A__schemas.openid.net_risc_event-2Dtype_account-2Ddeleted&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=QHxJy7zqDzcRGhmcGhatA2k15bYULPODbW71Ztc4Kx4&e=>*": {}
>
>   }
>
> }
>
>
>
> I can see pros and cons for either. I like option 1 because it also makes
> the SET different from ID Tokens and Access Tokens.
>
>
>
> Option 2 is nice because most SETs we’ve been talking about just have an
> event type and a subject and no claims.
>
>
>
> The best way to define this is to enforce that sub may only be used at the
> top level if it is globally identifiable (e.g. such as in the case of SCIM
> URIs).
>
>
>
> Phil
>
>
>
> Oracle Corporation, Identity Cloud Services Architect & Standards
>
> @independentid
>
> www.independentid.com
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.independentid.com&d=DwMGaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=ZRxoy6LboCUVOSdvaKuUa2q0bYlGv-xBKQr_PYRO1Hg&s=1rw9A2hB-RR82vYgRNzhLmNcUkpJ6uyq4PFNDImb-78&e=>
>
> phil.hunt@oracle.com
>
>
>
> On May 18, 2017, at 10:40 AM, Mike Jones <Michael.Jones@microsoft.com>
> wrote:
>
>
>
> I believe that the solution already discussed is the best one.  If the
> event issuer is different than a logical issuer associated with the event
> subject, then put the logical “iss” and “sub” values inside the event.  Any
> “sub” at the top-level (if any) should be associated with the “iss” at the
> top-level, which is always the event issuer.
>
>
>
> Any proposal that requires duplicating information, such as requiring
> “subIss” even when it’s always identical to “iss”, is not a great
> architectural choice, since it creates unnecessary error conditions that
> would not otherwise be possible.  (How should implementations handle the
> case where two values are required to match but don’t?)
>
>
>
>                                                                 -- Mike
>
>
>
> *From:* Id-event [mailto:id-event-bounces@ietf.org
> <id-event-bounces@ietf.org>] *On Behalf Of *Phil Hunt (IDM)
> *Sent:* Thursday, May 18, 2017 7:31 AM
> *To:* Dick Hardt <dick.hardt@gmail.com>
> *Cc:* ID Events Mailing List <id-event@ietf.org>
> *Subject:* Re: [Id-event] Dealing with issuer conflict
>
>
>
> ??
>
>
>
> Happens in any case where sub is not globally identifiable.
>
>
>
> In Connect, since sub is not uniquely identified, the iss for the sub must
> be included. This creates a conflict if the issuer of the SET is not the
> issuer of the subject.
>
>
>
> Resolving the iss conflict has been on the list of issues since chicago.
>
>
>
> In RISC we were discussing account close events. I am assume one of the
> scenarios is RPs will notify IDPs when they close an account. They must use
> an iss not associated with sub. As things stand now, they will have to
> assert the extra iss value in their payload---which for most events is
> complex to parse since their are no other extra claims.
>
>
>
> Phil
>
>
> On May 18, 2017, at 6:36 AM, Dick Hardt <dick.hardt@gmail.com> wrote:
>
> Phil, would you clarify the use case and the requirement to ensure
> everyone on the list is aligned? Thanks
>
>
>
> On Wed, May 17, 2017 at 9:45 PM Phil Hunt (IDM) <phil.hunt@oracle.com>
> wrote:
>
> In many cases where we are talking about events (eg risc) there is no need
> for extra claims other than the event type itself.
>
> It occurs to me that in the case of RP issued events the current sectoken
> format requires an embedded iss to deal with the conflict with the set
> issuer. It seems to add a lot of complication for most events.
>
> What if we defined a new sectoken top level attribute 'subIss' to mean
> "subject issuer" and keep iss reserved for the SET issuer.
>
> I would suggest this as a recommended attribute even when iss and subIss
> are the same for parsing consistency.
>
> Thoughts?
>
> Phil
> _______________________________________________
> Id-event mailing list
> Id-event@ietf.org
> https://www.ietf.org/mailman/listinfo/id-event
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_id-2Devent&d=DwMFaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=p1Vsd1Hb7BX87sV4x9MhtsGbORcuiacHxujwThSnWh4&s=ATYzOXXGto5afit3OgTjh19KczxKCvaBwC7ftofHMrs&e=>
>
> --
>
> Subscribe to the HARDTWARE
> <https://urldefense.proofpoint.com/v2/url?u=http-3A__hardtware.com_&d=DwMFaQ&c=RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=p1Vsd1Hb7BX87sV4x9MhtsGbORcuiacHxujwThSnWh4&s=NGbCAfBEl5TtskWdjjWOY2cQJA3Fsy9QvntPnstyIkc&e=>
>  mail list to learn about projects I am working on!
>
> _______________________________________________
> Id-event mailing list
> Id-event@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.
> ietf.org_mailman_listinfo_id-2Devent&d=DwICAg&c=
> RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=
> JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=
> p1Vsd1Hb7BX87sV4x9MhtsGbORcuiacHxujwThSnWh4&s=
> ATYzOXXGto5afit3OgTjh19KczxKCvaBwC7ftofHMrs&e=
>
> _______________________________________________
> Id-event mailing list
> Id-event@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.
> ietf.org_mailman_listinfo_id-2Devent&d=DwICAg&c=
> RoP1YumCXCgaWHvlZYR8PQcxBKCX5YTpkKY057SbK10&r=
> JBm5biRrKugCH0FkITSeGJxPEivzjWwlNKe4C_lLIGk&m=
> 8LfCYox0y3ghN8YAXLrAb5zfUt5rVD8vbwKwvw8-Rjk&s=gv4-yN8LDVir82WEWzix61-
> YzkrfquEPKMk_TtLylrw&e=
>
>
>
>
> _______________________________________________
> Id-event mailing list
> Id-event@ietf.org
> https://www.ietf.org/mailman/listinfo/id-event
>
>