GEOPRIV WG J. Winterbottom
Internet-Draft M. Thomson
Intended status: Standards Track Andrew
Expires: September 3, 2007 B. Stark
BellSouth
March 2, 2007
HTTP Enabled Location Delivery (HELD)
draft-winterbottom-http-location-delivery-05.txt
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 3, 2007.
Copyright Notice
Copyright (C) The IETF Trust (2007).
Winterbottom, et al. Expires September 3, 2007 [Page 1]
Internet-Draft HELD March 2007
Abstract
A Geopriv using protocol is described that is used for retrieving
location information from a server within an access network. The
protocol includes options for retrieving location information either
by-value or by-reference. The protocol supports mobile and nomadic
devices through Location URIs. The protocol is an application-layer
protocol that is independent of session-layer; an HTTP, web services
binding is specified.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1. Exclusions . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Device or Target . . . . . . . . . . . . . . . . . . . . . 6
1.3. The Bigger Picture . . . . . . . . . . . . . . . . . . . . 6
2. Conventions used in this document . . . . . . . . . . . . . . 8
2.1. GEOPRIV Terminology . . . . . . . . . . . . . . . . . . . 8
3. HELD Overview . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1. Requesting Location Information Directly . . . . . . . . . 10
3.1.1. Shaping the PIDF-LO . . . . . . . . . . . . . . . . . 11
3.2. Requesting a Location URI . . . . . . . . . . . . . . . . 11
3.2.1. Establishing a Location Server Context . . . . . . . . 12
4. Protocol Description . . . . . . . . . . . . . . . . . . . . . 14
4.1. Protocol Binding . . . . . . . . . . . . . . . . . . . . . 15
4.2. Location Request . . . . . . . . . . . . . . . . . . . . . 15
4.3. Contexts . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.1. Creating Contexts . . . . . . . . . . . . . . . . . . 16
4.3.2. Updating Contexts . . . . . . . . . . . . . . . . . . 17
4.3.3. Terminating Contexts . . . . . . . . . . . . . . . . . 17
4.4. Combined Context and Location Requests . . . . . . . . . . 18
4.5. Indicating Errors . . . . . . . . . . . . . . . . . . . . 18
5. Protocol Parameters . . . . . . . . . . . . . . . . . . . . . 19
5.1. "responseTime" Parameter . . . . . . . . . . . . . . . . . 20
5.2. "assert" Parameter . . . . . . . . . . . . . . . . . . . . 20
5.2.1. "method" Parameter . . . . . . . . . . . . . . . . . . 20
5.2.2. "timestamp" Parameter . . . . . . . . . . . . . . . . 20
5.2.3. "expires" Parameter . . . . . . . . . . . . . . . . . 21
5.2.4. "exact" Parameter . . . . . . . . . . . . . . . . . . 21
5.3. "locationType" Parameter . . . . . . . . . . . . . . . . . 21
5.3.1. "exact" Parameter . . . . . . . . . . . . . . . . . . 22
5.4. "profile" Parameter . . . . . . . . . . . . . . . . . . . 22
5.4.1. "presentity" Parameter . . . . . . . . . . . . . . . . 23
5.4.2. "retentionExpiry" Parameter . . . . . . . . . . . . . 23
5.4.3. "retentionInterval" Parameter . . . . . . . . . . . . 23
5.4.4. "retransmission" Parameter . . . . . . . . . . . . . . 24
5.4.5. "rulesetURI" Parameter . . . . . . . . . . . . . . . . 24
Winterbottom, et al. Expires September 3, 2007 [Page 2]
Internet-Draft HELD March 2007
5.5. "signed" Parameter . . . . . . . . . . . . . . . . . . . . 24
5.6. "lifetime" Parameter . . . . . . . . . . . . . . . . . . . 24
5.7. "rules" Parameter . . . . . . . . . . . . . . . . . . . . 24
5.7.1. "rulesetURI" Parameter . . . . . . . . . . . . . . . . 25
5.7.2. Common Policy "ruleset" Parameter . . . . . . . . . . 25
5.8. "code" Parameter . . . . . . . . . . . . . . . . . . . . . 25
5.9. "message" Parameter . . . . . . . . . . . . . . . . . . . 27
5.10. "context" Parameter . . . . . . . . . . . . . . . . . . . 27
5.10.1. "locationURI" Parameter . . . . . . . . . . . . . . . 27
5.10.2. "password" Parameter . . . . . . . . . . . . . . . . . 27
5.10.3. "expires" Parameter . . . . . . . . . . . . . . . . . 28
5.11. "location" Parameter . . . . . . . . . . . . . . . . . . . 28
6. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7. HTTP Binding . . . . . . . . . . . . . . . . . . . . . . . . . 35
7.1. HTTP Binding WSDL . . . . . . . . . . . . . . . . . . . . 35
8. Security Considerations . . . . . . . . . . . . . . . . . . . 38
8.1. Return Routability . . . . . . . . . . . . . . . . . . . . 38
8.2. Transaction Layer Security . . . . . . . . . . . . . . . . 39
8.3. Veracity of Asserted LI . . . . . . . . . . . . . . . . . 39
9. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.1. Simple HTTP Binding Example Messages . . . . . . . . . . . 40
9.2. Location Request Examples . . . . . . . . . . . . . . . . 42
9.3. Context Creation and Update Examples . . . . . . . . . . . 44
9.4. Sample LG WSDL Document . . . . . . . . . . . . . . . . . 48
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49
10.1. IANA Registry for HELD Result Codes . . . . . . . . . . . 49
10.2. URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:geopriv:held . . . . . . . . . . . 49
10.3. XML Schema Registration . . . . . . . . . . . . . . . . . 50
10.4. URN Sub-Namespace Registration for
urn:ietf:params:xml:ns:geopriv:held:http . . . . . . . . . 50
10.5. MIME Media Type Registration for 'application/held+xml' . 51
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 53
12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 54
12.1. Normative References . . . . . . . . . . . . . . . . . . . 54
12.2. Informative References . . . . . . . . . . . . . . . . . . 55
Appendix A. HELD Compliance to IETF LCP requirements . . . . . . 58
A.1. L7-1: Identifier Choice . . . . . . . . . . . . . . . . . 58
A.2. L7-2: Mobility Support . . . . . . . . . . . . . . . . . . 58
A.3. L7-3: Layer 7 and Layer 2/3 Provider Relationship . . . . 59
A.4. L7-4: Layer 2 and Layer 3 Provider Relationship . . . . . 59
A.5. L7-5: Legacy Device Considerations . . . . . . . . . . . . 60
A.6. L7-6: VPN Awareness . . . . . . . . . . . . . . . . . . . 60
A.7. L7-7: Network Access Authentication . . . . . . . . . . . 60
A.8. L7-8: Network Topology Unawareness . . . . . . . . . . . . 61
Appendix B. HELD Compliance to NENA Location Acqusition
Requirements . . . . . . . . . . . . . . . . . . . . 62
B.1. DA1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Winterbottom, et al. Expires September 3, 2007 [Page 3]
Internet-Draft HELD March 2007
B.2. DA2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
B.3. DA3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
B.4. DA4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.5. DA5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.6. DA6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.7. DA7 . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
B.8. DA8 . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.9. DA9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.10. DA10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
B.11. DA11 . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.12. DA12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.13. Rep1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
B.14. Rep2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.15. Rep3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.16. Rep4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.17. LocSec1 . . . . . . . . . . . . . . . . . . . . . . . . . 66
B.18. LocSec2 . . . . . . . . . . . . . . . . . . . . . . . . . 67
B.19. LocSec3 . . . . . . . . . . . . . . . . . . . . . . . . . 67
B.20. LocSec4 . . . . . . . . . . . . . . . . . . . . . . . . . 67
B.21. LocSec5 . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.22. LocSec6 . . . . . . . . . . . . . . . . . . . . . . . . . 68
B.23. LocSec7 . . . . . . . . . . . . . . . . . . . . . . . . . 68
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 69
Intellectual Property and Copyright Statements . . . . . . . . . . 70
Winterbottom, et al. Expires September 3, 2007 [Page 4]
Internet-Draft HELD March 2007
1. Introduction
The location of a Device is information that is useful for a number
of applications. A Device might be able to determine this
information using its own resources, but more often than not, the
Device must rely on its access network to provide this information.
This document describes a protocol that can be used to acquire
Location Information (LI) from a service within an access network.
This specification identifies two methods for acquiring LI. Location
may be retrieved from a Location Generator (LG) by-value, that is,
the Device may acquire LI directly. Alternatively, the Device may
request that the LG provide a location URI so that LI can be
distributed by-reference. Both of these methods are compatible, and
both can be provided concurrently from the same LG so that
application needs can be addressed individually.
This specification defines an XML-based protocol that enables the
retrieval of LI from a LG. This protocol can be bound to any
session-layer protocol, particularly those capable of MIME transport;
an HTTP binding is included as a minimum requirement.
1.1. Exclusions
This document defines a protocol for configuration purposes; that is,
a protocol for requesting (and receiving) the information necessary
to use LI. This document does not define a Geopriv Using Protocol.
The LG is assumed to be present within the same administrative domain
as the Device (the access network), which limits the security threats
that this protocol is exposed to.
This document does not specify how LI is derived. Determination of
the physical location of a network termination point is dependent on
the type of access network and the capabilities of networking
equipment. The specific methods that could be used are innumerable,
therefore this is left to individual network and equipment
implementations.
Providing LI by-reference implies that a server is able to provide
the Device with a public, globally-routable URI. How this URI is
provided is not covered by this specification. This includes any
interactions between the LG and LS necessary to facilitate the
provision of a Location URI.
This document does not define how an LG is discovered or configured.
Service discovery techniques are described in
[I-D.thomson-geopriv-lis-discovery].
Winterbottom, et al. Expires September 3, 2007 [Page 5]
Internet-Draft HELD March 2007
1.2. Device or Target
LI provided for the Device is often represented as the location of a
user. However, in this document LI is attributed to a Device and not
a person. Primarily, this is because location determination
technologies are generally designed to locate a Device and not a
person. In addition to this, unless the Device requires active user
authentication, there is no guarantee that any particular individual
is using the Device at that instant. Thus, if any claim of veracity
is to be made for LI, the distinction between Target and Device must
be made explicit.
This distinction should not lead to the impression that the location
of the Device does not impact the privacy constraints required by
this protocol. Revealing the location of the Device almost
invariably reveals some information about the location of the user of
the Device, therefore the same level of privacy protection demanded
by a user is required for the Device.
It is expected that, for most applications, this distinction will be
unnecessary: LI for the Device will be used as an adequate substitute
for the user's LI. This requires either some additional assurances
about the link between Device and Target, or an acceptance of the
aforementioned limitations.
This document assumes that the Device is responsible for the protocol
interactions described and that it does so with the authority of the
Target and Rule Maker (RM).
1.3. The Bigger Picture
This document describes an interface between a Device and a Location
Generator (LG). Detailing the interactions between these two
entities requires a wider understanding of other interested parties.
For the Device, the most important consideration is the Target. In
some cases, this is the same as the Device, but it is more likely to
be a human user. The foundation of this protocol is that the Target
is able to direct the dissemination of LI, that is, the Target
provides authorization policies and otherwise controls how LI is
granted to Location Recipients (LRs). This extends to when a
Location Server (LS) is employed to provide a Location URI; the LS
cannot provide LI to an LR without express permission from the
Target.
The LG exists as an access network service. An Access Provider (AP)
operates this service so that Devices (and Targets) can retrieve LI.
The LG exists because not all Devices are capable of determining LI,
Winterbottom, et al. Expires September 3, 2007 [Page 6]
Internet-Draft HELD March 2007
and because, even if a Device is able to determine its own LI, it may
be more efficient with assistance.
The following diagram shows one possible configuration of the roles
identified in [RFC3693] and where this protocol applies.
+-----------+ +-----------+
| Location | | Location |
| Generator | - - - - | Server |
| | | |
+-----------+ +-----------+
| |
HELD |
| |
Rule Maker - _ +-----------+ +-----------+
o - - | Device | | Location |
| (Target) |----Object--->| Recipient |
| | | (LS, RH) | | |
+-----------+ +----------+ +-----------+
Figure 2: Simple Location Request Model
In this model, the Device in this scenario acts as a Location Server
(LS) and Rule Holder (RH); it is responsible for making authorization
decisions about which Location Recipients are given LOs.
The LG needs to uniquely identify the Device within the access
network. The source address of the request message is sufficient in
most cases. Once the Device is identified, the LG uses network
domain-specific information to determine the location of the Device.
An LI request does not need to include any identification information
other than return addressing. In fact, the HTTP binding (Section 7)
includes the option for a GET request. Return routability also
addresses a number of security concerns, see Section 8.
The response from the LG is a PIDF-LO document [RFC4119], unless
there were errors in processing the request.
The interface between Device (acting as LS) and Location Recipient
(LR) is application-specific and outside the scope of this
specification.
Winterbottom, et al. Expires September 3, 2007 [Page 10]
Internet-Draft HELD March 2007
3.1.1. Shaping the PIDF-LO
A Device can include additional information in an LI request that
controls how the LG populates the fields in a PIDF-LO document.
Related to privacy, a presentity URI and usage rules can be
specified. The Device can also include a location estimate, or
request a specific type of location information, including a request
for a signed PIDF-LO.
When requesting LI, the Device can include a presentity URI for the
Target and a ruleset reference. The LG incorporates this information
in the PIDF-LO document, or modifies the document accordingly.
LI contained within a PIDF-LO document can be either geodetic
(coordinates using latitude and longitude or some other coordinate
system) or civic (street or postal addresses). The Device can
request that the LG provide a specific type of LI, including whether
a jurisdictional or postal civic address is required.
If a Device is capable of providing its own location it can include
this in a request. The LG is then able to include this LI in the
returned PIDF-LO. The type of LI is inferred from the request when
LI is provided.
The PIDF-LO document generated by an LG MUST follow the rules in
[I-D.ietf-geopriv-pdif-lo-profile]. The LI sent in a request MUST
follow the subset of those rules relating to the construction of the
"location-info" element.
3.2. Requesting a Location URI
Requesting LI directly does not always address the requirements of an
application. A Location URI is a URI [RFC3986] of any scheme, which
a Location Recipient (LR) can use to retrieve LI. A Device can
request a Location URI instead of LI.
Figure 3 illustrates how this usage of HELD fits within the model
presented in [RFC3693]. The first aspect of the diagram shows how
the Device acts as an agent for the Target and retrieves a Location
URI, which it then provides to the Location Recipient. The second
aspect has the Device acting as an agent for the Rule Maker; the
Device forwards rules to the LG, which forwards them to the LS.
Winterbottom, et al. Expires September 3, 2007 [Page 11]
Internet-Draft HELD March 2007
+-----------+ Location +--------------+
| Location |------URI------>| Device |
| Generator | | (Target) |
| |<-----Rules-----| (Rule Maker) |
+-----------+ +--------------+
| |
LO & Rules Location URI
| |
V V
+----------+ +------------+
| Location | Location | Location |
| Server |------Object----->| Recipient |
| | | |
+----------+ +------------+
Figure 3: Location URI Usage Model
Note that the Location Server takes the role of a (Private) Rule
Holder when the rules are provided by-value. The rules may also be
provided to the LG and LS by-reference, in which case, a Public Rule
Holder is required; the Public Rule Holder is not shown in this
diagram.
The interface between Device (acting as LS) and Location Recipient
(LR) is application-specific and outside the scope of this
specification. Also, any interface between Device (acting as RM) and
a Public Rule Holder is not relevant to this specification.
The merits and drawbacks of using a Location URI approach are
discussed in [I-D.marshall-geopriv-lbyr-requirements].
3.2.1. Establishing a Location Server Context
A Location URI is allocated for a Device by the LS. If the LS is to
be able to service queries for location directed at the Location URI,
it must maintain certain information. When the LG receives a request
for a Location URI, it requests that the LS allocate a URI for a
particular Device. As a part of providing a Location URI, the LS
also creates a _context_, which contains the information that it
requires to properly service requests to the URI.
This document does not make any normative statements about the
interface between the LG and LS. Any assumptions that are made about
the nature of this interface are stated where necessary.
A context contains sufficient information for the LS to identify the
Device to the LG, so that LI can be generated as required, which
could be on a per-request basis. The context also includes
Winterbottom, et al. Expires September 3, 2007 [Page 12]
Internet-Draft HELD March 2007
instructions from the Device on how the PIDF-LO is to be generated,
as described in Section 3.1.1.
The context contains an authorization policy that describes to whom,
and how, LI is granted. This is a common-policy document
[I-D.ietf-geopriv-common-policy] that is provided by the Device in
the context creation request, either directly, or by reference.
Winterbottom, et al. Expires September 3, 2007 [Page 13]
Internet-Draft HELD March 2007
4. Protocol Description
As discussed in Section 3, this protocol provides two basic
functions: LI request and Location URI request. Messages are defined
as XML documents.
The Location Request message is described in Section 4.2. A Location
Request from a Device results in a PIDF-LO document in case of
success, or an error message.
In requesting a Location URI, the Device requests that a context be
created on the LS. The parameters for the create context request are
described in Section 4.3.1. The response to a context creation
request includes Location URIs and a password that can be used to
update the information contained in the context. The details stored
by the LS can be updated at any time after creation using the update
context request, described in Section 4.3.2.
Table 1 shows the basic set of messages supported by this protocol
and their respective responses, successful or otherwise.
+------------+------------------+-------------------+---------------+
| Operation | Request Message | Successful | Error |
| | | Response | Response |
+------------+------------------+-------------------+---------------+
| Request | locationRequest | PIDF-LO document | error |
| Location | (Section 4.2) | [RFC4119] | (Section 4.5) |
| | | | |
| Create | createContext | contextResponse | error |
| Context | (Section 4.3.1) | | (Section 4.5) |
| | | | |
| Update | updateContext | contextResponse | error |
| Context | (Section 4.3.2) | | (Section 4.5) |
+------------+------------------+-------------------+---------------+
Table 1: HELD Operations
A MIME type "application/held+xml" is registered in Section 10.5 to
distinguish HELD messages from other XML document bodies. This
specification follows the recommendations and conventions described
in [RFC3023], including the naming convention of the type ('+xml'
suffix) and the usage of the 'charset' parameter.
Section 5 contains a more thorough description of the protocol
parameters, valid values, and how each should be handled. Section 6
contains a more specific definition of the structure of these
messages in the form of an XML Schema [W3C.REC-xmlschema-1-20041028].
Winterbottom, et al. Expires September 3, 2007 [Page 14]
Internet-Draft HELD March 2007
4.1. Protocol Binding
The HELD protocol is an application-layer protocol that is defined
independently of any lower layers. This means that any protocol can
be used to transport this protocol providing that it can provide a
few basic features:
o The protocol must have acknowledged delivery.
o The protocol must be able to correlate a response with a request.
o The protocol must provide authentication, privacy and protection
against modification.
Candidate protocols that could be used to address these purposes
include: TCP [RFC0793], TLS [RFC2246], SASL [RFC2222], HTTP
[RFC2616], SIP [RFC3261], BEEP [RFC3080] and SOAP
[W3C.REC-soap12-part1-20030624] [W3C.REC-soap12-part2-20030624].
This document includes a binding that uses a combination of HTTP, TLS
and TCP in Section 7.
4.2. Location Request
A location request is sent from the Device to the LG when it requires
LI. This request can be very simple, including no parameters; in
fact, the HTTP binding includes a GET request that does not include a
message body.
A Device MAY make an assertion about its own location as part of a
location request. Devices that have some means of acquiring LI,
either from embedded technology like Global Positioning System (GPS)
receivers or from user input, can use this to convey that information
to the LG. The "assert" element can be used to convey this
information.
The type of LI that a Device requests is determined by the type of LI
that is included in the "assert" element. When asserted LI is not
provided, the Device MAY specify the type of location requested using
the "locationType" element.
LI provided by the Device is potentially more precise than that
provided by the LG, therefore the LG MAY use this information to
create a response. The LG SHOULD validate the LI provided for
accuracy and precision before using this information.
The Device MAY specify a "profile" element that instructs the LG on
how to construct the LO. Alternatively, if the Device has created a
profile in an LS context, the Device can provide a "context" element
Winterbottom, et al. Expires September 3, 2007 [Page 15]
Internet-Draft HELD March 2007
so that the LG can retrieve the profile from the LS.
The location request is made by sending a document formed of a
"locationRequest" element. The successful response to a location
request is a PIDF-LO document, unless the request fails, in which
case the LG SHOULD provide an error indication document.
4.3. Contexts
A context is established by the LS in order to provide a Location
URI. The context includes information necessary to identify the
Device and determine its location when an LR requests an LO using the
Location URI.
4.3.1. Creating Contexts
The Device uses the "createContext" message to request that the LG,
and the LS, assign a Location URI. This establishes a context at the
LS.
The LS MUST maintain the information provided in the create context
request. The create context request includes a time limit, which
sets the maximum time that this context can be maintained.
The response to a create context request contains information that
the Device can use to identify a context. A set of Location URIs are
included, each one MUST uniquely identify the context; that is, the
LS MUST be able to identify a context based on a single Location URI.
A Device can distribute a Location URI to an LR to allow it retrieve
LI from the LS.
A Location URI MUST NOT contain any information that could be used to
identify the Device or Target. It is RECOMMENDED that a Location URI
contain a public address for the LS and a random sequence of
characters that the LS can use to identify a particular context. The
presentity identifier included in a PIDF-LO document SHOULD NOT be
used for either part or the entirety of a Location URI.
The response to a create context request MUST include the time when
the LS will terminate the context. The LS MUST NOT respond to any
queries to the context beyond this time. A response to a context
creation also includes a password that the Device uses to identify
itself when updating the context at any time before the context
expiry time.
Winterbottom, et al. Expires September 3, 2007 [Page 16]
Internet-Draft HELD March 2007
4.3.2. Updating Contexts
A Device can update any of the information it has provided for a
context at any time. The update context request includes the same
information as the create context request with the addition of
information that identifies an existing context.
A Device uses any one of the Location URIs provided to uniquely
identify a context when updating context information. The context
password MUST be provided when updating context information.
If a Device includes an authorization policy (or ruleset) in an
update context request, the LS MUST refresh any stored copy of the
authorization policy. This is especially important for authorization
policies that are provided by-reference; the LS MUST update the
authorization policy, even if the URI has not changed. Updated
authorization policies MUST be processed by the LG and LS before any
subsequent requests from LRs are accepted; the LG and LS MAY defer
processing of the authorization policy until after a response is sent
to the Device.
The update context request is constructed using the "updateContext"
element. A successful response is the "contextResponse" element,
which is the same as the response to a create context response.
The update context request can also indicate that data can be removed
by the context by specifying a _nil_ value for any of the parameters,
using the "xsi:nil" attribute. This applies to the profile
(Section 5.4) element.
The response to an update context request is identical in form to the
create context response, with updated information about the context.
The Location URIs MUST be the same as those in the response to the
initial create context request, but the password and expiry time MAY
be changed.
4.3.3. Terminating Contexts
The update context request can be used to instruct the LS to
terminate a context. The "lifetime" element in the request is set to
a zero duration. Once the context has been terminated, or it has
expired, Location URIs that reference that context can no longer be
used and the Device MUST NOT use the Location URIs or password
relating to that context.
The LS MAY terminate a context without notifying the Device. The LS
SHOULD terminate contexts if it, or the LG, detect that any
information relating to the Device changes in a way that invalidates
Winterbottom, et al. Expires September 3, 2007 [Page 17]
Internet-Draft HELD March 2007
the context.
When the Device requests that a context be terminated, the LG
responds with a "contextResponse" message that does not include any
context information; this message MUST include the HELD "201"
response code.
4.4. Combined Context and Location Requests
HELD supports an optimization that allows for the creation or update
of a context while simultaneously requesting location information.
The optional "location" attribute on the "createContext" or
"updateContext" request can be used to request that the LG include a
PIDF-LO in the "contextResponse". This PIDF-LO is formed according
to the profile details associated with the context.
4.5. Indicating Errors
In the event of an error, the LG SHOULD respond to the Device with an
error document. The error response applies to all request types and
SHOULD also be sent in response to any unrecognized request.
An error indication document consists of an "error" element. The
"error" element MUST include a "code" attribute that indicates the
type of error. A set of predefined error codes are included in
Section 5.8.
Error responses MAY also include a "message" attribute that can
include additional information. This information SHOULD be for
diagnostic purposes only, and MAY be in any language. The language
of the message SHOULD be indicated with an "xml:lang" attribute.
Winterbottom, et al. Expires September 3, 2007 [Page 18]
Internet-Draft HELD March 2007
5. Protocol Parameters
This section describes, in detail the parameters that are used for
this protocol. Table 2 lists the top-level components used within
the protocol and where they are used.
+------------------------+-------------+-------------+--------------+
| Parameter | Location | Create | Update |
| | Request | Context | Context |
+------------------------+-------------+-------------+--------------+
| responseTime | Request | Request | Request |
| (Section 5.1) | | | |
| | | | |
| assert (Section 5.2) | Request | | |
| | | | |
| exact (assert) | Request | | |
| (Section 5.2.4) | | | |
| | | | |
| locationType | Request | | |
| (Section 5.3) | | | |
| | | | |
| exact (locationType) | Request | | |
| (Section 5.3.1) | | | |
| | | | |
| profile (Section 5.4) | Request | Request | Request |
| | | | |
| signed (Section 5.5) | Request | | |
| | | | |
| lifetime (Section 5.6) | | Request | Request |
| | | | |
| rules (Section 5.7) | | Request | Request |
| | | | |
| code (Section 5.8) | Error | Error & | Error & |
| | | Response | Response |
| | | | |
| message (Section 5.9) | Error | Error & | Error & |
| | | Response | Response |
| | | | |
| context (Section 5.10) | Request | Response | Request & |
| | | | Response |
| | | | |
| location | | Request | Request |
| (Section 5.11) | | | |
+------------------------+-------------+-------------+--------------+
Table 2: Message Parameter Usage
Winterbottom, et al. Expires September 3, 2007 [Page 19]
Internet-Draft HELD March 2007
5.1. "responseTime" Parameter
The "responseTime" attribute indicates to the LG how long the Device
is prepared to wait for a response. This attribute MAY be added to
any request message, although it is primarily used with the location
request. The value of this attribute is indicative only, the LG is
under no obligation to strictly adhere to the time limit implied; any
enforcement of the time limit is left to the Device.
This attribute MAY be either a duration value as defined in XML
Schema [W3C.REC-xmlschema-2-20041028], or a decimal seconds value,
which may include a decimal point. It is RECOMMENDED that systems
support millisecond precision for this parameter.
The LG SHOULD provide the most accurate LI that can be determined
within the specified interval. This parameter could be used as input
when selecting the method of location determination, where multiple
such methods exist. If this parameter is absent, then the LG SHOULD
return the most precise LI it is capable of determining.
5.2. "assert" Parameter
The "assert" element allows a Device to provide LI to the LG as part
of a location request. Two types of content are allowed: a geodetic
structure made up of a Geography Markup Language (GML) geometry
object, "_Geometry" as defined by [OGC.GML-3.1.1]; and a civic
address structure, "civicAddress" as defined by
[I-D.ietf-geopriv-revised-civic-lo]. The contents of this element
SHOULD follow the rules in [I-D.ietf-geopriv-pdif-lo-profile].
When used in combination with the "context" element, this LI MAY be
used by the LS for requests to Location URIs for that context.
This element is mutually exclusive with the "locationType" parameter,
defined in Section 5.3. The type of LI requested is implied by the
types included in the assertion.
5.2.1. "method" Parameter
The "method" attribute SHOULD be attached to the "assert" element to
indicate the means by which the LI was derived. This attribute
follows the rules of the similarly named method element of the
PIDF-LO.
5.2.2. "timestamp" Parameter
The "timestamp" attribute SHOULD be attached to the "assert" element
to indicate when the LI was generated.
Winterbottom, et al. Expires September 3, 2007 [Page 20]
Internet-Draft HELD March 2007
5.2.3. "expires" Parameter
The "expires" attribute MAY be attached to the "assert" element to
indicate when the included LI is no longer valid. The LG SHOULD set
the "retention-expires" element in the returned PIDF-LO to no later
than this time if it uses the LI. This attribute SHOULD NOT be
included unless this time is definite.
5.2.4. "exact" Parameter
When the "exact" attribute is set to "true", it indicates to the LG
that the contents of the "assert" parameter MUST be strictly
followed. The default value of "false" allows the LG the option of
ignoring these values.
This attribute indicates that the asserted LI MUST be included in the
PIDF-LO response. If the LG cannot do this for any reason, which is
usually because it determines that the LI was inaccurate or
insufficiently precise, the LG MUST indicate an error.
5.3. "locationType" Parameter
The "locationType" element is included in a location request. It
contains a list of LI types that are requested by the Device. The
following list describes the possible values:
any: The LG SHOULD attempt to provide LI in all forms available to
it. This value MUST be assumed as the default if no
"locationType" is specified. The LG SHOULD return location
information in a form that is suited for routing and responding to
an emergency call in its jurisdiction.
geodetic: The LG SHOULD return a geodetic location for the Target.
civic: The LG SHOULD return a civic address for the Target. Any
type of civic address may be returned. The LG SHOULD ignore this
value if a request for jurisdictional or postal civic address has
been made and can be satisfied.
jurisdictionalCivic: The LG SHOULD return a jurisdictional civic
address for the Target.
postalCivic: The LG SHOULD return a postal civic address for the
Target.
The "locationType" element is mutually exclusive with the "assert"
element, defined in Section 5.2.
Winterbottom, et al. Expires September 3, 2007 [Page 21]
Internet-Draft HELD March 2007
The LG SHOULD return the requested location type or types. The LG
MAY provide additional location types, or it MAY provide alternative
types if the request cannot be satisfied for a requested location
type. If the "exact" attribute is present and set to "true" in a
location request, then a successful LG response MUST provide the
requested location type only, with no additional location
information. The "exact" attribute has no effect when this element
is set to "any".
The "SHOULD"-strength requirement on this parameter is included to
allow for soft-failover. This enables a fixed client configuration
that prefers a specific location type without causing location
requests to fail when that location type is unavailable. Unless the
"exact" attribute is set, the LG MUST provide LI in any available
form if it is unable to comply with the request.
For example, a notebook computer could be configured to retrieve
civic addresses, which is usually available from typical home or work
situations. However, when using a wireless modem, the LG might be
unable to provide a civic address.
5.3.1. "exact" Parameter
When the "exact" attribute is set to "true", it indicates to the LG
that the contents of the "locationType" parameter MUST be strictly
followed. The default value of "false" allows the LG the option of
ignoring these values.
A value of "true" indicates that the LG MUST provide a PIDF-LO that
includes LI of the requested type or types. The LG MUST provide the
requested types only and these types SHOULD be specified in the same
order as they were requested. The LG SHOULD handle an exact request
that includes a "locationType" element set to "any" as if the "exact"
attribute were set to "false".
5.4. "profile" Parameter
The "profile" element contains a presentity identifier [RFC2778] and
GEOPRIV usage rules [RFC4119] information. All fields are optional
within this element, but when these fields are included, the LG MUST
use these parameters when constructing the PIDF-LO document.
This element MAY be included in location requests, create context
requests and update context requests. When included in a location
request, the profile is used immediately; when used in create context
or update context requests, the profile is stored on the LS and is
provided to the LG when the LS responds to requests from LRs.
Winterbottom, et al. Expires September 3, 2007 [Page 22]
Internet-Draft HELD March 2007
5.4.1. "presentity" Parameter
The "presentity" element contains a presentity identifier that the LG
SHOULD include in the "pres" attribute of the PIDF-LO document.
The LG MAY require authentication of the presentity through any
means; the LG SHOULD ignore this parameter if authentication
information is not present or authentication information cannot be
verified.
5.4.2. "retentionExpiry" Parameter
The "retentionExpiry" element contains an absolute "dateTime"
[W3C.REC-xmlschema-2-20041028] value for the "retention-expires"
element of the PIDF-LO usage rules. This element is mutually
exclusive with the "retentionInterval" element.
The LG MAY use a different value than that specified (or the
suggested default) as circumstances dictate, but MUST NOT use a value
later than specified. If this value indicates a time that has
already passed, the request MUST be rejected with an error. See
retentionInterval (Section 5.4.3) for more details.
5.4.3. "retentionInterval" Parameter
The "retentionInterval" element contains a time duration value that
is specified in the same fashion as the responseTime attribute
(Section 5.1).
This value MUST be added to the time at which the PIDF-LO document is
created to set the value of the "retention-expires" element. This
element enables the Target to set an interval over which a LR can
retain a LO, rather than an absolute time. This element is mutually
exclusive with the "retentionExpires" element.
If neither "retentionExpiry" nor "retentionInterval" are specified,
the LG SHOULD provide a default value for the "retention-expires"
element of the generated PIDF-LO document. The default for this
value SHOULD be 24 hours from the receipt of the location request as
defined in [RFC4119].
The LG MAY use a different value than that specified (or the
suggested default) as circumstances dictate, but MUST NOT use a value
larger than specified.
Winterbottom, et al. Expires September 3, 2007 [Page 23]
Internet-Draft HELD March 2007
5.4.4. "retransmission" Parameter
The "retransmission" element contains a boolean value that MUST be
included in the "retransmission-allowed" element of the generated
PIDF-LO usage rules. When this element is not provided, the LG MUST
set the "retransmission-allowed" element to "false".
5.4.5. "rulesetURI" Parameter
The "rulesetURI" element contains a URI value that MUST be included
in the "ruleset-reference" element of the generated PIDF-LO usage
rules.
This datum is only used to construct the usage rules in the PIDF-LO
document. Within the context of a profile, this ruleset is not
applied by either LG or LS, and the LS does not apply the rules found
at the URI.
5.5. "signed" Parameter
The "signed" attribute indicates whether the Device requires a
digitally signed PIDF-LO. When present and set to "true", the LG
MUST provide a PIDF-LO document that is signed according to
[I-D.thomson-geopriv-location-dependability].
5.6. "lifetime" Parameter
The "lifetime" element specifies the maximum time that a context
should be maintained by the LS. This parameter MUST be included in
the context creation request to indicate to the LS the latest time
that the context is allowed to be retained. The parameter MAY be
included in context update requests to modify this time; when
included in an update request with a zero value, it indicates that
the context MUST be removed immediately.
The "lifetime" element is a duration value that is specified in the
same fashion as the "responseTime" attribute.
This value MUST be added to the current time when received by the LS
to determine the time at which the context expires. An LS MAY use
any value less than or equal to this value, but MUST NOT use a longer
value. The actual expiry time of the context MUST be indicated in
the context response.
5.7. "rules" Parameter
The "rules" element contains the authorization policy of the Target
that dictates how and to whom LI is provided by the LS. This policy
Winterbottom, et al. Expires September 3, 2007 [Page 24]
Internet-Draft HELD March 2007
MUST be applied by the LS when providing LI to LRs.
Authorization policies MUST conform to
[I-D.ietf-geopriv-common-policy]. If the authorization policy is
invalid, cannot be retrieved, or is otherwise not understood by the
LS, the LG SHOULD fail the request. Note that this implies that the
LS SHOULD attempt to retrieve an authorization policy that is
provided by-reference at the time of a create context request;
however, an LS MAY choose to do this later, if the requested response
time might be exceeded.
In the absence of an authorization policy, the LS MUST NOT provide LI
to any LR. Note that in certain jurisdictions an LS might be
required to provide LI to specific parties irrespective of the
authorization policy, as mandated by legislation; for example,
emergency services in some countries.
5.7.1. "rulesetURI" Parameter
The "rulesetURI" element contains a URI that references the Target's
authorization policy. This URI should reference a document of type
"application/auth-policy+xml" as defined in
[I-D.ietf-geopriv-common-policy].
It is RECOMMENDED that a ruleset URI use the "https" scheme. It is
anticipated that, to improve responsiveness and reduce network usage,
an LS could cache an authorization policy, consistent with the rules
specified by the Rule Holder. For instance, the Rule Holder could
specified retention times using the "Expires" header in HTTP
[RFC2616]. The impact of changes to authorization policies are
discussed in Section 4.3.2.
5.7.2. Common Policy "ruleset" Parameter
The "ruleset" element, which is in the
"urn:ietf:params:xml:ns:common-policy" namespace
[I-D.ietf-geopriv-common-policy], allows for providing an
authorization policy directly as part of a request.
5.8. "code" Parameter
All responses, except a PIDF-LO document, MUST contain a response
code. The "code" attribute applies to the "error" and
"contextResponse" messages.
The following response codes follow a three decimal form similar to
that in HTTP [RFC2616] and SIP [RFC3261]:
Winterbottom, et al. Expires September 3, 2007 [Page 25]
Internet-Draft HELD March 2007
200 (Success): This code indicates that the request was successful.
This code MUST not be used for an error response.
201 (Context Terminated): This code indicates that the request to
terminate a context was successful.
400 (Request Error): This code indicates that the request was badly
formed in some fashion.
401 (XML Error): This code indicates that the XML content of the
request was either badly formed or invalid.
402 (Authentication Error): This code indicates that the request
either did not contain authentication information, or the
authentication provided was not accepted.
403 (Asserted Location Error): This code indicates that the LI that
was asserted in the request was not acceptable to the LG. This
code is used when the "exact" attribute on the "assert" parameter
is set to "true".
404 (Context Not Found): This code indicates that the context
identified in the request was not found. This code MAY also be
used if the password provided was incorrect.
500 (General LG Error): This code indicates that an unspecified
error occurred at the LG.
501 (Location Unknown): This code indicates that the LG could not
determine the location of the Device.
502 (Unsupported Message): This code indicates that the request was
not supported or understood by the LG.
503 (Timeout): This code indicates that the LG could not satisfy the
request within the time specified in the "requestTime" parameter.
504 (Cannot Provide LI Type): This code indicates that the LG was
unable to provide LI of the type or types requested. This code is
used when the "exact" attribute on the "locationType" parameter is
set to "true".
Additional response codes within the x00 to x79 range MUST be
specified in published RFCs; the range from x80 to x99 is reserved
for private usage.
Winterbottom, et al. Expires September 3, 2007 [Page 26]
Internet-Draft HELD March 2007
5.9. "message" Parameter
The "contextResponse" and "error" messages MAY include a "message"
attribute to convey some additional, human-readable information about
the result of the request. This message MAY be included in any
language, which SHOULD be indicated by the "xml:lang", attribute.
5.10. "context" Parameter
The "context" element includes information that is used to identify a
context and control access to it. The context is identified by one
or more Location URIs and a Device is granted a password which MUST
be provided when accessing the context to update the information
contained.
When a context is created, the LG provides a "contextResponse"
message that contains the "context" element. This element contains
all of the Location URIs that can be used for the context, a
password, and an expiry time.
To update the details in a context, or reuse profile information
stored in the context, the Device provides a "context" element. When
identifying a context in this manner, the Device MUST provide only
one Location URI and the password.
5.10.1. "locationURI" Parameter
The "locationURI" element includes a single Location URI. Each
Location URI is allocated by the LS so that it is able to uniquely
identify the context.
A "contextResponse" message contains any number of "locationURI"
elements. It is RECOMMENDED that the LS allocate a Location URI for
all schemes that it supports and that no scheme is present twice.
All "updateContext" request messages MUST contain only one
"locationURI" element, which is all that is necessary to uniquely
identify a context. The Device MAY select any of the Location URIs
provided by the LS. Location URIs do not change over the lifetime of
a context.
5.10.2. "password" Parameter
The "password" element carries a password that is used to access the
context after it has been created. The LS generates this value when
creating a context and the Device MUST use the exact same value when
it wishes to access the context. This value acts as a shared secret
between Device and LS.
Winterbottom, et al. Expires September 3, 2007 [Page 27]
Internet-Draft HELD March 2007
The value of the password MAY be updated in the response to any
"updateContext" message.
This element MAY contain any valid XML character data, within the
constraints of the XML Schema "token" type.
5.10.3. "expires" Parameter
The "expires" attribute indicates the time at which the context
created by the LS will expire. This attribute is included in the
"contextResponse" message only.
Responses to create and update context requests MUST include the
expiry time of the context. If the LS has expired a context in
response to an update context request, this value SHOULD include a
time in the past to avoid problems that could be caused by a slow
clock in the Device.
5.11. "location" Parameter
The "location" parameter is a boolean attribute associated with the
"createContext" or "updateContext" message. The default for this
attribute is "false".
This parameter, when present and set to "true" indicates that the LG
SHOULD include a PIDF-LO document in the "contextResponse" message.
The success of any request that includes this parameter MUST NOT be
affected by any error in providing a location; thus, if the LG is
unable to include a PIDF-LO, it is only omitted from the response.
If a "contextResponse" does not include a PIDF-LO, the Device can
determine the reasons for failure by sending a separate
"locationRequest".
Note: The schema does not include an explicit particle for the
"presence" element. This is because the "any" construct used to
allow for extensions would conflict with any optional element, due to
the Unique Particle Attribution schema rule.
Winterbottom, et al. Expires September 3, 2007 [Page 28]
Internet-Draft HELD March 2007
6. XML Schema
This section gives the XML Schema Definition
[W3C.REC-xmlschema-1-20041028] of the "application/held+xml" format.
This is presented as a formal definition of the "application/
held+xml" format. Note that the XML Schema definition is not
intended to be used with on-the-fly validation of the presence XML
document.
Namespace for HELD Messages
urn:ietf:params:xml:ns:geopriv:held
[[NOTE TO IANA/RFC-EDITOR: Please update RFC URL and replace XXXX
with the RFC number for this specification.]]
See RFCXXXX.
END 10.3. XML Schema Registration This section registers an XML schema as per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:schema:geopriv:held Registrant Contact: IETF, GEOPRIV working group, (geopriv@ietf.org), Martin Thomson (martin.thomson@andrew.com). Schema: The XML for this schema can be found as the entirety of Section 6 of this document. 10.4. URN Sub-Namespace Registration for urn:ietf:params:xml:ns:geopriv:held:http This section registers a new XML namespace, "urn:ietf:params:xml:ns:geopriv:held:http", as per the guidelines in [RFC3688]. URI: urn:ietf:params:xml:ns:geopriv:held:http Registrant Contact: IETF, GEOPRIV working group, (geopriv@ietf.org), Martin Thomson (martin.thomson@andrew.com). XML: Winterbottom, et al. Expires September 3, 2007 [Page 50] Internet-Draft HELD March 2007 BEGINSee RFCXXXX.
END 10.5. MIME Media Type Registration for 'application/held+xml' This section registers the "application/held+xml" MIME type. To: ietf-types@iana.org Subject: Registration of MIME media type application/held+xml MIME media type name: application MIME subtype name: held+xml Required parameters: (none) Optional parameters: charset Indicates the character encoding of enclosed XML. Default is UTF-8. Encoding considerations: Uses XML, which can employ 8-bit characters, depending on the character encoding used. See RFC 3023 [RFC3023], section 3.2. Security considerations: This content type is designed to carry protocol data related to the location of an entity, which could include information that is considered private. Appropriate precautions should be taken to limit disclosure of this information. Winterbottom, et al. Expires September 3, 2007 [Page 51] Internet-Draft HELD March 2007 Interoperability considerations: This content type provides a basis for a protocol Published specification: RFC XXXX [[NOTE TO IANA/RFC-EDITOR: Please replace XXXX with the RFC number for this specification.]] Applications which use this media type: Location information providers and consumers. Additional Information: Magic Number(s): (none) File extension(s): .xml Macintosh File Type Code(s): (none) Person & email address to contact for further information: Martin Thomson