Repo created
This commit is contained in:
parent
324070df30
commit
2d33a757bf
644 changed files with 99721 additions and 2 deletions
1
doc/.gitignore
vendored
Normal file
1
doc/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
javadoc/
|
||||
BIN
doc/DAVdroid-Linuxwochen-2016.odp
Normal file
BIN
doc/DAVdroid-Linuxwochen-2016.odp
Normal file
Binary file not shown.
BIN
doc/NIST.SP.800-52r1.pdf
Normal file
BIN
doc/NIST.SP.800-52r1.pdf
Normal file
Binary file not shown.
560
doc/caldav-proxy.txt
Normal file
560
doc/caldav-proxy.txt
Normal file
|
|
@ -0,0 +1,560 @@
|
|||
|
||||
|
||||
|
||||
Calendar Server Extension C. Daboo
|
||||
Apple Computer
|
||||
May 3, 2007
|
||||
|
||||
|
||||
Calendar User Proxy Functionality in CalDAV
|
||||
caldav-cu-proxy-02
|
||||
|
||||
Abstract
|
||||
|
||||
This specification defines an extension to CalDAV that makes it easy
|
||||
for clients to setup and manage calendar user proxies, using the
|
||||
WebDAV Access Control List extension as a basis.
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. Conventions Used in This Document . . . . . . . . . . . . . . 2
|
||||
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3.1. Server . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3.2. Client . . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. New features in CalDAV . . . . . . . . . . . . . . . . . . . . 4
|
||||
5.1. Proxy Principal Resource . . . . . . . . . . . . . . . . . 4
|
||||
5.2. Privilege Provisioning . . . . . . . . . . . . . . . . . . 8
|
||||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
|
||||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
|
||||
8. Normative References . . . . . . . . . . . . . . . . . . . . . 9
|
||||
Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 9
|
||||
Appendix B. Change History . . . . . . . . . . . . . . . . . . . 10
|
||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 10
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 1]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
CalDAV [RFC4791] provides a way for calendar users to store calendar
|
||||
data and exchange this data via scheduling operations. Based on the
|
||||
WebDAV protocol [RFC2518], it also includes the ability to manage
|
||||
access to calendar data via the WebDAV ACL extension [RFC3744].
|
||||
|
||||
It is often common for a calendar user to delegate some form of
|
||||
responsibility for their calendar and schedules to another calendar
|
||||
user (e.g., a boss allows an assistant to check a calendar or to send
|
||||
and accept scheduling invites on his behalf). The user handling the
|
||||
calendar data on behalf of someone else is often referred to as a
|
||||
"calendar user proxy".
|
||||
|
||||
Whilst CalDAV does have fine-grained access control features that can
|
||||
be used to setup complex sharing and management of calendars, often
|
||||
the proxy behavior required is an "all-or-nothing" approach - i.e.
|
||||
the proxy has access to all the calendars or to no calendars (in
|
||||
which case they are of course not a proxy). So a simple way to
|
||||
manage access to an entire set of calendars and scheduling ability
|
||||
would be handy.
|
||||
|
||||
In addition, calendar user agents will often want to display to a
|
||||
user who has proxy access to their calendars, or to whom they are
|
||||
acting as a proxy. Again, CalDAV's access control discovery and
|
||||
report features can be used to do that, but with fine-grained control
|
||||
that exists, it can be hard to tell who is a "real" proxy as opposed
|
||||
to someone just granted rights to some subset of calendars. Again, a
|
||||
simple way to discover proxy information would be handy.
|
||||
|
||||
|
||||
2. Conventions Used in This Document
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
When XML element types in the namespace "DAV:" are referenced in this
|
||||
document outside of the context of an XML fragment, the string "DAV:"
|
||||
will be prefixed to the element type names.
|
||||
|
||||
When XML element types in the namespaces "DAV:" and
|
||||
"urn:ietf:params:xml:ns:caldav" are referenced in this document
|
||||
outside of the context of an XML fragment, the string "DAV:" and
|
||||
"CALDAV:" will be prefixed to the element type names respectively.
|
||||
|
||||
The namespace "http://calendarserver.org/ns/" is used for XML
|
||||
elements defined in this specification. When XML element types in
|
||||
|
||||
|
||||
|
||||
Daboo [Page 2]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
this namespace are referenced in this document outside of the context
|
||||
of an XML fragment, the string "CS:" will be prefixed to the element
|
||||
type names respectively.
|
||||
|
||||
|
||||
3. Overview
|
||||
|
||||
3.1. Server
|
||||
|
||||
For each calendar user principal on the server, the server will
|
||||
generate two group principals - "proxy groups". One is used to hold
|
||||
the list of principals who have read-only proxy access to the main
|
||||
principal's calendars, the other holds the list of principals who
|
||||
have read-write and scheduling proxy access. NB these new group
|
||||
principals would have no equivalent in Open Directory.
|
||||
|
||||
Privileges on each "proxy group" principal will be set so that the
|
||||
"owner" has the ability to change property values.
|
||||
|
||||
The "proxy group" principals will be child resources of the user
|
||||
principal resource with specific resource types and thus are easy to
|
||||
discover. As a result the user principal resources will also be
|
||||
collection resources.
|
||||
|
||||
When provisioning the calendar user home collection, the server will:
|
||||
|
||||
a. Add an ACE to the calendar home collection giving the read-only
|
||||
"proxy group" inheritable read access.
|
||||
|
||||
b. Add an ACE to the calendar home collection giving the read-write
|
||||
"proxy group" inheritable read-write access.
|
||||
|
||||
c. Add an ACE to each of the calendar Inbox and Outbox collections
|
||||
giving the CALDAV:schedule privilege
|
||||
[I-D.desruisseaux-caldav-sched] to the read-write "proxy group".
|
||||
|
||||
3.2. Client
|
||||
|
||||
A client can see who the proxies are for the current principal by
|
||||
examining the principal resource for the two "proxy group" properties
|
||||
and then looking at the DAV:group-member-set property of each.
|
||||
|
||||
The client can edit the list of proxies for the current principal by
|
||||
editing the DAV:group-member-set property on the relevant "proxy
|
||||
group" principal resource.
|
||||
|
||||
The client can find out who the current principal is a proxy for by
|
||||
running a DAV:principal-match REPORT on the principal collection.
|
||||
|
||||
|
||||
|
||||
Daboo [Page 3]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
Alternatively, the client can find out who the current principal is a
|
||||
proxy for by examining the DAV:group-membership property on the
|
||||
current principal resource looking for membership in other users'
|
||||
"proxy groups".
|
||||
|
||||
|
||||
4. Open Issues
|
||||
|
||||
1. Do we want to separate read-write access to calendars vs the
|
||||
ability to schedule as a proxy?
|
||||
|
||||
2. We may want to restrict changing properties on the proxy group
|
||||
collections to just the DAV:group-member-set property?
|
||||
|
||||
3. There is no way for a proxy to be able to manage the list of
|
||||
proxies. We could allow the main calendar user DAV:write-acl on
|
||||
their "proxy group" principals, in which case they could grant
|
||||
others the right to modify the group membership.
|
||||
|
||||
4. Should the "proxy group" principals also be collections given
|
||||
that the regular principal resources will be?
|
||||
|
||||
|
||||
5. New features in CalDAV
|
||||
|
||||
5.1. Proxy Principal Resource
|
||||
|
||||
Each "regular" principal resource that needs to allow calendar user
|
||||
proxy support MUST be a collection resource. i.e. in addition to
|
||||
including the DAV:principal XML element in the DAV:resourcetype
|
||||
property on the resource, it MUST also include the DAV:collection XML
|
||||
element.
|
||||
|
||||
Each "regular" principal resource MUST contain two child resources
|
||||
with names "calendar-proxy-read" and "calendar-proxy-write" (note
|
||||
that these are only suggested names - the server could choose any
|
||||
unique name for these). These resources are themselves principal
|
||||
resources that are groups contain the list of principals for calendar
|
||||
users who can act as a read-only or read-write proxy respectively.
|
||||
|
||||
The server MUST include the CS:calendar-proxy-read or CS:calendar-
|
||||
proxy-write XML elements in the DAV:resourcetype property of the
|
||||
child resources, respectively. This allows clients to discover the
|
||||
"proxy group" principals by using a PROPFIND, Depth:1 request on the
|
||||
current user's principal resource and requesting the DAV:resourcetype
|
||||
property be returned. The element type declarations are:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 4]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
<!ELEMENT calendar-proxy-read EMPTY>
|
||||
|
||||
<!ELEMENT calendar-proxy-write EMPTY>
|
||||
|
||||
The server MUST allow the "parent" principal to change the DAV:group-
|
||||
member-set property on each of the "child" "proxy group" principal
|
||||
resources. When a principal is listed as a member of the "child"
|
||||
resource, the server MUST include the "child" resource URI in the
|
||||
DAV:group-membership property on the included principal resource.
|
||||
Note that this is just "normal" behavior for a group principal.
|
||||
|
||||
An example principal resource layout might be:
|
||||
|
||||
+ /
|
||||
+ principals/
|
||||
+ users/
|
||||
+ cyrus/
|
||||
calendar-proxy-read
|
||||
calendar-proxy-write
|
||||
+ red/
|
||||
calendar-proxy-read
|
||||
calendar-proxy-write
|
||||
+ wilfredo/
|
||||
calendar-proxy-read
|
||||
calendar-proxy-write
|
||||
|
||||
If the principal "cyrus" wishes to have the principal "red" act as a
|
||||
calendar user proxy on his behalf and have the ability to change
|
||||
items on his calendar or schedule meetings on his behalf, then he
|
||||
would add the principal resource URI for "red" to the DAV:group-
|
||||
member-set property of the principal resource /principals/users/
|
||||
cyrus/calendar-proxy-write, giving:
|
||||
|
||||
<DAV:group-member-set>
|
||||
<DAV:href>/principals/users/red/</DAV:href>
|
||||
</DAV:group-member-set>
|
||||
|
||||
The DAV:group-membership property on the resource /principals/users/
|
||||
red/ would be:
|
||||
|
||||
<DAV:group-membership>
|
||||
<DAV:href>/principals/users/cyrus/calendar-proxy-write</DAV:href>
|
||||
</DAV:group-membership>
|
||||
|
||||
If the principal "red" was also a read-only proxy for the principal
|
||||
"wilfredo", then the DA:group-membership property on the resource
|
||||
/principals/users/red/ would be:
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 5]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
<DAV:group-membership>
|
||||
<DAV:href>/principals/users/cyrus/calendar-proxy-write</DAV:href>
|
||||
<DAV:href>/principals/users/wilfredo/calendar-proxy-read</DAV:href>
|
||||
</DAV:group-membership>
|
||||
|
||||
Thus a client can discover to which principals a particular principal
|
||||
is acting as a calendar user proxy for by examining the DAV:group-
|
||||
membership property.
|
||||
|
||||
An alternative to discovering which principals a user can proxy as is
|
||||
to use the WebDAV ACL principal-match report, targeted at the
|
||||
principal collections available on the server.
|
||||
|
||||
Example:
|
||||
|
||||
>> Request <<
|
||||
|
||||
REPORT /principals/ HTTP/1.1
|
||||
Host: cal.example.com
|
||||
Depth: 0
|
||||
Content-Type: application/xml; charset="utf-8"
|
||||
Content-Length: xxxx
|
||||
Authorization: Digest username="red",
|
||||
realm="cal.example.com", nonce="...",
|
||||
uri="/principals/", response="...", opaque="..."
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<D:principal-match xmlns:D="DAV:">
|
||||
<D:self/>
|
||||
<D:prop>
|
||||
<D:resourcetype/>
|
||||
</D:prop>
|
||||
</D:principal-match>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 6]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
>> Response <<
|
||||
|
||||
HTTP/1.1 207 Multi-Status
|
||||
Date: Fri, 10 Nov 2006 09:32:12 GMT
|
||||
Content-Type: application/xml; charset="utf-8"
|
||||
Content-Length: xxxx
|
||||
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<D:multistatus xmlns:D="DAV:"
|
||||
xmlns:A="http://calendarserver.org/ns/">
|
||||
<D:response>
|
||||
<D:href>/principals/users/red/</D:href>
|
||||
<D:propstat>
|
||||
<D:prop>
|
||||
<D:resourcetype>
|
||||
<D:principal/>
|
||||
<D:collection/>
|
||||
</D:resourcetype>
|
||||
</D:prop>
|
||||
<D:status>HTTP/1.1 200 OK</D:status>
|
||||
</D:propstat>
|
||||
</D:response>
|
||||
<D:response>
|
||||
<D:href>/principals/users/cyrus/calendar-proxy-write</D:href>
|
||||
<D:propstat>
|
||||
<D:prop>
|
||||
<D:resourcetype>
|
||||
<D:principal/>
|
||||
<A:calendar-proxy-write/>
|
||||
</D:resourcetype>
|
||||
</D:prop>
|
||||
<D:status>HTTP/1.1 200 OK</D:status>
|
||||
</D:propstat>
|
||||
</D:response>
|
||||
<D:response>
|
||||
<D:href>/principals/users/wilfredo/calendar-proxy-read</D:href>
|
||||
<D:propstat>
|
||||
<D:prop>
|
||||
<D:resourcetype>
|
||||
<D:principal/>
|
||||
<A:calendar-proxy-read/>
|
||||
</D:resourcetype>
|
||||
</D:prop>
|
||||
<D:status>HTTP/1.1 200 OK</D:status>
|
||||
</D:propstat>
|
||||
</D:response>
|
||||
</D:multistatus>
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 7]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
5.2. Privilege Provisioning
|
||||
|
||||
In order for a calendar user proxy to be able to access the calendars
|
||||
of the user they are proxying for the server MUST ensure that the
|
||||
privileges on the relevant calendars are setup accordingly:
|
||||
|
||||
The DAV:read privilege MUST be granted for read-only and read-
|
||||
write calendar user proxy principals
|
||||
|
||||
The DAV:write privilege MUST be granted for read-write calendar
|
||||
user proxy principals.
|
||||
|
||||
Additionally, the CalDAV scheduling Inbox and Outbox calendar
|
||||
collections for the user allowing proxy access, MUST have the CALDAV:
|
||||
schedule privilege [I-D.desruisseaux-caldav-sched] granted for read-
|
||||
write calendar user proxy principals.
|
||||
|
||||
Note that with a suitable repository layout, a server may be able to
|
||||
grant the appropriate privileges on a parent collection and ensure
|
||||
that all the contained collections and resources inherit that. For
|
||||
example, given the following repository layout:
|
||||
|
||||
+ /
|
||||
+ calendars/
|
||||
+ users/
|
||||
+ cyrus/
|
||||
inbox
|
||||
outbox
|
||||
home
|
||||
work
|
||||
+ red/
|
||||
inbox
|
||||
outbox
|
||||
work
|
||||
soccer
|
||||
+ wilfredo/
|
||||
inbox
|
||||
outbox
|
||||
home
|
||||
work
|
||||
flying
|
||||
|
||||
In order for the principal "red" to act as a read-write proxy for the
|
||||
principal "cyrus", the following WebDAV ACE will need to be granted
|
||||
on the resource /calendars/users/cyrus/ and all children of that
|
||||
resource:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 8]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
<DAV:ace>
|
||||
<DAV:principal>
|
||||
<DAV:href>/principals/users/cyrus/calendar-proxy-write</DAV:href>
|
||||
</DAV:principal>
|
||||
<DAV:privileges>
|
||||
<DAV:grant><DAV:read/><DAV:write/></DAV:grant>
|
||||
</DAV:privileges>
|
||||
</DAV:ace>
|
||||
|
||||
|
||||
6. Security Considerations
|
||||
|
||||
TBD
|
||||
|
||||
|
||||
7. IANA Considerations
|
||||
|
||||
This document does not require any actions on the part of IANA.
|
||||
|
||||
|
||||
8. Normative References
|
||||
|
||||
[I-D.desruisseaux-caldav-sched]
|
||||
Desruisseaux, B., "Scheduling Extensions to CalDAV",
|
||||
draft-desruisseaux-caldav-sched-03 (work in progress),
|
||||
January 2007.
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2518] Goland, Y., Whitehead, E., Faizi, A., Carter, S., and D.
|
||||
Jensen, "HTTP Extensions for Distributed Authoring --
|
||||
WEBDAV", RFC 2518, February 1999.
|
||||
|
||||
[RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
|
||||
Distributed Authoring and Versioning (WebDAV) Access
|
||||
Control Protocol", RFC 3744, May 2004.
|
||||
|
||||
[RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault,
|
||||
"Calendaring Extensions to WebDAV (CalDAV)", RFC 4791,
|
||||
March 2007.
|
||||
|
||||
|
||||
Appendix A. Acknowledgments
|
||||
|
||||
This specification is the result of discussions between the Apple
|
||||
calendar server and client teams.
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 9]
|
||||
|
||||
CalDAV Proxy May 2007
|
||||
|
||||
|
||||
Appendix B. Change History
|
||||
|
||||
Changes from -00:
|
||||
|
||||
1. Updated to RFC 4791 reference.
|
||||
|
||||
Changes from -00:
|
||||
|
||||
1. Added more details on actual CalDAV protocol changes.
|
||||
|
||||
2. Changed namespace from http://apple.com/ns/calendarserver/ to
|
||||
http://calendarserver.org/ns/.
|
||||
|
||||
3. Made "proxy group" principals child resources of their "owner"
|
||||
principals.
|
||||
|
||||
4. The "proxy group" principals now have their own resourcetype.
|
||||
|
||||
|
||||
Author's Address
|
||||
|
||||
Cyrus Daboo
|
||||
Apple Computer, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino, CA 95014
|
||||
USA
|
||||
|
||||
Email: cyrus@daboo.name
|
||||
URI: http://www.apple.com/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo [Page 10]
|
||||
|
||||
BIN
doc/how_davx5_works.svgz
Normal file
BIN
doc/how_davx5_works.svgz
Normal file
Binary file not shown.
4035
doc/rfc3744-webdav-access-control-protocol.txt
Normal file
4035
doc/rfc3744-webdav-access-control-protocol.txt
Normal file
File diff suppressed because it is too large
Load diff
5995
doc/rfc4791-caldav.txt
Normal file
5995
doc/rfc4791-caldav.txt
Normal file
File diff suppressed because it is too large
Load diff
7115
doc/rfc4918-webdav.txt
Normal file
7115
doc/rfc4918-webdav.txt
Normal file
File diff suppressed because it is too large
Load diff
281
doc/rfc5397-webdav-current-principal-extension.txt
Normal file
281
doc/rfc5397-webdav-current-principal-extension.txt
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
|
||||
|
||||
|
||||
Network Working Group W. Sanchez
|
||||
Request for Comments: 5397 C. Daboo
|
||||
Category: Standards Track Apple Inc.
|
||||
December 2008
|
||||
|
||||
|
||||
WebDAV Current Principal Extension
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This document specifies an Internet standards track protocol for the
|
||||
Internet community, and requests discussion and suggestions for
|
||||
improvements. Please refer to the current edition of the "Internet
|
||||
Official Protocol Standards" (STD 1) for the standardization state
|
||||
and status of this protocol. Distribution of this memo is unlimited.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2008 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document.
|
||||
|
||||
Abstract
|
||||
|
||||
This specification defines a new WebDAV property that allows clients
|
||||
to quickly determine the principal corresponding to the current
|
||||
authenticated user.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. Conventions Used in This Document . . . . . . . . . . . . . . . 2
|
||||
3. DAV:current-user-principal . . . . . . . . . . . . . . . . . . 3
|
||||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
6. Normative References . . . . . . . . . . . . . . . . . . . . . 4
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sanchez & Daboo Standards Track [Page 1]
|
||||
|
||||
RFC 5397 WebDAV Current Principal December 2008
|
||||
|
||||
|
||||
1. Introduction
|
||||
|
||||
WebDAV [RFC4918] is an extension to HTTP [RFC2616] to support
|
||||
improved document authoring capabilities. The WebDAV Access Control
|
||||
Protocol ("WebDAV ACL") [RFC3744] extension adds access control
|
||||
capabilities to WebDAV. It introduces the concept of a "principal"
|
||||
resource, which is used to represent information about authenticated
|
||||
entities on the system.
|
||||
|
||||
Some clients have a need to determine which [RFC3744] principal a
|
||||
server is associating with the currently authenticated HTTP user.
|
||||
While [RFC3744] defines a DAV:current-user-privilege-set property for
|
||||
retrieving the privileges granted to that principal, there is no
|
||||
recommended way to identify the principal in question, which is
|
||||
necessary to perform other useful operations. For example, a client
|
||||
may wish to determine which groups the current user is a member of,
|
||||
or modify a property of the principal resource associated with the
|
||||
current user.
|
||||
|
||||
The DAV:principal-match REPORT provides some useful functionality,
|
||||
but there are common situations where the results from that query can
|
||||
be ambiguous. For example, not only is an individual user principal
|
||||
returned, but also every group principal that the user is a member
|
||||
of, and there is no clear way to distinguish which is which.
|
||||
|
||||
This specification proposes an extension to WebDAV ACL that adds a
|
||||
DAV:current-user-principal property to resources under access control
|
||||
on the server. This property provides a URL to a principal resource
|
||||
corresponding to the currently authenticated user. This allows a
|
||||
client to "bootstrap" itself by performing additional queries on the
|
||||
principal resource to obtain additional information from that
|
||||
resource, which is the purpose of this extension. Note that while it
|
||||
is possible for multiple URLs to refer to the same principal
|
||||
resource, or for multiple principal resources to correspond to a
|
||||
single principal, this specification only allows for a single http(s)
|
||||
URL in the DAV:current-user-principal property. If a client wishes
|
||||
to obtain alternate URLs for the principal, it can query the
|
||||
principal resource for this information; it is not the purpose of
|
||||
this extension to provide a complete list of such URLs, but simply to
|
||||
provide a means to locate a resource which contains that (and other)
|
||||
information.
|
||||
|
||||
2. Conventions Used in This Document
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
|
||||
|
||||
|
||||
Sanchez & Daboo Standards Track [Page 2]
|
||||
|
||||
RFC 5397 WebDAV Current Principal December 2008
|
||||
|
||||
|
||||
When XML element types in the namespace "DAV:" are referenced in this
|
||||
document outside of the context of an XML fragment, the string "DAV:"
|
||||
will be prefixed to the element type names.
|
||||
|
||||
Processing of XML by clients and servers MUST follow the rules
|
||||
defined in Section 17 of WebDAV [RFC4918].
|
||||
|
||||
Some of the declarations refer to XML elements defined by WebDAV
|
||||
[RFC4918].
|
||||
|
||||
3. DAV:current-user-principal
|
||||
|
||||
Name: current-user-principal
|
||||
|
||||
Namespace: DAV:
|
||||
|
||||
Purpose: Indicates a URL for the currently authenticated user's
|
||||
principal resource on the server.
|
||||
|
||||
Value: A single DAV:href or DAV:unauthenticated element.
|
||||
|
||||
Protected: This property is computed on a per-request basis, and
|
||||
therefore is protected.
|
||||
|
||||
Description: The DAV:current-user-principal property contains either
|
||||
a DAV:href or DAV:unauthenticated XML element. The DAV:href
|
||||
element contains a URL to a principal resource corresponding to
|
||||
the currently authenticated user. That URL MUST be one of the
|
||||
URLs in the DAV:principal-URL or DAV:alternate-URI-set properties
|
||||
defined on the principal resource and MUST be an http(s) scheme
|
||||
URL. When authentication has not been done or has failed, this
|
||||
property MUST contain the DAV:unauthenticated pseudo-principal.
|
||||
|
||||
In some cases, there may be multiple principal resources
|
||||
corresponding to the same authenticated principal. In that case,
|
||||
the server is free to choose any one of the principal resource
|
||||
URIs for the value of the DAV:current-user-principal property.
|
||||
However, servers SHOULD be consistent and use the same principal
|
||||
resource URI for each authenticated principal.
|
||||
|
||||
COPY/MOVE behavior: This property is computed on a per-request
|
||||
basis, and is thus never copied or moved.
|
||||
|
||||
Definition:
|
||||
|
||||
<!ELEMENT current-user-principal (unauthenticated | href)>
|
||||
<!-- href value: a URL to a principal resource -->
|
||||
|
||||
|
||||
|
||||
|
||||
Sanchez & Daboo Standards Track [Page 3]
|
||||
|
||||
RFC 5397 WebDAV Current Principal December 2008
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
<D:current-user-principal xmlns:D="DAV:">
|
||||
<D:href>/principals/users/cdaboo</D:href>
|
||||
</D:current-user-principal>
|
||||
|
||||
4. Security Considerations
|
||||
|
||||
This specification does not introduce any additional security issues
|
||||
beyond those defined for HTTP [RFC2616], WebDAV [RFC4918], and WebDAV
|
||||
ACL [RFC3744].
|
||||
|
||||
5. Acknowledgments
|
||||
|
||||
This specification is based on discussions that took place within the
|
||||
Calendaring and Scheduling Consortium's CalDAV Technical Committee.
|
||||
The authors thank the participants of that group for their input.
|
||||
|
||||
The authors thank Julian Reschke for his valuable input via the
|
||||
WebDAV working group mailing list.
|
||||
|
||||
6. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
|
||||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
|
||||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
|
||||
|
||||
[RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
|
||||
Distributed Authoring and Versioning (WebDAV)
|
||||
Access Control Protocol", RFC 3744, May 2004.
|
||||
|
||||
[RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed
|
||||
Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Wilfredo Sanchez
|
||||
Apple Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino, CA 95014
|
||||
USA
|
||||
|
||||
EMail: wsanchez@wsanchez.net
|
||||
URI: http://www.apple.com/
|
||||
|
||||
|
||||
|
||||
|
||||
Sanchez & Daboo Standards Track [Page 4]
|
||||
|
||||
RFC 5397 WebDAV Current Principal December 2008
|
||||
|
||||
|
||||
Cyrus Daboo
|
||||
Apple Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino, CA 95014
|
||||
USA
|
||||
|
||||
EMail: cyrus@daboo.name
|
||||
URI: http://www.apple.com/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sanchez & Daboo Standards Track [Page 5]
|
||||
|
||||
|
||||
451
doc/rfc5785-well-known-uris.txt
Normal file
451
doc/rfc5785-well-known-uris.txt
Normal file
|
|
@ -0,0 +1,451 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Internet Engineering Task Force (IETF) M. Nottingham
|
||||
Request for Comments: 5785 E. Hammer-Lahav
|
||||
Updates: 2616, 2818 April 2010
|
||||
Category: Standards Track
|
||||
ISSN: 2070-1721
|
||||
|
||||
|
||||
Defining Well-Known Uniform Resource Identifiers (URIs)
|
||||
|
||||
Abstract
|
||||
|
||||
This memo defines a path prefix for "well-known locations",
|
||||
"/.well-known/", in selected Uniform Resource Identifier (URI)
|
||||
schemes.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This is an Internet Standards Track document.
|
||||
|
||||
This document is a product of the Internet Engineering Task Force
|
||||
(IETF). It represents the consensus of the IETF community. It has
|
||||
received public review and has been approved for publication by the
|
||||
Internet Engineering Steering Group (IESG). Further information on
|
||||
Internet Standards is available in Section 2 of RFC 5741.
|
||||
|
||||
Information about the current status of this document, any errata,
|
||||
and how to provide feedback on it may be obtained at
|
||||
http://www.rfc-editor.org/info/rfc5785.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2010 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 1]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
1.1. Appropriate Use of Well-Known URIs . . . . . . . . . . . . 3
|
||||
2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. Well-Known URIs . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
5.1. The Well-Known URI Registry . . . . . . . . . . . . . . . . 4
|
||||
5.1.1. Registration Template . . . . . . . . . . . . . . . . . 5
|
||||
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
6.1. Normative References . . . . . . . . . . . . . . . . . . . 5
|
||||
6.2. Informative References . . . . . . . . . . . . . . . . . . 5
|
||||
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . . 7
|
||||
Appendix B. Frequently Asked Questions . . . . . . . . . . . . . . 7
|
||||
|
||||
1. Introduction
|
||||
|
||||
It is increasingly common for Web-based protocols to require the
|
||||
discovery of policy or other information about a host ("site-wide
|
||||
metadata") before making a request. For example, the Robots
|
||||
Exclusion Protocol <http://www.robotstxt.org/> specifies a way for
|
||||
automated processes to obtain permission to access resources;
|
||||
likewise, the Platform for Privacy Preferences [W3C.REC-P3P-20020416]
|
||||
tells user-agents how to discover privacy policy beforehand.
|
||||
|
||||
While there are several ways to access per-resource metadata (e.g.,
|
||||
HTTP headers, WebDAV's PROPFIND [RFC4918]), the perceived overhead
|
||||
(either in terms of client-perceived latency and/or deployment
|
||||
difficulties) associated with them often precludes their use in these
|
||||
scenarios.
|
||||
|
||||
When this happens, it is common to designate a "well-known location"
|
||||
for such data, so that it can be easily located. However, this
|
||||
approach has the drawback of risking collisions, both with other such
|
||||
designated "well-known locations" and with pre-existing resources.
|
||||
|
||||
To address this, this memo defines a path prefix in HTTP(S) URIs for
|
||||
these "well-known locations", "/.well-known/". Future specifications
|
||||
that need to define a resource for such site-wide metadata can
|
||||
register their use to avoid collisions and minimise impingement upon
|
||||
sites' URI space.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 2]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
1.1. Appropriate Use of Well-Known URIs
|
||||
|
||||
There are a number of possible ways that applications could use Well-
|
||||
known URIs. However, in keeping with the Architecture of the World-
|
||||
Wide Web [W3C.REC-webarch-20041215], well-known URIs are not intended
|
||||
for general information retrieval or establishment of large URI
|
||||
namespaces on the Web. Rather, they are designed to facilitate
|
||||
discovery of information on a site when it isn't practical to use
|
||||
other mechanisms; for example, when discovering policy that needs to
|
||||
be evaluated before a resource is accessed, or when using multiple
|
||||
round-trips is judged detrimental to performance.
|
||||
|
||||
As such, the well-known URI space was created with the expectation
|
||||
that it will be used to make site-wide policy information and other
|
||||
metadata available directly (if sufficiently concise), or provide
|
||||
references to other URIs that provide such metadata.
|
||||
|
||||
2. Notational Conventions
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in RFC 2119 [RFC2119].
|
||||
|
||||
3. Well-Known URIs
|
||||
|
||||
A well-known URI is a URI [RFC3986] whose path component begins with
|
||||
the characters "/.well-known/", and whose scheme is "HTTP", "HTTPS",
|
||||
or another scheme that has explicitly been specified to use well-
|
||||
known URIs.
|
||||
|
||||
Applications that wish to mint new well-known URIs MUST register
|
||||
them, following the procedures in Section 5.1.
|
||||
|
||||
For example, if an application registers the name 'example', the
|
||||
corresponding well-known URI on 'http://www.example.com/' would be
|
||||
'http://www.example.com/.well-known/example'.
|
||||
|
||||
Registered names MUST conform to the segment-nz production in
|
||||
[RFC3986].
|
||||
|
||||
Note that this specification defines neither how to determine the
|
||||
authority to use for a particular context, nor the scope of the
|
||||
metadata discovered by dereferencing the well-known URI; both should
|
||||
be defined by the application itself.
|
||||
|
||||
Typically, a registration will reference a specification that defines
|
||||
the format and associated media type to be obtained by dereferencing
|
||||
the well-known URI.
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 3]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
It MAY also contain additional information, such as the syntax of
|
||||
additional path components, query strings and/or fragment identifiers
|
||||
to be appended to the well-known URI, or protocol-specific details
|
||||
(e.g., HTTP [RFC2616] method handling).
|
||||
|
||||
Note that this specification does not define a format or media-type
|
||||
for the resource located at "/.well-known/" and clients should not
|
||||
expect a resource to exist at that location.
|
||||
|
||||
4. Security Considerations
|
||||
|
||||
This memo does not specify the scope of applicability of metadata or
|
||||
policy obtained from a well-known URI, and does not specify how to
|
||||
discover a well-known URI for a particular application. Individual
|
||||
applications using this mechanism must define both aspects.
|
||||
|
||||
Applications minting new well-known URIs, as well as administrators
|
||||
deploying them, will need to consider several security-related
|
||||
issues, including (but not limited to) exposure of sensitive data,
|
||||
denial-of-service attacks (in addition to normal load issues), server
|
||||
and client authentication, vulnerability to DNS rebinding attacks,
|
||||
and attacks where limited access to a server grants the ability to
|
||||
affect how well-known URIs are served.
|
||||
|
||||
5. IANA Considerations
|
||||
|
||||
5.1. The Well-Known URI Registry
|
||||
|
||||
This document establishes the well-known URI registry.
|
||||
|
||||
Well-known URIs are registered on the advice of one or more
|
||||
Designated Experts (appointed by the IESG or their delegate), with a
|
||||
Specification Required (using terminology from [RFC5226]). However,
|
||||
to allow for the allocation of values prior to publication, the
|
||||
Designated Expert(s) may approve registration once they are satisfied
|
||||
that such a specification will be published.
|
||||
|
||||
Registration requests should be sent to the
|
||||
wellknown-uri-review@ietf.org mailing list for review and comment,
|
||||
with an appropriate subject (e.g., "Request for well-known URI:
|
||||
example").
|
||||
|
||||
Before a period of 14 days has passed, the Designated Expert(s) will
|
||||
either approve or deny the registration request, communicating this
|
||||
decision both to the review list and to IANA. Denials should include
|
||||
an explanation and, if applicable, suggestions as to how to make the
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 4]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
request successful. Registration requests that are undetermined for
|
||||
a period longer than 21 days can be brought to the IESG's attention
|
||||
(using the iesg@iesg.org mailing list) for resolution.
|
||||
|
||||
5.1.1. Registration Template
|
||||
|
||||
URI suffix: The name requested for the well-known URI, relative to
|
||||
"/.well-known/"; e.g., "example".
|
||||
|
||||
Change controller: For Standards-Track RFCs, state "IETF". For
|
||||
others, give the name of the responsible party. Other details
|
||||
(e.g., postal address, e-mail address, home page URI) may also be
|
||||
included.
|
||||
|
||||
Specification document(s): Reference to the document that specifies
|
||||
the field, preferably including a URI that can be used to retrieve
|
||||
a copy of the document. An indication of the relevant sections
|
||||
may also be included, but is not required.
|
||||
|
||||
Related information: Optionally, citations to additional documents
|
||||
containing further relevant information.
|
||||
|
||||
6. References
|
||||
|
||||
6.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
|
||||
Resource Identifier (URI): Generic Syntax", STD 66,
|
||||
RFC 3986, January 2005.
|
||||
|
||||
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
|
||||
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
|
||||
May 2008.
|
||||
|
||||
6.2. Informative References
|
||||
|
||||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter,
|
||||
L., Leach, P., and T. Berners-Lee, "Hypertext Transfer
|
||||
Protocol -- HTTP/1.1", RFC 2616, June 1999.
|
||||
|
||||
[RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed
|
||||
Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 5]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
[W3C.REC-P3P-20020416]
|
||||
Marchiori, M., "The Platform for Privacy Preferences 1.0
|
||||
(P3P1.0) Specification", World Wide Web Consortium
|
||||
Recommendation REC-P3P-20020416, April 2002,
|
||||
<http://www.w3.org/TR/2002/ REC-P3P-20020416>.
|
||||
|
||||
[W3C.REC-webarch-20041215]
|
||||
Jacobs, I. and N. Walsh, "Architecture of the World Wide
|
||||
Web, Volume One", World Wide Web Consortium
|
||||
Recommendation REC- webarch-20041215, December 2004,
|
||||
<http:// www.w3.org/TR/2004/REC-webarch-20041215>.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 6]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
Appendix A. Acknowledgements
|
||||
|
||||
We would like to acknowledge the contributions of everyone who
|
||||
provided feedback and use cases for this document; in particular,
|
||||
Phil Archer, Dirk Balfanz, Adam Barth, Tim Bray, Brian Eaton, Brad
|
||||
Fitzpatrick, Joe Gregorio, Paul Hoffman, Barry Leiba, Ashok Malhotra,
|
||||
Breno de Medeiros, John Panzer, and Drummond Reed. However, they are
|
||||
not responsible for errors and omissions.
|
||||
|
||||
Appendix B. Frequently Asked Questions
|
||||
|
||||
1. Aren't well-known locations bad for the Web?
|
||||
|
||||
They are, but for various reasons -- both technical and social --
|
||||
they are commonly used and their use is increasing. This memo
|
||||
defines a "sandbox" for them, to reduce the risks of collision and
|
||||
to minimise the impact upon pre-existing URIs on sites.
|
||||
|
||||
2. Why /.well-known?
|
||||
|
||||
It's short, descriptive, and according to search indices, not
|
||||
widely used.
|
||||
|
||||
3. What impact does this have on existing mechanisms, such as P3P and
|
||||
robots.txt?
|
||||
|
||||
None, until they choose to use this mechanism.
|
||||
|
||||
4. Why aren't per-directory well-known locations defined?
|
||||
|
||||
Allowing every URI path segment to have a well-known location
|
||||
(e.g., "/images/.well-known/") would increase the risks of
|
||||
colliding with a pre-existing URI on a site, and generally these
|
||||
solutions are found not to scale well, because they're too
|
||||
"chatty".
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 7]
|
||||
|
||||
RFC 5785 Defining Well-Known URIs April 2010
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Mark Nottingham
|
||||
|
||||
EMail: mnot@mnot.net
|
||||
URI: http://www.mnot.net/
|
||||
|
||||
|
||||
Eran Hammer-Lahav
|
||||
|
||||
EMail: eran@hueniverse.com
|
||||
URI: http://hueniverse.com/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Nottingham & Hammer-Lahav Standards Track [Page 8]
|
||||
|
||||
2691
doc/rfc6352-carddav.txt
Normal file
2691
doc/rfc6352-carddav.txt
Normal file
File diff suppressed because it is too large
Load diff
4371
doc/rfc6638-scheduling-extensions-to-caldav.txt
Normal file
4371
doc/rfc6638-scheduling-extensions-to-caldav.txt
Normal file
File diff suppressed because it is too large
Load diff
787
doc/rfc6764-caldav-carddav-service-discovery.txt
Normal file
787
doc/rfc6764-caldav-carddav-service-discovery.txt
Normal file
|
|
@ -0,0 +1,787 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Internet Engineering Task Force (IETF) C. Daboo
|
||||
Request for Comments: 6764 Apple Inc.
|
||||
Updates: 4791, 6352 February 2013
|
||||
Category: Standards Track
|
||||
ISSN: 2070-1721
|
||||
|
||||
|
||||
Locating Services for Calendaring Extensions to
|
||||
WebDAV (CalDAV) and vCard Extensions to WebDAV (CardDAV)
|
||||
|
||||
Abstract
|
||||
|
||||
This specification describes how DNS SRV records, DNS TXT records,
|
||||
and well-known URIs can be used together or separately to locate
|
||||
CalDAV (Calendaring Extensions to Web Distributed Authoring and
|
||||
Versioning (WebDAV)) or CardDAV (vCard Extensions to WebDAV)
|
||||
services.
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This is an Internet Standards Track document.
|
||||
|
||||
This document is a product of the Internet Engineering Task Force
|
||||
(IETF). It represents the consensus of the IETF community. It has
|
||||
received public review and has been approved for publication by the
|
||||
Internet Engineering Steering Group (IESG). Further information on
|
||||
Internet Standards is available in Section 2 of RFC 5741.
|
||||
|
||||
Information about the current status of this document, any errata,
|
||||
and how to provide feedback on it may be obtained at
|
||||
http://www.rfc-editor.org/info/rfc6764.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2013 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents
|
||||
(http://trustee.ietf.org/license-info) in effect on the date of
|
||||
publication of this document. Please review these documents
|
||||
carefully, as they describe your rights and restrictions with respect
|
||||
to this document. Code Components extracted from this document must
|
||||
include Simplified BSD License text as described in Section 4.e of
|
||||
the Trust Legal Provisions and are provided without warranty as
|
||||
described in the Simplified BSD License.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 1]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction ....................................................2
|
||||
2. Conventions Used in This Document ...............................3
|
||||
3. CalDAV SRV Service Labels .......................................3
|
||||
4. CalDAV and CardDAV Service TXT Records ..........................4
|
||||
5. CalDAV and CardDAV Service Well-Known URI .......................4
|
||||
5.1. Example: Well-Known URI Redirects to Actual
|
||||
"Context Path" .............................................5
|
||||
6. Client "Bootstrapping" Procedures ...............................5
|
||||
7. Guidance for Service Providers ..................................8
|
||||
8. Security Considerations .........................................9
|
||||
9. IANA Considerations .............................................9
|
||||
9.1. Well-Known URI Registrations ...............................9
|
||||
9.1.1. caldav Well-Known URI Registration .................10
|
||||
9.1.2. carddav Well-Known URI Registration ................10
|
||||
9.2. Service Name Registrations ................................10
|
||||
9.2.1. caldav Service Name Registration ...................10
|
||||
9.2.2. caldavs Service Name Registration ..................11
|
||||
9.2.3. carddav Service Name Registration ..................11
|
||||
9.2.4. carddavs Service Name Registration .................12
|
||||
10. Acknowledgments ...............................................12
|
||||
11. References ....................................................12
|
||||
11.1. Normative References .....................................12
|
||||
11.2. Informative References ...................................14
|
||||
|
||||
1. Introduction
|
||||
|
||||
[RFC4791] defines the CalDAV calendar access protocol, based on HTTP
|
||||
[RFC2616], for accessing calendar data stored on a server. CalDAV
|
||||
clients need to be able to discover appropriate CalDAV servers within
|
||||
their local area network and at other domains, e.g., to minimize the
|
||||
need for end users to know specific details such as the fully
|
||||
qualified domain name (FQDN) and port number for their servers.
|
||||
|
||||
[RFC6352] defines the CardDAV address book access protocol based on
|
||||
HTTP [RFC2616], for accessing contact data stored on a server. As
|
||||
with CalDAV, clients also need to be able to discover CardDAV
|
||||
servers.
|
||||
|
||||
[RFC2782] defines a DNS-based service discovery protocol that has
|
||||
been widely adopted as a means of locating particular services within
|
||||
a local area network and beyond, using DNS SRV Resource Records
|
||||
(RRs). This has been enhanced to provide additional service meta-
|
||||
data by use of DNS TXT RRs as per [RFC6763].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 2]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
This specification defines new SRV service types for the CalDAV
|
||||
protocol and gives an example of how clients can use this together
|
||||
with other protocol features to enable simple client configuration.
|
||||
SRV service types for CardDAV are already defined in Section 11 of
|
||||
[RFC6352].
|
||||
|
||||
Another issue with CalDAV or CardDAV service discovery is that the
|
||||
service might not be located at the "root" URI of the HTTP server
|
||||
hosting it. Thus, a client needs to be able to determine the
|
||||
complete path component of the Request-URI to use in HTTP requests:
|
||||
the "context path". For example, if CalDAV is implemented as a
|
||||
"servlet" in a web server "container", the servlet "context path"
|
||||
might be "/caldav/". So the URI for the CalDAV service would be,
|
||||
e.g., "http://caldav.example.com/caldav/" rather than
|
||||
"http://caldav.example.com/". SRV RRs by themselves only provide an
|
||||
FQDN and port number for the service, not a path. Since the client
|
||||
"bootstrapping" process requires initial access to the "context path"
|
||||
of the service, there needs to be a simple way for clients to also
|
||||
discover what that path is.
|
||||
|
||||
This specification makes use of the "well-known URI" feature
|
||||
[RFC5785] of HTTP servers to provide a well-known URI for CalDAV or
|
||||
CardDAV services that clients can use. The well-known URI will point
|
||||
to a resource on the server that is simply a "stub" resource that
|
||||
provides a redirect to the actual "context path" resource
|
||||
representing the service endpoint.
|
||||
|
||||
2. Conventions Used in This Document
|
||||
|
||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||||
document are to be interpreted as described in [RFC2119].
|
||||
|
||||
3. CalDAV SRV Service Labels
|
||||
|
||||
This specification adds two SRV service labels for use with CalDAV:
|
||||
|
||||
_caldav: Identifies a CalDAV server that uses HTTP without
|
||||
Transport Layer Security (TLS) [RFC2818].
|
||||
|
||||
_caldavs: Identifies a CalDAV server that uses HTTP with TLS
|
||||
[RFC2818].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 3]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
Clients MUST honor Priority and Weight values in the SRV RRs, as
|
||||
described by [RFC2782].
|
||||
|
||||
Example: service record for server without TLS
|
||||
|
||||
_caldav._tcp SRV 0 1 80 calendar.example.com.
|
||||
|
||||
Example: service record for server with TLS
|
||||
|
||||
_caldavs._tcp SRV 0 1 443 calendar.example.com.
|
||||
|
||||
4. CalDAV and CardDAV Service TXT Records
|
||||
|
||||
When SRV RRs are used to advertise CalDAV and CardDAV services, it is
|
||||
also convenient to be able to specify a "context path" in the DNS to
|
||||
be retrieved at the same time. To enable that, this specification
|
||||
uses a TXT RR that follows the syntax defined in Section 6 of
|
||||
[RFC6763] and defines a "path" key for use in that record. The value
|
||||
of the key MUST be the actual "context path" to the corresponding
|
||||
service on the server.
|
||||
|
||||
A site might provide TXT records in addition to SRV records for each
|
||||
service. When present, clients MUST use the "path" value as the
|
||||
"context path" for the service in HTTP requests. When not present,
|
||||
clients use the ".well-known" URI approach described next.
|
||||
|
||||
Example: text record for service with TLS
|
||||
|
||||
_caldavs._tcp TXT path=/caldav
|
||||
|
||||
5. CalDAV and CardDAV Service Well-Known URI
|
||||
|
||||
Two ".well-known" URIs are registered by this specification for
|
||||
CalDAV and CardDAV services, "caldav" and "carddav" respectively (see
|
||||
Section 9). These URIs point to a resource that the client can use
|
||||
as the initial "context path" for the service they are trying to
|
||||
connect to. The server MUST redirect HTTP requests for that resource
|
||||
to the actual "context path" using one of the available mechanisms
|
||||
provided by HTTP (e.g., using a 301, 303, or 307 response). Clients
|
||||
MUST handle HTTP redirects on the ".well-known" URI. Servers MUST
|
||||
NOT locate the actual CalDAV or CardDAV service endpoint at the
|
||||
".well-known" URI as per Section 1.1 of [RFC5785].
|
||||
|
||||
Servers SHOULD set an appropriate Cache-Control header value (as per
|
||||
Section 14.9 of [RFC2616]) in the redirect response to ensure caching
|
||||
occurs or does not occur as needed or as required by the type of
|
||||
response generated. For example, if it is anticipated that the
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 4]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
location of the redirect might change over time, then a "no-cache"
|
||||
value would be used.
|
||||
|
||||
To facilitate "context paths" that might differ from user to user,
|
||||
the server MAY require authentication when a client tries to access
|
||||
the ".well-known" URI (i.e., the server would return a 401 status
|
||||
response to the unauthenticated request from the client, then return
|
||||
the redirect response only after a successful authentication by the
|
||||
client).
|
||||
|
||||
5.1. Example: Well-Known URI Redirects to Actual "Context Path"
|
||||
|
||||
A CalDAV server has a "context path" that is "/servlet/caldav". The
|
||||
client will use "/.well-known/caldav" as the path for its
|
||||
"bootstrapping" process after it has first found the FQDN and port
|
||||
number via an SRV lookup or via manual entry of information by the
|
||||
user, from which the client can parse suitable information. When the
|
||||
client makes an HTTP request against "/.well-known/caldav", the
|
||||
server would issue an HTTP redirect response with a Location response
|
||||
header using the path "/servlet/caldav". The client would then
|
||||
"follow" this redirect to the new resource and continue making HTTP
|
||||
requests there to complete its "bootstrapping" process.
|
||||
|
||||
6. Client "Bootstrapping" Procedures
|
||||
|
||||
This section describes a procedure that CalDAV or CardDAV clients
|
||||
SHOULD use to do their initial configuration based on minimal user
|
||||
input. The goal is to determine an http: or https: URI that
|
||||
describes the full path to the user's principal-URL [RFC3744].
|
||||
|
||||
1. Processing user input:
|
||||
|
||||
* For a CalDAV server:
|
||||
|
||||
+ Minimal input from a user would consist of a calendar user
|
||||
address and a password. A calendar user address is defined
|
||||
by iCalendar [RFC5545] to be a URI [RFC3986]. Provided a
|
||||
user identifier and a domain name can be extracted from the
|
||||
URI, this simple "bootstrapping" configuration can be done.
|
||||
|
||||
+ If the calendar user address is a "mailto:" [RFC6068] URI,
|
||||
the "mailbox" portion of the URI is examined, and the
|
||||
"local-part" and "domain" portions are extracted.
|
||||
|
||||
+ If the calendar user address is an "http:" [RFC2616] or
|
||||
"https:" [RFC2818] URI, the "userinfo" and "host" portion
|
||||
of the URI [RFC3986] is extracted.
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 5]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
* For a CardDAV server:
|
||||
|
||||
+ Minimal input from a user would consist of their email
|
||||
address [RFC5322] for the domain where the CardDAV service
|
||||
is hosted, and a password. The "mailbox" portion of the
|
||||
email address is examined, and the "local-part" and
|
||||
"domain" portions are extracted.
|
||||
|
||||
2. Determination of service FQDN and port number:
|
||||
|
||||
* An SRV lookup for _caldavs._tcp (for CalDAV) or _carddavs._tcp
|
||||
(for CardDAV) is done with the extracted "domain" as the
|
||||
service domain.
|
||||
|
||||
* If no result is found, the client can try _caldav._tcp (for
|
||||
CalDAV) or _carddav._tcp (for CardDAV) provided non-TLS
|
||||
connections are appropriate.
|
||||
|
||||
* If an SRV record is returned, the client extracts the target
|
||||
FQDN and port number. If multiple SRV records are returned,
|
||||
the client MUST use the Priority and Weight fields in the
|
||||
record to determine which one to pick (as per [RFC2782]).
|
||||
|
||||
* If an SRV record is not found, the client will need to prompt
|
||||
the user to enter the FQDN and port number information
|
||||
directly or use some other heuristic, for example, using the
|
||||
extracted "domain" as the FQDN and default HTTPS or HTTP port
|
||||
numbers. In this situation, clients MUST first attempt an
|
||||
HTTP connection with TLS.
|
||||
|
||||
3. Determination of initial "context path":
|
||||
|
||||
* When an SRV lookup is done and a valid SRV record returned,
|
||||
the client MUST also query for a corresponding TXT record and
|
||||
check for the presence of a "path" key in its response. If
|
||||
present, the value of the "path" key is used for the initial
|
||||
"context path".
|
||||
|
||||
* When an initial "context path" has not been determined from a
|
||||
TXT record, the initial "context path" is taken to be
|
||||
"/.well-known/caldav" (for CalDAV) or "/.well-known/carddav"
|
||||
(for CardDAV).
|
||||
|
||||
* If the initial "context path" derived from a TXT record
|
||||
generates HTTP errors when targeted by requests, the client
|
||||
SHOULD repeat its "bootstrapping" procedure using the
|
||||
appropriate ".well-known" URI instead.
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 6]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
4. Determination of user identifier:
|
||||
|
||||
* The client will need to make authenticated HTTP requests to
|
||||
the service. Typically, a "user identifier" is required for
|
||||
some form of user/password authentication. When a user
|
||||
identifier is required, clients MUST first use the "mailbox"
|
||||
portion of the calendar user address provided by the user in
|
||||
the case of a "mailto:" address and, if that results in an
|
||||
authentication failure, SHOULD fall back to using the "local-
|
||||
part" extracted from the "mailto:" address. For an "http:" or
|
||||
"https:" calendar user address, the "userinfo" portion is used
|
||||
as the user identifier for authentication. This is in line
|
||||
with the guidance outlined in Section 7. If these user
|
||||
identifiers result in authentication failure, the client
|
||||
SHOULD prompt the user for a valid identifier.
|
||||
|
||||
5. Connecting to the service:
|
||||
|
||||
* Subsequent to configuration, the client will make HTTP
|
||||
requests to the service. When using "_caldavs" or "_carddavs"
|
||||
services, a TLS negotiation is done immediately upon
|
||||
connection. The client MUST do certificate verification using
|
||||
the procedure outlined in Section 6 of [RFC6125] in regard to
|
||||
verification with an SRV RR as the starting point.
|
||||
|
||||
* The client does a "PROPFIND" [RFC4918] request with the
|
||||
request URI set to the initial "context path". The body of
|
||||
the request SHOULD include the DAV:current-user-principal
|
||||
[RFC5397] property as one of the properties to return. Note
|
||||
that clients MUST properly handle HTTP redirect responses for
|
||||
the request. The server will use the HTTP authentication
|
||||
procedure outlined in [RFC2617] or use some other appropriate
|
||||
authentication schemes to authenticate the user.
|
||||
|
||||
* If the server returns a 404 ("Not Found") HTTP status response
|
||||
to the request on the initial "context path", clients MAY try
|
||||
repeating the request on the "root" URI "/" or prompt the user
|
||||
for a suitable path.
|
||||
|
||||
* If the DAV:current-user-principal property is returned on the
|
||||
request, the client uses that value for the principal-URL of
|
||||
the authenticated user. With that, it can execute a
|
||||
"PROPFIND" request on the principal-URL and discover
|
||||
additional properties for configuration (e.g., calendar or
|
||||
address book "home" collections).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 7]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
* If the DAV:current-user-principal property is not returned,
|
||||
then the client will need to request the principal-URL path
|
||||
from the user in order to continue with configuration.
|
||||
|
||||
Once a successful account discovery step has been done, clients
|
||||
SHOULD cache the service details that were successfully used (user
|
||||
identity, principal-URL with full scheme/host/port details) and reuse
|
||||
those when connecting again at a later time.
|
||||
|
||||
If a subsequent connection attempt fails, or authentication fails
|
||||
persistently, clients SHOULD retry the SRV lookup and account
|
||||
discovery to "refresh" the cached data.
|
||||
|
||||
7. Guidance for Service Providers
|
||||
|
||||
Service providers wanting to offer CalDAV or CardDAV services that
|
||||
can be configured by clients using SRV records need to follow certain
|
||||
procedures to ensure proper operation.
|
||||
|
||||
o CalDAV or CardDAV servers SHOULD be configured to allow
|
||||
authentication with calendar user addresses (just taking the
|
||||
"mailbox" portion of any "mailto:" URI) or email addresses
|
||||
respectively, or with "user identifiers" extracted from them. In
|
||||
the former case, the addresses MUST NOT conflict with other forms
|
||||
of a permitted user login name. In the latter case, the extracted
|
||||
"user identifiers" need to be unique across the server and MUST
|
||||
NOT conflict with any login name on the server.
|
||||
|
||||
o Servers MUST force authentication for "PROPFIND" requests that
|
||||
retrieve the DAV:current-user-principal property to ensure that
|
||||
the value of the DAV:current-user-principal property returned
|
||||
corresponds to the principal-URL of the user making the request.
|
||||
|
||||
o If the service provider uses TLS, the service provider MUST ensure
|
||||
a certificate is installed that can be verified by clients using
|
||||
the procedure outlined in Section 6 of [RFC6125] in regard to
|
||||
verification with an SRV RR as the starting point. In particular,
|
||||
certificates SHOULD include SRV-ID and DNS-ID identifiers as
|
||||
appropriate, as described in Section 8.
|
||||
|
||||
o Service providers should install the appropriate SRV records for
|
||||
the offered services and optionally include TXT records.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 8]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
Clients that support TLS as defined by [RFC2818] SHOULD try the
|
||||
"_caldavs" or "_carddavs" services first before trying the "_caldav"
|
||||
or "_carddav" services respectively. If a user has explicitly
|
||||
requested a connection with TLS, the client MUST NOT use any service
|
||||
information returned for the "_caldav" or "_carddav" services.
|
||||
Clients MUST follow the certificate-verification process specified in
|
||||
[RFC6125].
|
||||
|
||||
A malicious attacker with access to the DNS server data, or that is
|
||||
able to get spoofed answers cached in a recursive resolver, can
|
||||
potentially cause clients to connect to any server chosen by the
|
||||
attacker. In the absence of a secure DNS option, clients SHOULD
|
||||
check that the target FQDN returned in the SRV record matches the
|
||||
original service domain that was queried. If the target FQDN is not
|
||||
in the queried domain, clients SHOULD verify with the user that the
|
||||
SRV target FQDN is suitable for use before executing any connections
|
||||
to the host. Alternatively, if TLS is being used for the service,
|
||||
clients MUST use the procedure outlined in Section 6 of [RFC6125] to
|
||||
verify the service. When the target FQDN does not match the original
|
||||
service domain that was queried, clients MUST check the SRV-ID
|
||||
identifier in the server's certificate. If the FQDN does match,
|
||||
clients MUST check any SRV-ID identifiers in the server's certificate
|
||||
or, if no SRV-ID identifiers are present, MUST check the DNS-ID
|
||||
identifiers in the server's certificate.
|
||||
|
||||
Implementations of TLS [RFC5246], used as the basis for TLS
|
||||
([RFC2818]), typically support multiple versions of the protocol as
|
||||
well as the older SSL (Secure Sockets Layer) protocol. Because of
|
||||
known security vulnerabilities, clients and servers MUST NOT request,
|
||||
offer, or use SSL 2.0. See Appendix E.2 of [RFC5246] for further
|
||||
details.
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
9.1. Well-Known URI Registrations
|
||||
|
||||
This document defines two ".well-known" URIs using the registration
|
||||
procedure and template from Section 5.1 of [RFC5785].
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 9]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
9.1.1. caldav Well-Known URI Registration
|
||||
|
||||
URI suffix: caldav
|
||||
|
||||
Change controller: IETF
|
||||
|
||||
Specification document(s): This RFC
|
||||
|
||||
Related information: See also [RFC4791].
|
||||
|
||||
9.1.2. carddav Well-Known URI Registration
|
||||
|
||||
URI suffix: carddav
|
||||
|
||||
Change controller: IETF
|
||||
|
||||
Specification document(s): This RFC
|
||||
|
||||
Related information: See also [RFC6352].
|
||||
|
||||
9.2. Service Name Registrations
|
||||
|
||||
This document registers four new service names as per [RFC6335]. Two
|
||||
are defined in this document, and two are defined in [RFC6352],
|
||||
Section 11.
|
||||
|
||||
9.2.1. caldav Service Name Registration
|
||||
|
||||
Service Name: caldav
|
||||
|
||||
Transport Protocol(s): TCP
|
||||
|
||||
Assignee: IESG <iesg@ietf.org>
|
||||
|
||||
Contact: IETF Chair <chair@ietf.org>
|
||||
|
||||
Description: Calendaring Extensions to WebDAV (CalDAV) - non-TLS
|
||||
|
||||
Reference: [RFC6764]
|
||||
|
||||
Assignment Note: This is an extension of the http service. Defined
|
||||
TXT keys: path=<context path>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 10]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
9.2.2. caldavs Service Name Registration
|
||||
|
||||
Service Name: caldavs
|
||||
|
||||
Transport Protocol(s): TCP
|
||||
|
||||
Assignee: IESG <iesg@ietf.org>
|
||||
|
||||
Contact: IETF Chair <chair@ietf.org>
|
||||
|
||||
Description: Calendaring Extensions to WebDAV (CalDAV) - over TLS
|
||||
|
||||
Reference: [RFC6764]
|
||||
|
||||
Assignment Note: This is an extension of the https service. Defined
|
||||
TXT keys: path=<context path>
|
||||
|
||||
9.2.3. carddav Service Name Registration
|
||||
|
||||
Service Name: carddav
|
||||
|
||||
Transport Protocol(s): TCP
|
||||
|
||||
Assignee: IESG <iesg@ietf.org>
|
||||
|
||||
Contact: IETF Chair <chair@ietf.org>
|
||||
|
||||
Description: vCard Extensions to WebDAV (CardDAV) - non-TLS
|
||||
|
||||
Reference: [RFC6352]
|
||||
|
||||
Assignment Note: This is an extension of the http service. Defined
|
||||
TXT keys: path=<context path>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 11]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
9.2.4. carddavs Service Name Registration
|
||||
|
||||
Service Name: carddavs
|
||||
|
||||
Transport Protocol(s): TCP
|
||||
|
||||
Assignee: IESG <iesg@ietf.org>
|
||||
|
||||
Contact: IETF Chair <chair@ietf.org>
|
||||
|
||||
Description: vCard Extensions to WebDAV (CardDAV) - over TLS
|
||||
|
||||
Reference: [RFC6352]
|
||||
|
||||
Assignment Note: This is an extension of the https service. Defined
|
||||
TXT keys: path=<context path>
|
||||
|
||||
10. Acknowledgments
|
||||
|
||||
This specification was suggested by discussion that took place within
|
||||
the Calendaring and Scheduling Consortium's CalDAV Technical
|
||||
Committee. The author thanks the following for their contributions:
|
||||
Stuart Cheshire, Bernard Desruisseaux, Eran Hammer-Lahav, Helge Hess,
|
||||
Arnaud Quillaud, Wilfredo Sanchez, and Joe Touch.
|
||||
|
||||
11. References
|
||||
|
||||
11.1. Normative References
|
||||
|
||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
[RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
|
||||
Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
|
||||
Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
|
||||
|
||||
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
|
||||
Leach, P., Luotonen, A., and L. Stewart, "HTTP
|
||||
Authentication: Basic and Digest Access Authentication",
|
||||
RFC 2617, June 1999.
|
||||
|
||||
[RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
|
||||
specifying the location of services (DNS SRV)", RFC 2782,
|
||||
February 2000.
|
||||
|
||||
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 12]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
[RFC3744] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web
|
||||
Distributed Authoring and Versioning (WebDAV)
|
||||
Access Control Protocol", RFC 3744, May 2004.
|
||||
|
||||
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
|
||||
Resource Identifier (URI): Generic Syntax", STD 66,
|
||||
RFC 3986, January 2005.
|
||||
|
||||
[RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault,
|
||||
"Calendaring Extensions to WebDAV (CalDAV)", RFC 4791,
|
||||
March 2007.
|
||||
|
||||
[RFC4918] Dusseault, L., "HTTP Extensions for Web Distributed
|
||||
Authoring and Versioning (WebDAV)", RFC 4918, June 2007.
|
||||
|
||||
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
|
||||
(TLS) Protocol Version 1.2", RFC 5246, August 2008.
|
||||
|
||||
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
|
||||
October 2008.
|
||||
|
||||
[RFC5397] Sanchez, W. and C. Daboo, "WebDAV Current Principal
|
||||
Extension", RFC 5397, December 2008.
|
||||
|
||||
[RFC5785] Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known
|
||||
Uniform Resource Identifiers (URIs)", RFC 5785,
|
||||
April 2010.
|
||||
|
||||
[RFC6068] Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto'
|
||||
URI Scheme", RFC 6068, October 2010.
|
||||
|
||||
[RFC6125] Saint-Andre, P. and J. Hodges, "Representation and
|
||||
Verification of Domain-Based Application Service Identity
|
||||
within Internet Public Key Infrastructure Using X.509
|
||||
(PKIX) Certificates in the Context of Transport Layer
|
||||
Security (TLS)", RFC 6125, March 2011.
|
||||
|
||||
[RFC6335] Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S.
|
||||
Cheshire, "Internet Assigned Numbers Authority (IANA)
|
||||
Procedures for the Management of the Service Name and
|
||||
Transport Protocol Port Number Registry", BCP 165,
|
||||
RFC 6335, August 2011.
|
||||
|
||||
[RFC6352] Daboo, C., "CardDAV: vCard Extensions to Web Distributed
|
||||
Authoring and Versioning (WebDAV)", RFC 6352, August 2011.
|
||||
|
||||
[RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service
|
||||
Discovery", RFC 6763, February 2013.
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 13]
|
||||
|
||||
RFC 6764 SRV for CalDAV & CardDAV February 2013
|
||||
|
||||
|
||||
11.2. Informative References
|
||||
|
||||
[RFC5545] Desruisseaux, B., "Internet Calendaring and Scheduling
|
||||
Core Object Specification (iCalendar)", RFC 5545,
|
||||
September 2009.
|
||||
|
||||
Author's Address
|
||||
|
||||
Cyrus Daboo
|
||||
Apple Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino, CA 95014
|
||||
USA
|
||||
|
||||
EMail: cyrus@daboo.name
|
||||
URI: http://www.apple.com/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Daboo Standards Track [Page 14]
|
||||
|
||||
BIN
doc/undraw-license.pdf
Normal file
BIN
doc/undraw-license.pdf
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue