Re: [calsify] RFC7986 and EMAIL parameter
Michael Douglass <mikeadouglass@gmail.com> Wed, 17 February 2021 16:04 UTC
Return-Path: <mikeadouglass@gmail.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 3EA403A1B2D
for <calsify@ietfa.amsl.com>; Wed, 17 Feb 2021 08:04:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
NICE_REPLY_A=-0.001, SPF_HELO_NONE=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=gmail.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 myrZnbO2X-k4 for <calsify@ietfa.amsl.com>;
Wed, 17 Feb 2021 08:04:47 -0800 (PST)
Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com
[IPv6:2607:f8b0:4864:20::734])
(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 1F02B3A1B25
for <calsify@ietf.org>; Wed, 17 Feb 2021 08:04:47 -0800 (PST)
Received: by mail-qk1-x734.google.com with SMTP id r77so13164627qka.12
for <calsify@ietf.org>; Wed, 17 Feb 2021 08:04:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
h=subject:to:references:from:message-id:date:user-agent:mime-version
:in-reply-to:content-transfer-encoding:content-language;
bh=rCLpuEiky02sAWoi3YNU2spQJj80pNNve+tWkALDmFo=;
b=TSYheaWRVTAfvIppUBPIAkPTPl1PFTuu4vULl3wAJ7TxaXCwVSqj+ZOCtWjDpijW3F
D3K12nUvmiNFx8h/Yo3SkYHqu6ca+HzAyKiRs4ioWM2mPQgllW2GbaybuVP/Qsr9iVJl
mDYt/9WMuIt7qlqc/rDIKMDhkMmQtyoWoULGox16Y1GofLQ2c/gljtzx2u+4VkRlvfFb
SsdpWOGVirzGnptwwrFIeP3v9HbRTULbk5R9T7BaModox0g4oyFtFZYKI63OZ1I24oIb
K1g6LOAygc79yWRwit9twZxQQmXwkmwQqtCWKsaXT34+CtAuPppFC+Y0dy9dhvOxtyE4
ulmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:subject:to:references:from:message-id:date
:user-agent:mime-version:in-reply-to:content-transfer-encoding
:content-language;
bh=rCLpuEiky02sAWoi3YNU2spQJj80pNNve+tWkALDmFo=;
b=ToNxUOpMNHjUpLqLVmd7nGo2hUA7EuXJ6imsEqOkwFTyZOHQIji2Qv3pH8EwRHlt7p
2SGhBlwL+4i0P7I6bDRFPFUF7pNAwQfaTqgojplONvcsCC59VBreqzBsanQHZx5q7zNW
/Nlb3f0xqTnduS5GZFAOB0juD0azEWUZkaoGA3rWp0kbZDMwnhvAzceoeBkBR30+bVUR
i15JNZq56jaxwtOnYXFT/va/tcussq3Lv0sWevkvZ3pCErdddoADk7i/i46nCP29x4gP
cEXPxqUSutiXX0QvFGkbkqlu0cnrun7rTRG/eDQc0IG2n7yPzv3MJgly3T81cijWsPCQ
i9gA==
X-Gm-Message-State: AOAM530+HX0ofCxwAN52+Hs9PzJrAmfuA3HxXTkVkjdyIVVhyT/Pc7kd
QMb5XY2QPsiww/2yGy4rXBDXEs1lSmE=
X-Google-Smtp-Source: ABdhPJwdYPoZ1UKxwscgkGEd6KA8H+SSqNoJ8ZRgsvMR2S15b955H8+9p57JFLsHK9y485mDAzFlEQ==
X-Received: by 2002:a37:67d3:: with SMTP id
b202mr24000327qkc.178.1613577883628;
Wed, 17 Feb 2021 08:04:43 -0800 (PST)
Received: from [192.168.1.150] (cpe-74-70-70-237.nycap.res.rr.com.
[74.70.70.237])
by smtp.googlemail.com with ESMTPSA id d22sm1439211qtp.34.2021.02.17.08.04.41
(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
Wed, 17 Feb 2021 08:04:42 -0800 (PST)
To: Cyrus Daboo <cyrus@daboo.name>, Calsify <calsify@ietf.org>
References: <a44f9c2c-18ff-9f6f-ca43-82e0a104889f@gmail.com>
<c816206e-13de-4dda-afac-1f8923257296@cyrus.local>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <304feeb6-9633-358d-5143-bd5264776c74@gmail.com>
Date: Wed, 17 Feb 2021 11:04:41 -0500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:78.0)
Gecko/20100101 Thunderbird/78.6.1
MIME-Version: 1.0
In-Reply-To: <c816206e-13de-4dda-afac-1f8923257296@cyrus.local>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/pQJDFzOPsv2aazH1i8Jnincyzec>
Subject: Re: [calsify] RFC7986 and EMAIL parameter
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>,
<mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>,
<mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Feb 2021 16:04:49 -0000
Thanks Cyrus. See below On 2/17/21 10:22, Cyrus Daboo wrote: > Hi Michael, > > --On Tue, 16 Feb 2021 23:46:31 -0500 Michael Douglass > <mikeadouglass@gmail.com> wrote: > > Some background first: when we were working on CalendarServer and > deploying it within Apple, we initially used email addresses as the > ORGNAIZER/ATTENDEE calendar user address value. However, we quickly > ran into a problem with that: it turns out that there are frequent > email address (and name) changes that happen for individuals for a > variety of reasons, and we needed a way to change the mailto: values. > Doing that with scheduling messages is problematic because it requires > rewriting/resending invites to all particpants. With recurring > messages, we probably would not want to re-write past instances, so > that would require "splitting" the recurrence. > > In the end we decided on a different solution: internally, the server > would use a `urn:uuid` URI for the calendar user address values. Those > URIs were the stable directory GUID for each user, and would not > change even if other properties of the user record did (email, name, > etc). So CalendarServer would return urn:uuid values in any iCalendar > data transmitted over CalDAV. But when sending scheduling messages > externally (via iMIP and iSchedule, when that was a thing) we would > rewrite the ORGANIZER and ATTENDEE property values to the current > value of the corresponding user's email address URI. Similarly, for > scheduling messages being delivered from an outside source into the > server, we would rewrite the mailto URIs to urn:uuid ones. > > There were some client-side implications to this: the client does an > attendee auto-complete when an organizer is adding attendees to an > event. It does that using the CalDAV principal search, querying on > name, email etc, and it extracts one of several prossible calendar > user addresses for the attendee and inserts that into the iCalendar > object sent to the server. The server always rewrites incoming (PUT) > iCalendar data to "normalize" ORGANIZER and ATTENDEE property values > to the urn:uuid form. > > The problem with this on the client side, was that they wanted to be > able to relate calendar particpants to address book entries, so that > they could show additional details about the attendee (i.e., show a > telephone number, or IM contact info etc). However, the urn:uuid > values are not in any contacts records (yes we - Apple/CalConnect - > had lots of dicussions about the need for a separate calendar user > address field in contact databases but there was never consensus on > how best to do that, or even whether users would grasp the purpose). > So, to allow the client to match urn:uuid values to local contact > data, we added the EMAIL parameter. The server always rewrites the > EMAIL parameter to the most recent value for incoming (PUT)/outgoing > (GET) events sent over CalDAV, so there is a strong liklihood it will > match a contact (or match a record in the directory service the > AddressBook.app can use). Also, in the case no contact could be > matched, the EMAIL value could be used as an alternative, out-of-band, > way to contact the particpant over email. > >> So >> >> question 1: >> >> Is it the case that the value - the calendar address is still the >> identifier for the attendee? > > Yes, the calendar user address is always the "key" for > identifying/matching ORGANIZER and ATTENDEE properties across > iCalendar objects, be they distinct events or recurrence instances. > >> Question 2: >> >> is it legal to send a REPLY back with a different EMAIL value - e.g. >> attendee decides they want to use a different email address? > > The EMAIL parameter value was never intended to be an iMIP address > used for scheduling. The calendar user address value of the relevent > iCalendar property would always be the scheduling address. We handled > that by always rewriting iCalendar data on the way into, and out of, > our external scheduling system. > >> Question 3: >> >> Does "Recipients can also use this value as an alternative means of >> contacting the calendar user via email." include sending iMip messages? > > As per above, no, it was never intended that EMAIL be used for iMIP. > It is important to note, that some calendar systems allow users to > "sign-up" using a 3rd party email address as their "identifier", but > generate their own mailto calendar user address for iMIP (usually with > a domain set to the calendar server host and an "opaque" identifier > for thew local part). In such a case there could be two email > addresses on a property: one in the EMAIL paramater (the 3rd party > address that could be matched to a contact record); and the other the > calendar user address value in the property. > I think I meant only if the value is not a mailto:. I assume in the absence of any other indication (e.g. a valid email) this might be a fallback? >> Question 4: (already past a 'couple') >> >> 5546 says: >> >> When used to provide a delegation response, >> the "Delegator" SHOULD include the calendar address of the >> "Delegate" >> on the "DELEGATED-TO" property parameter of the "Delegator's" >> "ATTENDEE" property. The "Delegate" SHOULD include the calendar >> address of the "Delegator" on the "DELEGATED-FROM" property >> parameter >> of the "Delegate's" "ATTENDEE" property. >> >> So that implies that the DELEGATED-TO value might also be a non >> mailto URI? >> 7986 says nothing about these parameters > > Those parameters typically reference other ATTENDEE properties (via > the calendar user address value) and those other properties can have > an EMAIL parameter that can be used with the delegate. > >> I assume that we could have something like: >> >> ATTENDEE;CN=Michael >> Douglass;PARTSTAT=ACCEPTED;ROLE=CHAIR;EMAIL=mdouglass@bedework.com >> <mailto: >> mikeadouglass@gmail.com>:/sadlksdfkkljklkjjklljkkjjLKJLKJjLKjJKLKLjJKLLkjKj >> >> LkjLKJ/principal/ > > I think the EMAIL parameter value is wrong (at the very least it is > missing some DQUOTEs). It should just be the address spec, not the > full address. I think that is my fault as I know see that 7986 did not > properly define the parameter value. It just said "email address", but > shouyld have references RFC5322 3.4.1 for the addr-spec definition. > >> ATTENDEE;CN=Another Michael >> Douglass;PARTSTAT=ACCEPTED;DELEGATED-TO="/sadlk >> sdfkkljklkjjklljkkjjLKJLKJjLKjJKLKLjJKLLkjKjLkjLKJ/principal/";EMAIL=mikead >> >> ouglass@gmail.com >> <mailto:mikeadouglass@gmail.com>:/aMzkzNTI4MzkzNTI4MzkzNQ >> PuXCcDTdG5iXfOhcljjCSqMYrUXDcs6f1z7CyXejTR/principal/ > > Same issue with EMAIL parameter value. However, the concept of > relating properties via the DELEGATED-* parameters is fine. > > BTW: I am not sure the calendar user address values in your example > are legal. As per RFC 3986, there should be a "scheme:" prefix present. One of those was generated by Apple. I created an event yesterday which in full is BEGIN:VCALENDAR PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN METHOD:REQUEST VERSION:2.0 BEGIN:VEVENT DTEND;TZID=America/New_York:20210219T100000 DTSTART;TZID=America/New_York:20210219T090000 ORGANIZER;CN=Michael Douglass;EMAIL=mikeadouglass@gmail.com:mailto:2_GM4T GNJSHAZTSMZVGI4DGOJTGW7UOVQIXU6S7IXFKVSLJVS4VP4YX5J2UCRWN6KC2YMIGY25PWAA I@imip.me.com UID:E5C6F579-5003-4755-B29D-572E0FF147B1 DTSTAMP:20210217T051817Z SEQUENCE:1 SUMMARY:Testing email param LAST-MODIFIED:20210217T051817Z CREATED:20210217T051744Z ATTENDEE;CUTYPE=INDIVIDUAL;EMAIL=mdouglass@bedework.com;RSVP=TRUE;PARTSTA T=NEEDS-ACTION:mailto:mdouglass@bedework.com ATTENDEE;CN=Ken Murchison;CUTYPE=INDIVIDUAL;EMAIL=murch@fastmail.com;RSVP =TRUE;PARTSTAT=NEEDS-ACTION:mailto:murch@fastmail.com ATTENDEE;CN=Michael Douglass;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=CHA IR;EMAIL=mikeadouglass@gmail.com:/aMzkzNTI4MzkzNTI4MzkzNQPuXCcDTdG5iXfOh cljjCSqMYrUXDcs6f1z7CyXejTR/principal/ END:VEVENT I believe a URI doesn't require a scheme - a simple path is sufficient
- [calsify] RFC7986 and EMAIL parameter Michael Douglass
- Re: [calsify] RFC7986 and EMAIL parameter Cyrus Daboo
- Re: [calsify] RFC7986 and EMAIL parameter Michael Douglass
- Re: [calsify] RFC7986 and EMAIL parameter Cyrus Daboo
- Re: [calsify] RFC7986 and EMAIL parameter Mike Douglass
- Re: [calsify] RFC7986 and EMAIL parameter Neil Jenkins
- Re: [calsify] RFC7986 and EMAIL parameter Cyrus Daboo
- Re: [calsify] RFC7986 and EMAIL parameter Michael Douglass
- Re: [calsify] RFC7986 and EMAIL parameter Neil Jenkins
- Re: [calsify] RFC7986 and EMAIL parameter Neil Jenkins