| < draft-ietf-geopriv-common-policy-10.txt | draft-ietf-geopriv-common-policy-11.txt > | |||
|---|---|---|---|---|
| GEOPRIV H. Schulzrinne | GEOPRIV H. Schulzrinne | |||
| Internet-Draft Columbia U. | Internet-Draft Columbia U. | |||
| Expires: November 22, 2006 H. Tschofenig | Intended status: Standards Track H. Tschofenig | |||
| Siemens | Expires: February 11, 2007 Siemens | |||
| J. Morris | J. Morris | |||
| CDT | CDT | |||
| J. Cuellar | J. Cuellar | |||
| Siemens | Siemens | |||
| J. Polk | J. Polk | |||
| J. Rosenberg | ||||
| Cisco | Cisco | |||
| May 21, 2006 | J. Rosenberg | |||
| Cisco Systems | ||||
| August 10, 2006 | ||||
| Common Policy: An XML Document Format for Expressing Privacy Preferences | Common Policy: A Document Format for Expressing Privacy Preferences | |||
| draft-ietf-geopriv-common-policy-10.txt | draft-ietf-geopriv-common-policy-11.txt | |||
| Status of this Memo | Status of this Memo | |||
| By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
| applicable patent or other IPR claims of which he or she is aware | 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 | 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. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 43 ¶ | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
| http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
| The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
| http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
| This Internet-Draft will expire on November 22, 2006. | This Internet-Draft will expire on February 11, 2007. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society (2006). | Copyright (C) The Internet Society (2006). | |||
| Abstract | Abstract | |||
| This document defines a framework for authorization policies | This document defines a framework for authorization policies | |||
| controlling access to application specific data. This framework | controlling access to application specific data. This framework | |||
| combines common location- and presence-specific authorization | combines common location- and presence-specific authorization | |||
| aspects. An XML schema specifies the language in which common policy | aspects. An XML schema specifies the language in which common policy | |||
| rules are represented. The common policy framework can be extended | rules are represented. The common policy framework can be extended | |||
| to other application domains. | to other application domains. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| skipping to change at page 2, line 35 ¶ | skipping to change at page 3, line 29 ¶ | |||
| 7.1. Identity Condition . . . . . . . . . . . . . . . . . . . . 14 | 7.1. Identity Condition . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7.1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . 14 | 7.1.1. Overview . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 7.1.2. Matching One Entity . . . . . . . . . . . . . . . . . 14 | 7.1.2. Matching One Entity . . . . . . . . . . . . . . . . . 14 | |||
| 7.1.3. Matching Multiple Entities . . . . . . . . . . . . . . 15 | 7.1.3. Matching Multiple Entities . . . . . . . . . . . . . . 15 | |||
| 7.2. Single Entity . . . . . . . . . . . . . . . . . . . . . . 19 | 7.2. Single Entity . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7.3. Sphere . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 7.3. Sphere . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7.4. Validity . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 7.4. Validity . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 8. Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | 8. Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 9. Transformations . . . . . . . . . . . . . . . . . . . . . . . 24 | 9. Transformations . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 10. Procedure for Combining Permissions . . . . . . . . . . . . . 25 | 10. Procedure for Combining Permissions . . . . . . . . . . . . . 25 | |||
| 10.1. Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 25 | 10.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 10.2. Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
| 10.3. Example . . . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| 11. Meta Policies . . . . . . . . . . . . . . . . . . . . . . . . 29 | 11. Meta Policies . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 12. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 | 12. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 13. XML Schema Definition . . . . . . . . . . . . . . . . . . . . 31 | 13. XML Schema Definition . . . . . . . . . . . . . . . . . . . . 31 | |||
| 14. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | 14. Security Considerations . . . . . . . . . . . . . . . . . . . 34 | |||
| 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | 15. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 | |||
| 15.1. Common Policy Namespace Registration . . . . . . . . . . . 35 | 15.1. Common Policy Namespace Registration . . . . . . . . . . . 35 | |||
| 15.2. Content-type registration for | 15.2. Content-type registration for | |||
| 'application/auth-policy+xml' . . . . . . . . . . . . . . 35 | 'application/auth-policy+xml' . . . . . . . . . . . . . . 35 | |||
| 15.3. Common Policy Schema Registration . . . . . . . . . . . . 37 | 15.3. Common Policy Schema Registration . . . . . . . . . . . . 37 | |||
| 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
| skipping to change at page 4, line 18 ¶ | skipping to change at page 4, line 18 ¶ | |||
| for access to application specific data. This framework is the | for access to application specific data. This framework is the | |||
| result of combining the common aspects of single authorization | result of combining the common aspects of single authorization | |||
| systems that more specifically control access to presence and | systems that more specifically control access to presence and | |||
| location information and that previously had been developed | location information and that previously had been developed | |||
| separately. The benefit of combining these two authorization systems | separately. The benefit of combining these two authorization systems | |||
| is two-fold. First, it allows to build a system which enhances the | is two-fold. First, it allows to build a system which enhances the | |||
| value of presence with location information in a natural way and | value of presence with location information in a natural way and | |||
| reuses the same underlying authorization mechanism. Second, it | reuses the same underlying authorization mechanism. Second, it | |||
| encourages a more generic authorization framework with mechanisms for | encourages a more generic authorization framework with mechanisms for | |||
| extensibility. The applicability of the framework specified in this | extensibility. The applicability of the framework specified in this | |||
| document is not limited to policies controlling access to presence | document is not limited to policies controling access to presence and | |||
| and location information data, but can be extended to other | location information data, but can be extended to other application | |||
| application domains. | domains. | |||
| The general framework defined in this document is intended to be | The general framework defined in this document is intended to be | |||
| accompanied and enhanced by application-specific policies specified | accompanied and enhanced by application-specific policies specified | |||
| elsewhere. The common policy framework described here is enhanced by | elsewhere. The common policy framework described here is enhanced by | |||
| domain-specific policy documents, including presence [7] and location | domain-speific policy documents, including presence [7] and location | |||
| [8]. This relationship is shown in Figure 1. | [8]. This relationship is shown in Figure 1. | |||
| +-----------------+ | +-----------------+ | |||
| | | | | | | |||
| | Common | | | Common | | |||
| | Policy | | | Policy | | |||
| | | | | | | |||
| +---+---------+---+ | +---+---------+---+ | |||
| /|\ /|\ | /|\ /|\ | |||
| | | | | | | |||
| +-------------------+ | | +-------------------+ | +-------------------+ | | +-------------------+ | |||
| | | | enhance | | | | | | | enhance | | | | |||
| | Location-specific | | | | Presence-specific | | | Location-specific | | | | Presence-specific | | |||
| | Policy |----+ +----| Policy | | | Policy |----+ +----| Policy | | |||
| | | | | | | | | | | |||
| +-------------------+ +-------------------+ | +-------------------+ +-------------------+ | |||
| Figure 1: Common Policy Enhancements | Figure 1: Common Policy Enhancements | |||
| This document starts with an introduction to the terminology in | This document starts with an introduction to the terminology in | |||
| Section 2, an illustration of basic modes of operation in Section 3, | Section 2, an illustration of basic modes of operation in Section 3, | |||
| a description of goals (see Section 4) and non-goals (see Section 5) | a description of goals (see Section 4) and non-goals (see Section 5) | |||
| of the policy framework, followed by the data model in Section 6. | of the policy framework, followed by the data model in Section 6. | |||
| The structure of a rule, namely conditions, actions and | The structure of a rule, namely conditions, actions and | |||
| transformations, is described in Section 7, in Section 8 and in | transformations, are described in Section 7, in Section 8 and in | |||
| Section 9. The procedure for combining permissions is explained in | Section 9. The procedure for combining permissions is explained in | |||
| Section 10 and used when more than one rule fires. A short | Section 10 and used when more than one rule fires. A short | |||
| description of meta policies is given in Section 11. An example is | description of meta policies is given in Section 11. An example is | |||
| provided in Section 12. The XML schema will be discussed in | provided in Section 12. The XML schema will be discussed in | |||
| Section 13. IANA considerations in Section 15 follow the security | Section 13. IANA considerations in Section 15 follow security | |||
| considerations from Section 14. | considerations Section 14. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT","RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT","RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [1]. | document are to be interpreted as described in [1]. | |||
| This document introduces the following terms: | This document introduces the following terms: | |||
| PT - Presentity / Target: The PT is the entity about whom information | PT - Presentity / Target: The PT is the entity about whom | |||
| has been requested. RFC 3693 [9] uses the term Target to identify | information has been requested. | |||
| the object or person of which location information is requested. | ||||
| The presence model described in RFC 2778 [10] uses the term | ||||
| presentity to describe the entity that provides presence | ||||
| information to a presence service. We introduce a neutral term | ||||
| here to avoid confusion or loose generality. | ||||
| RM - Rule Maker: RM is an entity that creates the authorization rules | RM - Rule Maker: RM is an entity which creates the authorization | |||
| which restrict access to data items. | rules which restrict access to data items. | |||
| PS - (Authorization) Policy Server: This entity has access to both | PS - (Authorization) Policy Server: This entity has access to both | |||
| the authorization policies and to the data items. In location- | the authorization policies and to the data items. In location- | |||
| specific applications, the entity PS is labeled as location server | specific applications, the entity PS is labeled as location server | |||
| (LS). | (LS). | |||
| WR - Watcher / Recipient: This entity requests access to data items | WR - Watcher / Recipient: This entity requests access to data items | |||
| of the PT. An access operation might be either be a read, write | of the PT. An access operation might be either be a read, write | |||
| or be any other operation. In case of access to location | or be any other operation. In case of access to location | |||
| information is likely to be a read operation. | information it might be a read operation. | |||
| The receiver of the requested data items is the Location Recipient | ||||
| (LR) in the terminology of RFC 3693 [9]. A watcher, i.e., an | ||||
| entity that requests presence information about a presentity, is a | ||||
| recipient in presence systems (see [10]). | ||||
| A policy is given by a 'rule set' that contains an unordered list of | A policy is given by a 'rule set' that contains an unordered list of | |||
| 'rules'. A 'rule' has a 'conditions', an 'actions' and a | 'rules'. A 'rule' has a 'conditions', an 'actions' and a | |||
| 'transformations' part. | 'transformations' part. | |||
| The term 'permission' refers to the action and transformation | The term 'permission' indicates the action and transformation | |||
| components of a 'rule'. | components of a 'rule'. | |||
| The term 'using protocol' is defined in [9]. It refers to the | The term 'using protocol' is defined in [9]. It refers to the | |||
| protocol that is used to request access to and to return privacy | protocol which is used to request access to and to return privacy | |||
| sensitive data items. | sensitive data items. | |||
| 3. Modes of Operation | 3. Modes of Operation | |||
| The abstract sequence of operations can roughly be described as | The abstract sequence of operations can roughly be described as | |||
| follows. The PS receives a query for data items for a particular PT, | follows. The PS receives a query for data items for a particular PT, | |||
| via the using protocol. The using protocol (or more precisely the | via the using protocol. The using protocol (or more precisely the | |||
| authentication protocol) provides the identity of the requestor, | authentication protocol) provides the identity of the requestor, | |||
| either at the time of the query or at the subscription time. The | either at the time of the query or at the subscription time. The | |||
| authenticated identity of the WR, together with other information | authenticated identity of the WR, together with other information | |||
| skipping to change at page 7, line 52 ¶ | skipping to change at page 7, line 52 ¶ | |||
| Event notification adds a subscription phase to the "Active Request- | Event notification adds a subscription phase to the "Active Request- | |||
| Response - PS as Client (Initiator)" mode of operation. A watcher or | Response - PS as Client (Initiator)" mode of operation. A watcher or | |||
| subscriber asks to be added to the notification list for a particular | subscriber asks to be added to the notification list for a particular | |||
| presentity or event. When the presentity changes state or the event | presentity or event. When the presentity changes state or the event | |||
| occurs, the PS sends a message to the WR containing the updated | occurs, the PS sends a message to the WR containing the updated | |||
| state. (Presence is a special case of event notification; thus, we | state. (Presence is a special case of event notification; thus, we | |||
| often use the term interchangeably.) | often use the term interchangeably.) | |||
| In addition, the subscriber may itself add a filter to the | In addition, the subscriber may itself add a filter to the | |||
| subscription, limiting the rate or content of the notifications. If | subscription, limiting the rate or content of the notifications. If | |||
| an event, after filtering by the rule maker-provided rules and by the | an event, after filtering by the rulemaker-provided rules and by the | |||
| subscriber-provided rules, only produces the same notification | subscriber-provided rules, only produces the same notification | |||
| content that was sent previously, no event notification is sent. | content that was sent previously, no event notification is sent. | |||
| A single PS may authorize access to data items in more than one mode. | A single PS may authorize access to data items in more than one mode. | |||
| Rather than having different rule sets for different modes all three | Rather than having different rule sets for different modes all three | |||
| modes are supported with a one rule set schema. | modes are supported with a one rule set schema. Specific instances | |||
| of the rule set can omit elements that are only applicable to the | ||||
| subscription model. | ||||
| 4. Goals and Assumptions | 4. Goals and Assumptions | |||
| Below, we summarize our design goals and constraints. | Below, we summarize our design goals and constraints. | |||
| Table representation: | Table representation: | |||
| Each rule must be representable as a row in a relational database. | Each rule must be representable as a row in a relational database. | |||
| This design goal should allow efficient policy implementation by | This design goal should allow efficient policy implementation by | |||
| utilizing standard database optimization techniques. | utilizing standard database optimization techniques. | |||
| Permit only: | Permit only: | |||
| Rules only provide permissions rather than denying them. Removing | Rules only provide permissions rather than denying them. Removing | |||
| a rule can never increase permissions. Allowing both 'permit' and | a rule can never increase permissions. Allowing both 'permit' and | |||
| 'deny' actions would require some rule ordering that has | 'deny' actions would require some rule ordering which had | |||
| implications on the update operations executed on these rules. | implications on the update operations executed on these rules. | |||
| Additionally, it would make distributed rule sets more | Additionally, it would make distributed rule sets more | |||
| complicated. Hence, only 'permit' actions are allowed that result | complicated. Hence, only 'permit' actions are allowed which | |||
| in more efficient rule processing. This also implies that rule | result in more efficient rule processing. This also implies that | |||
| ordering is not important. | rule ordering is not important. Consequently, to make a policy | |||
| decision requires processing all rules. | ||||
| Additive permissions: | Additive permissions: | |||
| A query for access to data items is matched against the rules in | A query for access to data items is matched against the rules in | |||
| the rule database. If several rules match, then the overall | the rule database. If several rules match, then the overall | |||
| permissions granted to the WR are the union of those permissions. | permissions granted to the WR are the union of those permissions. | |||
| A more detailed discussion is provided in Section 10. | A more detailed discussion is provided inSection 10. | |||
| Upgradeable: | Upgradeable: | |||
| It should be possible to add additional rules later, without | It should be possible to add additional rules later, without | |||
| breaking PSs that have not been upgraded. Any such upgrades must | breaking PSs that have not been upgraded. Any such upgrades must | |||
| not degrade privacy constraints, but PSs not yet upgraded may | not degrade privacy constraints, but PSs not yet upgraded may | |||
| reveal less information than the rule maker would have chosen. | reveal less information than the rulemaker would have chosen. | |||
| Capability support: | Capability support: | |||
| In addition to the previous goal, a RM should be able to determine | In addition to the previous goal, a RM should be able to determine | |||
| the extensions that are supported by the PS. The mechanism used | which extensions are supported by the PS. The mechanism used to | |||
| to determine the capability of a PS is outside the scope of this | determine the capability of a PS is outside the scope of this | |||
| specification. | specification. | |||
| Protocol-independence: | Protocol-independent: | |||
| The rule set supports constraints on both notifications or queries | The rule set supports constraints on both notifications or queries | |||
| as well as subscriptions for event-based systems such as presence | as well as subscriptions for event-based systems such as presence | |||
| systems. | systems. | |||
| No false assurance: | No false assurance: | |||
| It appears more dangerous to give the user the impression that the | It appears more dangerous to give the user the impression that the | |||
| system will prevent disclosure automatically, but fail to do so | system will prevent disclosure automatically, but fail to do so | |||
| with a significant probability of operator error or | with a significant probability of operator error or | |||
| skipping to change at page 12, line 15 ¶ | skipping to change at page 12, line 15 ¶ | |||
| 6. Basic Data Model and Processing | 6. Basic Data Model and Processing | |||
| A rule set (or synonymously, a policy) consists of zero or more | A rule set (or synonymously, a policy) consists of zero or more | |||
| rules. The ordering of these rules is irrelevant. The rule set can | rules. The ordering of these rules is irrelevant. The rule set can | |||
| be stored at the PS and conveyed from RM to PS as a single document, | be stored at the PS and conveyed from RM to PS as a single document, | |||
| in subsets or as individual rules. A rule consists of three parts - | in subsets or as individual rules. A rule consists of three parts - | |||
| conditions (see Section 7), actions (see Section 8), and | conditions (see Section 7), actions (see Section 8), and | |||
| transformations (see Section 9). | transformations (see Section 9). | |||
| The conditions part is a set of expressions, each of which evaluates | The conditions part is a set of expressions, each of which evaluates | |||
| to either TRUE or FALSE, i.e., each of which is equipped with a value | to either TRUE or FALSE, i.e. each of which is equipped with a value | |||
| of either TRUE or FALSE by the PS. When a WR asks for information | of either TRUE or FALSE by the PS. When a WR asks for information | |||
| about a PT, the PS goes through each rule in the rule set. For each | about a PT, the PS goes through each rule in the rule set. For each | |||
| rule, it evaluates the expressions in the conditions part. If all of | rule, it evaluates the expressions in the conditions part. If all of | |||
| the expressions evaluate to TRUE, then the rule is applicable to this | the expressions evaluate to TRUE, then the rule is applicable to this | |||
| request. Generally, each expression specifies a condition based on | request. Generally, each expression specifies a condition based on | |||
| some variable that is associated with the context of the request. | some variable that is associated with the context of the request. | |||
| These variables can include the identity of the WR, the domain of the | These variables can include the identity of the WR, the domain of the | |||
| WR, the time of day, or even external variables, such as the | WR, the time of day, or even external variables, such as the | |||
| temperature or the mood of the PT. | temperature or the mood of the PT. | |||
| Assuming that the rule is applicable to the request, the actions and | Assuming that the rule is applicable to the request, the actions and | |||
| transformations (commonly referred to as permissions) in the rule | transformations (commonly referred to as permissions) in the rule | |||
| specify how the PS is supposed to handle this request. If the | specify how the PS is supposed to handle this request. If the | |||
| request is to view the location of the PT, or to view its presence, | request is to view the location of the PT, or to view its presence, | |||
| the typical action is "permit" that allows the request to proceed. | the typical action is "permit", which allows the request to proceed. | |||
| Assuming the action allows the request to proceed, the | Assuming the action allows the request to proceed, the | |||
| transformations part of the rule specifies how the information about | transformations part of the rule specifies how the information about | |||
| the PT - their location information, their presence, etc. - is | the PT - their location information, their presence, etc. - is | |||
| modified before being presented to the WR. These transformations are | modified before being presented to the WR. These transformations are | |||
| in the form of positive permissions. That is, they always specify a | in the form of positive permissions. That is, they always specify a | |||
| piece of information that is allowed to be seen by the WR. When a PS | piece of information which is allowed to be seen by the WR. When a | |||
| processes a request, it takes the transformations specified across | PS processes a request, it takes the transformations specified across | |||
| all rules that match, and creates the union of them. For computing | all rules that match, and creates the union of them. For computing | |||
| this union the data type, such as Integer, Boolean, Set, or the Undef | this union the data type, such as Integer, Boolean, Set, or the Undef | |||
| data type, plays a role. The details of the algorithm for combining | data type, plays a role. The details of the algorithm for combining | |||
| permissions is described in Section 10. The resulting union | permissions is described in Section 10. The resulting union | |||
| effectively represents a "mask" - it defines what information is | effectively represents a "mask" - it defines what information is | |||
| exposed to the WR. This mask is applied to the actual location or | exposed to the WR. This mask is applied to the actual location or | |||
| presence data for the PT, and the data which is permitted by the mask | presence data for the PT, and the data which is permitted by the mask | |||
| is shown to the WR. If the WR request a subset of information only | is shown to the WR. If the WR request a subset of information only | |||
| (such as city-level civil location data only, instead of the full | (such as city-level civil location data only, instead of the full | |||
| civil location information), the information delivered to the WR MUST | civil location information), the information delivered to the WR MUST | |||
| skipping to change at page 13, line 30 ¶ | skipping to change at page 13, line 30 ¶ | |||
| 6.1. Identification of Rules | 6.1. Identification of Rules | |||
| Each rule is equipped with a parameter that identifies the rule. | Each rule is equipped with a parameter that identifies the rule. | |||
| This rule identifier is an opaque token chosen by the RM. A RM MUST | This rule identifier is an opaque token chosen by the RM. A RM MUST | |||
| NOT use the same identifier for two rules that are available to the | NOT use the same identifier for two rules that are available to the | |||
| PS at the same time for a given PT. If more than one RM modifies the | PS at the same time for a given PT. If more than one RM modifies the | |||
| same rule set then it needs to be ensured that a unique identifier is | same rule set then it needs to be ensured that a unique identifier is | |||
| chosen for each rule. A RM can accomplish this goal by retrieving | chosen for each rule. A RM can accomplish this goal by retrieving | |||
| the already specified ruleset and to choose a new identifier for a | the already specified ruleset and to choose a new identifier for a | |||
| rule that is different from the values used by the rules in the rule | rule that is different from the existing rule set. | |||
| set. | ||||
| 6.2. Extensions | 6.2. Extensions | |||
| The policy framework defined in this document is meant to be | The policy framework defined in this document is meant to be | |||
| extensible towards specific application domains. Such an extension | extensible towards specific application domains. Such an extension | |||
| is accomplished by defining conditions, actions and transformations | is accomplished by defining conditions, actions and transformations | |||
| that are specific to the desired application domain. Each extension | that are specific to the desired application domain. Each extension | |||
| MUST define its own namespace. | MUST define its own namespace. | |||
| Extensions cannot change the schema defined in this document, and | Extensions cannot change the schema defined in this document, and | |||
| this schema is not expected to change excepting a revision to this | this schema is not expected to change excepting a revision to this | |||
| specification, and that no versioning procedures for this schema or | specification, and that no versioning procedures for this schema or | |||
| namespace are therefore provided. | namespace are therfore provided. | |||
| 7. Conditions | 7. Conditions | |||
| The access to data items needs to be matched with the rule set stored | The access to data items needs to be matched with the rule set stored | |||
| at the PS. Each instance of a request has different attributes | at the PS. Each instance of a request has different attributes | |||
| (e.g., the identity of the requestor) that are used for | (e.g., the identity of the requestor) that are used for | |||
| authorization. A rule in a rule set might have a number of | authorization. A rule in a rule set might have a number of | |||
| conditions that need to be met before executing the remaining parts | conditions that need to be met before executing the remaining parts | |||
| of a rule (i.e., actions and transformations). Details about rule | of a rule (i.e., actions and transformations). Details about rule | |||
| matching are described in Section 10. This document specifies only a | matching are described in Section 10. This document specifies only a | |||
| few conditions (i.e., identity, sphere, and validity). Further | few conditions (i.e., identity, sphere, and validity). Further | |||
| condition elements can be added via extensions to this document. | condition elements can be added via extensions to this document. | |||
| As noted in Section 5, conditions are matched on equality or "greater | ||||
| than" style comparisons, rather than regular expressions. Equality | ||||
| is determined according to the rules for the data type associated | ||||
| with the element in the schema given in Section 13, unless explicit | ||||
| comparison steps are included in this document. For xs:anyURI types, | ||||
| readers may wish to consult [2] for its discussion xs:anyURI, as well | ||||
| as the text in Section 13. | ||||
| 7.1. Identity Condition | 7.1. Identity Condition | |||
| 7.1.1. Overview | 7.1.1. Overview | |||
| The identity condition restricts matching of a rule either to a | The identity condition restricts matching of a rule either to a | |||
| single entity or a group of entities. Only authenticated entities | single entity or a group of entitites. Only authenticated entities | |||
| can be matched; acceptable means of authentication are defined in | can be matched; acceptable means of authentication are defined in | |||
| protocol-specific documents. If the <identity> element is absent, or | protocol-specific documents. If the <identity> element is absent, or | |||
| it is present but is empty (meaning that there are no child | it is present but is empty (meaning that there are no child | |||
| elements), identities are not considered, and thus, other conditions | elements), identities are not considered, and thus, other conditions | |||
| in the rule apply to any user, authenticated or not. | in the rule apply to any user, authenticated or not. | |||
| The <identity> condition is considered TRUE if any of its child | The <identity> condition is considered TRUE if any of its child | |||
| elements (e.g., the <one/> and the <many/> elements defined in this | elements (e.g., the <one/> and the <many/> elements defined in this | |||
| document) evaluate to TRUE, i.e., the results of the individual child | document) evaluate to TRUE, i.e., the results of the individual child | |||
| element are combined using a logical OR. | element are combined using a logical OR. | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at page 16, line 5 ¶ | |||
| <many> element then the result of each <except> element is combined | <many> element then the result of each <except> element is combined | |||
| using a logical OR. | using a logical OR. | |||
| Common policy MUST either use UTF-8 or UTF-16 to store domain names | Common policy MUST either use UTF-8 or UTF-16 to store domain names | |||
| in the 'domain' attribute. For non-IDNs, lower-case ASCII SHOULD be | in the 'domain' attribute. For non-IDNs, lower-case ASCII SHOULD be | |||
| used. For the comparison operation between the value stored in the | used. For the comparison operation between the value stored in the | |||
| 'domain' attribute and the domain value provided via the using | 'domain' attribute and the domain value provided via the using | |||
| protocol (referred as "protocol domain identifier") the following | protocol (referred as "protocol domain identifier") the following | |||
| rules are applicable: | rules are applicable: | |||
| 1. If the values of the 'domain' attribute and the value of the | 1. Translate percent-encoding for either string. | |||
| protocol domain identifier does not begin with xn--, attempt a | ||||
| string comparison. If the string comparison indicates equality, | ||||
| the comparison succeeds and the remaining steps are skipped. | ||||
| 2. Translate percent-encoding for either string and repeat (1). | ||||
| 3. Convert both domain strings using the toASCII operation described | 2. Convert both domain strings using the toASCII operation described | |||
| in RFC 3490 [2]. (Naturally, if one of the strings already | in RFC 3490 [3]. | |||
| begins with the ACE prefix xn--, the conversion operation has | ||||
| already been performed.) | ||||
| 4. Compare the two domain strings for ASCII equality, for each | 3. Compare the two domain strings for ASCII equality, for each | |||
| label. If the string comparison for each label indicates | label. If the string comparison for each label indicates | |||
| equality, the comparison succeeds. Otherwise, the domains are | equality, the comparison succeeds. Otherwise, the domains are | |||
| not equal. | not equal. | |||
| If the conversion fails in step (3), the domains are not equal. | If the conversion fails in step (2), the domains are not equal. | |||
| 7.1.3.1. Matching Any Authenticated Identity | 7.1.3.1. Matching Any Authenticated Identity | |||
| The <many/> element without any child elements or attributes matches | The <many/> element without any child elements or attributes matches | |||
| any authenticated user. | any authenticated user. | |||
| The following example shows a rule that matches any authenticated | The following example shows such a rule that matches any | |||
| user: | authenticated user: | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | |||
| <rule id="f3g44r5"> | <rule id="f3g44r5"> | |||
| <conditions> | <conditions> | |||
| <identity> | <identity> | |||
| <many/> | <many/> | |||
| </identity> | </identity> | |||
| </conditions> | </conditions> | |||
| <actions/> | <actions/> | |||
| <transformations/> | <transformations/> | |||
| </rule> | </rule> | |||
| </ruleset> | </ruleset> | |||
| 7.1.3.2. Matching Any User, Authenticated and Unauthenticated | The following rule, in comparison, would match any user, | |||
| authenticated and unauthenticated: | ||||
| If the <identity> element is used without child elements then it | ||||
| matches any user, authenticated and unauthenticated. The same is | ||||
| true for a rule where the <identity> element is omitted. | ||||
| The following example shows two rules that match any user, | ||||
| authenticated and unauthenticated. | ||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | |||
| <rule id="f3g44r5"> | <rule id="f3g44r5"> | |||
| <conditions> | <conditions> | |||
| <identity/> | <identity/> | |||
| </conditions> | </conditions> | |||
| <actions/> | <actions/> | |||
| <transformations/> | <transformations/> | |||
| </rule> | </rule> | |||
| <rule id="f3g44r57"> | ||||
| <conditions/> | ||||
| <actions/> | ||||
| <transformations/> | ||||
| </rule> | ||||
| </ruleset> | </ruleset> | |||
| 7.1.3.3. Matching Any Authenticated Identity Excepting Enumerated | 7.1.3.2. Matching Any Authenticated Identity Excepting Enumerated | |||
| Domains/Identities | Domains/Identities | |||
| The <many> element enclosing one or more <except domain="..."/> | The <many> element enclosing one or more <except domain="..."/> | |||
| elements matches any user from any domain except those enumerated. | elements matches any user from any domain except those enumerated. | |||
| The <except id="..."/> element excludes particular users. The | The <except id="..."/> element excludes particular users. The | |||
| semantic of the 'id' attribute of the <except> element is described | semantic of the 'id' attribute of the <except> element is described | |||
| in Section 7.2. The results of the child elements of the <many> | in Section 7.2. The results of the child elements of the <many> | |||
| element are combined using a logical OR. | element are combined using a logical OR. | |||
| An example is shown below: | An example is shown below: | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | |||
| <rule id="f3g44r1"> | <rule id="f3g44r1"> | |||
| <conditions> | <conditions> | |||
| <sphere value="work"/> | ||||
| <identity> | <identity> | |||
| <many> | <many> | |||
| <except domain="example.com"/> | <except domain="example.com"/> | |||
| <except domain="example.org"/> | <except domain="example.org"/> | |||
| <except id="sip:alice@bad.example.net"/> | <except id="sip:alice@bad.example.net"/> | |||
| <except id="sip:bob@good.example.net"/> | <except id="sip:bob@good.example.net"/> | |||
| <except id="tel:+1-212-555-1234" /> | <except id="tel:+1-212-555-1234" /> | |||
| <except id="sip:alice@example.com"/> | <except id="sip:alice@example.com"/> | |||
| </many> | </many> | |||
| </identity> | </identity> | |||
| <validity> | ||||
| <from>2003-12-24T17:00:00+01:00</from> | ||||
| <until>2003-12-24T19:00:00+01:00</until> | ||||
| </validity> | ||||
| </conditions> | </conditions> | |||
| <actions/> | <actions/> | |||
| <transformations/> | <transformations/> | |||
| </rule> | </rule> | |||
| </ruleset> | </ruleset> | |||
| This example matches all users except any user in example.com, or any | This example matches all users except any user in example.com, or any | |||
| user in example.org or the particular users alice@bad.example.net, | user in example.org or the particular users alice@bad.example.net, | |||
| bob@good.example.net and the user with the telephone number | bob@good.example.net and the user with the telephone number | |||
| 'tel:+1-212-555-1234'. The last 'except' element is redundant since | 'tel:+1-212-555-1234'. The last 'except' element is redundant since | |||
| alice@example.com is already excluded through the following statement | alice@example.com is already excluded through the first line. | |||
| <except domain="example.com"/> in the example. | ||||
| 7.1.3.4. Matching Any Authenticated Identity Within a Domain Excepting | 7.1.3.3. Matching Any Authenticated Identity Within a Domain Excepting | |||
| Enumerated Identities | Enumerated Identities | |||
| The <many> element with a 'domain' attribute and zero or more <except | The <many> element with a 'domain' attribute and zero or more <except | |||
| id="..."/> elements matches any authenticated user from the indicated | id="..."/> elements matches any authenticated user from the indicated | |||
| domain except those explicitly enumerated. The semantic of the 'id' | domain except those explicitly enumerated. The semantic of the 'id' | |||
| attribute of the <except> element is described in Section 7.2. | attribute of the <except> element is described in Section 7.2. | |||
| It is nonsensical to have domains in the 'id' attribute that do not | It is nonsensical to have domains in the 'id' attribute that do not | |||
| match the value of the 'domain' attribute in the enclosing <many> | match the value of the 'domain' attribute in the enclosing <many> | |||
| element. | element. | |||
| skipping to change at page 19, line 36 ¶ | skipping to change at page 19, line 36 ¶ | |||
| 7.2. Single Entity | 7.2. Single Entity | |||
| The 'id' attribute used in the <one> and in the <except> element | The 'id' attribute used in the <one> and in the <except> element | |||
| refers to a single entity. In the subsequent text we use the term | refers to a single entity. In the subsequent text we use the term | |||
| 'single-user' entity as a placeholder for the <one> and the <except> | 'single-user' entity as a placeholder for the <one> and the <except> | |||
| element. The <except> element fulfills the purpose of excluding | element. The <except> element fulfills the purpose of excluding | |||
| elements from the solution set. | elements from the solution set. | |||
| A single-user entity matches the authenticated identity (as contained | A single-user entity matches the authenticated identity (as contained | |||
| in the 'id' attribute) of exactly one entity or user. If there is a | in the 'id' attribute) of exactly one entity or user. If there is a | |||
| match, the single-user entity is considered TRUE. The single-user | match, the single-user entity is considered TRUE. The single- user | |||
| entity MUST NOT contain a 'domain' attribute. | entity MUST NOT contain a 'domain' attribute. | |||
| The 'id' attribute contains an identity that MUST be expressed as | The 'id' attribute contains an identity that MUST first be expressed | |||
| URI. Applications using this framework must describe how the | as a URI. Applications using this framework must describe how the | |||
| identities they are using can be expressed as a URIs. | identities they are using can be expressed as a URIs. | |||
| 7.3. Sphere | 7.3. Sphere | |||
| The <sphere> element belongs to the group of condition elements. It | The <sphere> element belongs to the group of condition elements. It | |||
| can be used to indicate a state (e.g., 'work', 'home', 'meeting', | can be used to indicate a state (e.g., 'work', 'home', 'meeting', | |||
| 'travel') the PT is currently in. A sphere condition matches only if | 'travel') the PT is currently in. A sphere condition matches only if | |||
| the PT is currently in the state indicated. The state may be | the PT is currently in the state indicated. The state may be | |||
| conveyed by manual configuration or by some protocol. For example, | conveyed by manual configuration or by some protocol. For example, | |||
| RPID [11] provides the ability to inform the PS of its current | RPID [10] provides the ability to inform the PS of its current | |||
| sphere. The application domain needs to describe in more detail how | sphere. The application domain needs to describe in more detail how | |||
| the sphere state is determined. Switching from one sphere to another | the sphere state is determined. Switching from one sphere to another | |||
| causes a switch between different modes of visibility. As a result | causes a switch between different modes of visibility. As a result | |||
| different subsets of rules might be applicable. | different subsets of rules might be applicable. | |||
| The content of the 'value' attribute of the <sphere> element MAY | The content of the 'value' attribute of the <sphere> element MAY | |||
| contain more than one token. The individual tokens MUST be separated | contain more than one token. The individual tokens MUST be separated | |||
| by a blank character. A logical OR is used for the matching the | by a blank character. A logical OR is used for the matching the | |||
| tokens against the sphere settings of the PT. As an example, if the | tokens against the sphere settings of the PT. As an example, if the | |||
| content of the 'value' attribute in the sphere attribute contains two | the content of the 'value' attribute in the sphere attribute contains | |||
| tokens 'work' and 'home' then this part of the rule matches if the | two tokens 'work' and 'home' then this part of the rule matches if | |||
| sphere for a particular PT is either 'work' or 'home'. To compare | the sphere for a particular PT is either 'work' OR 'home'. To | |||
| the content of the 'value' attribute in the <sphere> element with the | compare the content of the 'value' attribute in the <sphere> element | |||
| stored state information about the PT's sphere setting a case | with the stored state information about the PT's sphere setting a | |||
| insensitive string comparison MUST be used for each individual token. | case insensitive string comparison MUST be used for each individual | |||
| There is no registry for these values nor a language specific | token. There is no registry for these values nor a language specific | |||
| indication of the sphere content. As such, the tokens are treated as | indication of the sphere content. As such, the tokens are treated as | |||
| opaque strings. | opaque strings. | |||
| The rule example below illustrates that the rule with the entity | ||||
| andrew@example.com matches if the sphere is been set to 'work'. In | ||||
| the second rule with the entity allison@example.com matches if the | ||||
| sphere is set to 'home'. The third rule also matches if the sphere | ||||
| is set to 'home' since the value in the sphere element also contains | ||||
| the token 'home'. | ||||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | |||
| <rule id="f3g44r2"> | <rule id="f3g44r2"> | |||
| <conditions> | <conditions> | |||
| <sphere value="work"/> | <sphere value="work"/> | |||
| <identity> | <identity> | |||
| <one id="sip:andrew@example.com"/> | <one id="sip:andrew@example.com"/> | |||
| </identity> | </identity> | |||
| </conditions> | </conditions> | |||
| skipping to change at page 21, line 42 ¶ | skipping to change at page 21, line 42 ¶ | |||
| <identity> | <identity> | |||
| <one id="sip:john@doe.example.com"/> | <one id="sip:john@doe.example.com"/> | |||
| </identity> | </identity> | |||
| <sphere value="home work"/> | <sphere value="home work"/> | |||
| </conditions> | </conditions> | |||
| <actions/> | <actions/> | |||
| <transformations/> | <transformations/> | |||
| </rule> | </rule> | |||
| </ruleset> | </ruleset> | |||
| The rule example above illustrates that the rule with the entity | ||||
| andrew@example.com matches if the sphere is been set to 'work'. In | ||||
| the second rule with the entity allison@example.com matches if the | ||||
| sphere is set to 'home'. The third rule also matches since the the | ||||
| value in the sphere element also contains the token 'home'. | ||||
| 7.4. Validity | 7.4. Validity | |||
| The <validity> element is the third condition element specified in | The <validity> element is the third condition element specified in | |||
| this document. It expresses the rule validity period by two | this document. It expresses the rule validity period by two | |||
| attributes, a starting and a ending time. The validity condition is | attributes, a starting and a ending time. The validity condition is | |||
| TRUE if the current time is greater than or equal to at least one | TRUE if the current time is greater than or equal to at least one | |||
| <from> child, but less than the <until> child after it. This | <from> child, but less than the <until> child after it. This | |||
| represents a logical OR operation across each <from> and <until> | represents a logical OR operation across each <from> and <until> | |||
| pair. Times are expressed in XML dateTime format. | pair. Times are expressed in XML dateTime format. A rule maker | |||
| might not have always access to the PS to invalidate some rules which | ||||
| A rule maker might not always have access to the PS to invalidate | grant permissions. Hence this mechanism allows to invalidate granted | |||
| rules. Hence, this mechanism allows to invalidate granted | ||||
| permissions automatically without further interaction between the | permissions automatically without further interaction between the | |||
| rule maker and the PS. The PS does not remove the rules instead the | rule maker and the PS. The PS does not remove the rules instead the | |||
| rule maker has to clean them up. | rule maker has to clean them up. | |||
| An example of a rule fragment is shown below: | An example of a rule fragment is shown below: | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | <ruleset xmlns="urn:ietf:params:xml:ns:common-policy"> | |||
| <rule id="f3g44r3"> | <rule id="f3g44r3"> | |||
| skipping to change at page 23, line 17 ¶ | skipping to change at page 23, line 17 ¶ | |||
| While conditions are the 'if'-part of rules, actions and | While conditions are the 'if'-part of rules, actions and | |||
| transformations build the 'then'-part of them. The actions and | transformations build the 'then'-part of them. The actions and | |||
| transformations parts of a rule determine which operations the PS | transformations parts of a rule determine which operations the PS | |||
| MUST execute after having received from a WR a data access request | MUST execute after having received from a WR a data access request | |||
| that matches all conditions of this rule. Actions and | that matches all conditions of this rule. Actions and | |||
| transformations only permit certain operations; there is no 'deny' | transformations only permit certain operations; there is no 'deny' | |||
| functionality. Transformations exclusively specify PS-side | functionality. Transformations exclusively specify PS-side | |||
| operations that lead to a modification of the data items requested by | operations that lead to a modification of the data items requested by | |||
| the WR. Regarding location data items, for instance, a | the WR. Regarding location data items, for instance, a | |||
| transformation could force the PS to lower the precision of the | transformation could force the PS to lower the precision of the | |||
| location information that is returned to the WR. | location information which is returned to the WR. | |||
| Actions, on the other hand, specify all remaining types of operations | Actions, on the other hand, specify all remaining types of operations | |||
| the PS is obliged to execute, i.e., all operations that are not of | the PS is obliged to execute, i.e., all operations that are not of | |||
| transformation type. Actions are defined by application specific | transformation type. Actions are defined by application specific | |||
| usages of this framework. The reader is referred to the | usages of this framework. The reader is referred to the | |||
| corresponding extensions to see examples of such elements. | corresponding extensions to see examples of such elements. | |||
| 9. Transformations | 9. Transformations | |||
| Two sub-parts follow the conditions part of a rule: transformations | Two sub-parts follow the conditions part of a rule: transformations | |||
| skipping to change at page 25, line 7 ¶ | skipping to change at page 25, line 7 ¶ | |||
| operations that the PS MUST execute and that modify the result which | operations that the PS MUST execute and that modify the result which | |||
| is returned to the WR. This functionality is particularly helpful in | is returned to the WR. This functionality is particularly helpful in | |||
| reducing the granularity of information provided to the WR, as for | reducing the granularity of information provided to the WR, as for | |||
| example required for location privacy. Transformations are defined | example required for location privacy. Transformations are defined | |||
| by application specific usages of this framework. | by application specific usages of this framework. | |||
| A simple transformation example is provided in Section 10. | A simple transformation example is provided in Section 10. | |||
| 10. Procedure for Combining Permissions | 10. Procedure for Combining Permissions | |||
| 10.1. Introduction | ||||
| This section describes the mechanism to evaluate the final result of | This section describes the mechanism to evaluate the final result of | |||
| a rule evaluation. The result is reflected in the action and | a rule evaluation. The result is reflected in the action and | |||
| transformation part of a rule. This procedure is sometimes referred | transformation part of a rule. This procedure is sometimes referred | |||
| as conflict resolution. | as conflict resolution. | |||
| To simplify the description of the algorithm we introduce the term | We use the following terminology (which in parts has already been | |||
| 'item' to refer to child elements and attributes of these child | introduced in previous sections): The term 'permission' stands for an | |||
| elements that apear in the condition, action and transformation part | action or a transformation. The notion 'attribute' terms a | |||
| of a rule. An item has a name and a data type. A value may be | condition, an action, or a transformation. An attribute has a name, | |||
| assigned to an item or it may be undefined, in case it does not have | and a certain data type. A value may be assigned to an attribute or | |||
| a value associated with the item. The values of a particular item | it may be undefined, in case it does not have a value associated with | |||
| have the same data type. For example, the name of the item <sphere> | the attribute. For example, the name of the <sphere> attribute | |||
| discussed in Section 7 is 'sphere', its data type is 'string', and | discussed in Section 7 is 'sphere', its data type is 'string', and | |||
| its value may be set to 'home'. To evaluate a condition means to | its value may be set to 'home'. To evaluate a condition means to | |||
| associate either TRUE or FALSE to the condition. | associate either TRUE or FALSE to the condition. Please note that | |||
| the <identity> element is a condition whereas the <id> element is a | ||||
| parameter of that condition. A rule matches if all conditions | ||||
| contained in the conditions part of a rule evaluate to TRUE. | ||||
| When the PS receives a request for access to privacy-sensitive data | When the PS receives a request for access to privacy-sensitive data | |||
| then it needs to be matched against a rule set. The conditions part | then it needs to be matched against a rule set. The conditions part | |||
| of each individual rule is evaluated and as a result one or more | of each individual rule is evaluated and as a result one or more | |||
| rules might match. If only a single rule matches then the result is | rules might match. If only a single rule matches then the result is | |||
| determined by executing the actions and the transformations part | determined by executing the actions and the transformations part | |||
| following the conditions part of a rule. However, it can also be the | following the conditions part of a rule. However, it can also be the | |||
| case that two or more matching rules contain a permission of the same | case that two or more matching rules contain a permission of the same | |||
| name (e.g., two rules contain a permission named 'precision of | name (e.g., two rules contain a permission named 'precision of | |||
| geospatial location information'), but do not specify the same value | geospatial location information'), but do not specify the same value | |||
| for that permission (e.g., the two rule might specify values of '10 | for that permission (e.g., the two rule might specify values of '10 | |||
| km' and '200 km', respectively, for the permission named 'precision | km' and '200 km', respectively, for the permission named 'precision | |||
| of geospatial location information'). This section describes the | of geospatial location information'). This section describes the | |||
| procedure for combining permissions in such cases. | procedure for combining permissions in such cases. | |||
| The combining operation will result in the largest value for an | 10.2. Algorithm | |||
| integer type, the OR operation for a boolean type, and union for a | ||||
| set. | ||||
| As such, applications should define values such that, for integers, | ||||
| the lowest value corresponds to the most privacy, for booleans, false | ||||
| corresponds to the most privacy, and for sets, the empty set | ||||
| corresponds to the most privacy. | ||||
| 10.1. Algorithm | ||||
| The algorithm for combining permissions is simple and depends on the | The combining rules are simple and depend on the data types of the | |||
| data types of the values of items: Let P be a rule set. Let M be the | values of permissions: Let P be a policy. Let M be the subset of P | |||
| subset of P consisting of rules r in P that match with respect to a | consisting of rules r in P that match with respect to a given | |||
| given request. Let n be a name of an item contained in a rule r in | request. Let n be a name of a permission contained in a rule r in M, | |||
| M, and let M(n) be the subset of M consisting of rules r in M that | and let M(n) be the subset of M consisting of rules r in M that have | |||
| have a item of name n. For each rule r in M(n), let v(r,n) and | a permission of name n. For each rule r in M(n), let v(r,n) and | |||
| d(r,n) be the value and the data type, respectively, of the item of r | d(r,n) be the value and the data type, respectively, of the attribute | |||
| with name n. Finally, let V(n) be the combined value of all the | of r with name n. Finally, let V(n) be the combined value of all the | |||
| values v(r,n), r in M(n). The algorithm that leads to the resulting | permissions values v(r,n), r in M(n). The combining rules that lead | |||
| value V(n) is the following: | to the resulting value V(n) are the following: | |||
| CR 1: If d(r,n)=Boolean for all r in M(n), then V(n) is given as | CR 1: If d(r,n)=Boolean for all r in M(n), then V(n) is given as | |||
| follows: If there is a r in M(n) with v(r,n)=TRUE, then V(n)=TRUE. | follows: If there is a r in M(n) with v(r,n)=TRUE, then V(n)=TRUE. | |||
| Otherwise, V(n)=FALSE. | Otherwise, V(n)=FALSE. | |||
| CR 2: If d(r,n)=Integer for all r in M(n), then V(n) is given as | CR 2: If d(r,n)=Integer for all r in M(n), then V(n) is given as | |||
| follows: If v(r,n)=undefined for all r in M(n), then V(n) is not | follows: If v(r,n)=undefined for all r in M(n), then V(n) is not | |||
| specified by this specification. Otherwise, V(n)=max{v(r,n) | r | specified by this specification. Otherwise, V(n)=max{v(r,n) | r | |||
| in M(n)}. | in M(n)}. | |||
| CR 3: If d(r,n)=Set for all r in M(n), then V(n) is given as | CR 3: If d(r,n)=Set for all r in M(n), then V(n) is given as | |||
| follows: V(n)=union of all v(r,n), the union to be computed over all | follows: V(n)=union of all v(r,n), the union to be computed over all | |||
| r in M(n) with v(r,n)!=undefined. | r in M(n) with v(r,n)!=undefined. | |||
| 10.2. Example | The combining operation will result in the largest value for an | |||
| Integral type, the OR operation for boolean, and union for set. | ||||
| In the following example we illustrate the process of the combining | As a result, applications should define values such that, for | |||
| permissions algorithm. We will consider three items in the | integers, the lowest value corresponds to the most privacy, for | |||
| conditions part in our example, namely identity, sphere, and | booleans, false corresponds to the most privacy, and for sets, the | |||
| validity. For editorial reasons the rule set in this example is | empty set corresponds to the most privacy. | |||
| represented in a table. Furthermore, the domain part of the identity | ||||
| of the WR is omitted. For actions we use two items in the action | ||||
| part of the rule with names X and Y. The values of X and Y are of | ||||
| data types boolean and integer, respectively. For transformations we | ||||
| use the item with the name Z whose value can be set either to '+'(or | ||||
| 1), 'o' (or 2) or '-' (or 3). Item Z allows us to show the | ||||
| granularity reduction whereby a value of '+' shows the corresponding | ||||
| information unrestricted and '-' shows nothing. This item might be | ||||
| related to location information or other presence attributes like | ||||
| mood. Internally we use the data type integer for computing the | ||||
| permission of this item. | ||||
| Conditions Actions/Transformations | 10.3. Example | |||
| +---------------------------------+----------------------+ | ||||
| | Id WR-ID sphere from until | X Y Z | | ||||
| +---------------------------------+----------------------+ | ||||
| | 1 bob home A1 A2 | TRUE 10 o | | ||||
| | 2 alice work A1 A2 | FALSE 5 + | | ||||
| | 3 bob work A1 A2 | TRUE 3 - | | ||||
| | 4 tom work A1 A2 | TRUE 5 + | | ||||
| | 5 bob work A1 A3 | undef 12 o | | ||||
| | 6 bob work B1 B2 | FALSE 10 - | | ||||
| +---------------------------------+----------------------+ | ||||
| For editorial reasons we use the items 'from' and 'until' to refer to | In the following example we illustrate the process of combining | |||
| validity and we use the following abbreviations for the values: | permissions. We will consider three conditions for our purpose, | |||
| namely those of name identity, sphere, and validity. For editorial | ||||
| reasons the rule set in this example is represented in a table. | ||||
| Furthermore, the domain part of the identity of the WR is omitted. | ||||
| For actions we use two permissions with names X and Y. The values of | ||||
| X and Y are of data types Boolean and Integer, respectively. | ||||
| Permission X might, for example, represent the <sub-handling> action. | ||||
| For transformations we use the attribute with the name Z whose value | ||||
| can be set either to '+'(or 1), 'o' (or 2) or '-' (or 3). Permission | ||||
| Z allows us to show the granularity reduction whereby a value of '+' | ||||
| shows the corresponding information unrestricted and '-' shows | ||||
| nothing. This permission might be related to location information or | ||||
| other presence attributes like mood. Internally we use the data type | ||||
| Integer for computing the permission of this attribute. | ||||
| Conditions Actions/Transformations | ||||
| +---------------------------------+---------------------+ | ||||
| | Id WR-ID sphere from until | X Y Z | | ||||
| +---------------------------------+---------------------+ | ||||
| | 1 bob home A1 A2 | TRUE 10 o | | ||||
| | 2 alice work A1 A2 | FALSE 5 + | | ||||
| | 3 bob work A1 A2 | TRUE 3 - | | ||||
| | 4 tom work A1 A2 | TRUE 5 + | | ||||
| | 5 bob work A1 A3 | undef 12 o | | ||||
| | 6 bob work B1 B2 | FALSE 10 - | | ||||
| +---------------------------------+---------------------+ | ||||
| Again for editorial reasons, we use the following abbreviations for | ||||
| the two <validity> attributes 'from' and 'until': | ||||
| A1=2003-12-24T17:00:00+01:00 | A1=2003-12-24T17:00:00+01:00 | |||
| A2=2003-12-24T21:00:00+01:00 | A2=2003-12-24T21:00:00+01:00 | |||
| A3=2003-12-24T23:30:00+01:00 | A3=2003-12-24T23:30:00+01:00 | |||
| B1=2003-12-22T17:00:00+01:00 | B1=2003-12-22T17:00:00+01:00 | |||
| B2=2003-12-23T17:00:00+01:00 | B2=2003-12-23T17:00:00+01:00 | |||
| Note that B1 < B2 < A1 < A2 < A3. | Note that B1 < B2 < A1 < A2 < A3. | |||
| The entity 'bob' acts as a WR. The policy P consists of the six | The entity 'bob' acts as a WR and requests data items. The policy P | |||
| rules shown in the table and identified by the values 1 to 6 in the | consists of the six rules shown in the table and identified by the | |||
| 'Id' column. The PS receives the query at 2003-12-24T17:15:00+01:00 | values 1 to 6 in the 'Id' column. The PS receives the query at 2003- | |||
| which falls between A1 and A2. The value of the item 'sphere' | 12-24T17:15:00+01:00 which falls between A1 and A2. The value of the | |||
| indicates that the sphere of PT is currently set to 'work'. | attribute with name 'sphere' indicating the state the PT is currently | |||
| in is set to 'work'. | ||||
| Rule 1 does not match since the sphere condition does not match. | Rule 1 does not match since the sphere condition does not match. | |||
| Rule 2 does not match as the identity of the WR (here 'alice') does | Rule 2 does not match as the identity of the WR (here 'alice') does | |||
| not equal 'bob'. Rule 3 matches since all conditions evaluate to | not equal 'bob'. Rule 3 matches since all conditions evaluate to | |||
| TRUE. Rule 4 does not match as the identity of the WR (here 'tom') | TRUE. Rule 4 does not match as the identity of the WR (here 'tom') | |||
| does not equal 'bob'. Rule 5 matches. Rule 6 does not match since | does not equal 'bob'. Rule 5 matches. Rule 6 does not match since | |||
| the rule is not valid anymore. Therefore, the set M of matching | the rule is not valid anymore. Therefore, the set M of matching | |||
| rules consists of the rules 3 and 5. These two rules are used to | rules consists of the rules 3 and 5. These two rules are used to | |||
| compute the combined permission V(X), V(Y), and V(Z) for each of the | compute the combined permission V(X), V(Y), and V(Z) for each of the | |||
| permissions X, Y, and Z: | permissions X, Y, and Z: | |||
| Actions/Transformations | Actions/Transformations | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| | Id | X Y Z | | | Id | X Y Z | | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| | 3 | TRUE 3 - | | | 3 | TRUE 3 - | | |||
| | 5 | undef 12 o | | | 5 | undef 12 o | | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| The results of the permission combining algorithm is shown below. | The results of the permission combining algorithm is shown below. | |||
| The combined value V(X) regarding the permission with name X equals | The combined value V(X) regarding the permission with name X equals | |||
| TRUE according to the first combining rule listed above. The maximum | TRUE according to the first combining rule listed above. The maximum | |||
| skipping to change at page 29, line 7 ¶ | skipping to change at page 29, line 7 ¶ | |||
| Actions/Transformations | Actions/Transformations | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| | Id | X Y Z | | | Id | X Y Z | | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| | 5 | TRUE 12 - | | | 5 | TRUE 12 - | | |||
| +-----+-----------------------+ | +-----+-----------------------+ | |||
| 11. Meta Policies | 11. Meta Policies | |||
| Meta policies authorize a rule maker to insert, update or delete a | Meta policies authorize a rulemaker to insert, update or delete a | |||
| particular rule or an entire rule set. Some authorization policies | particular rule or an entire rule set. Some authorization policies | |||
| are required to prevent unauthorized modification of rule sets. Meta | are required to prevent unauthorized modification of rule sets. Meta | |||
| policies are outside the scope of this document. | policies are outside the scope of this document. | |||
| A simple implementation could restrict access to the rule set only to | A simple implementation could restrict access to the rule set only to | |||
| the PT but more sophisticated mechanisms could be useful. As an | the PT but more sophisticated mechanisms could be useful. As an | |||
| example of such policies one could think of parents configuring the | example of such policies one could think of parents configuring the | |||
| policies for their children. | policies for their children. | |||
| 12. Example | 12. Example | |||
| skipping to change at page 31, line 10 ¶ | skipping to change at page 31, line 10 ¶ | |||
| <actions/> | <actions/> | |||
| <transformations/> | <transformations/> | |||
| </rule> | </rule> | |||
| </ruleset> | </ruleset> | |||
| 13. XML Schema Definition | 13. XML Schema Definition | |||
| This section provides the XML schema definition for the common policy | This section provides the XML schema definition for the common policy | |||
| markup language described in this document. | markup language described in this document. | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <xs:schema targetNamespace="urn:ietf:params:xml:ns:common-policy" | <xs:schema targetNamespace="urn:ietf:params:xml:ns:common-policy" | |||
| xmlns:cp="urn:ietf:params:xml:ns:common-policy" | xmlns:cp="urn:ietf:params:xml:ns:common-policy" | |||
| xmlns:xs="http://www.w3.org/2001/XMLSchema" | xmlns:xs="http://www.w3.org/2001/XMLSchema" | |||
| elementFormDefault="qualified" attributeFormDefault="unqualified"> | elementFormDefault="qualified" attributeFormDefault="unqualified"> | |||
| <!-- /ruleset --> | <!-- /ruleset --> | |||
| <xs:element name="ruleset"> | <xs:element name="ruleset"> | |||
| <xs:complexType> | <xs:complexType> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:element name="rule" type="cp:ruleType" | <xs:element name="rule" type="cp:ruleType" | |||
| minOccurs="0" maxOccurs="unbounded"/> | minOccurs="0" maxOccurs="unbounded"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:element> | </xs:element> | |||
| <!-- /ruleset/rule --> | <!-- /ruleset/rule --> | |||
| <xs:complexType name="ruleType"> | <xs:complexType name="ruleType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:element name="conditions" | <xs:element name="conditions" | |||
| type="cp:conditionsType" minOccurs="0"/> | type="cp:conditionsType" minOccurs="0"/> | |||
| <xs:element name="actions" | <xs:element name="actions" | |||
| type="cp:extensibleType" minOccurs="0"/> | type="cp:extensibleType" minOccurs="0"/> | |||
| <xs:element name="transformations" | <xs:element name="transformations" | |||
| type="cp:extensibleType" minOccurs="0"/> | type="cp:extensibleType" minOccurs="0"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| <xs:attribute name="id" type="xs:ID" use="required"/> | <xs:attribute name="id" type="xs:ID" use="required"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //rule/conditions --> | <!-- //rule/conditions --> | |||
| <xs:complexType name="conditionsType"> | <xs:complexType name="conditionsType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:choice maxOccurs="unbounded"> | <xs:choice maxOccurs="unbounded"> | |||
| <xs:element name="identity" | <xs:element name="identity" | |||
| type="cp:identityType" minOccurs="0"/> | type="cp:identityType" minOccurs="0"/> | |||
| <xs:element name="sphere" | <xs:element name="sphere" | |||
| type="cp:sphereType" minOccurs="0"/> | type="cp:sphereType" minOccurs="0"/> | |||
| <xs:element name="validity" | <xs:element name="validity" | |||
| type="cp:validityType" minOccurs="0"/> | type="cp:validityType" minOccurs="0"/> | |||
| <xs:any namespace="##other" processContents="lax" | <xs:any namespace="##other" processContents="lax" | |||
| minOccurs="0" maxOccurs="unbounded"/> | minOccurs="0" maxOccurs="unbounded"/> | |||
| </xs:choice> | </xs:choice> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //conditions/identity --> | <!-- //conditions/identity --> | |||
| <xs:complexType name="identityType"> | <xs:complexType name="identityType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:choice minOccurs="0" maxOccurs="unbounded"> | <xs:choice minOccurs="0" maxOccurs="unbounded"> | |||
| <xs:element name="one" type="cp:oneType"/> | <xs:element name="one" type="cp:oneType"/> | |||
| <xs:element name="many" type="cp:manyType"/> | <xs:element name="many" type="cp:manyType"/> | |||
| <xs:any namespace="##other" processContents="lax"/> | <xs:any namespace="##other" processContents="lax"/> | |||
| </xs:choice> | </xs:choice> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //identity/one --> | <!-- //identity/one --> | |||
| <xs:complexType name="oneType"> | <xs:complexType name="oneType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:any namespace="##other" | <xs:any namespace="##other" | |||
| minOccurs="0" processContents="lax"/> | minOccurs="0" processContents="lax"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| <xs:attribute name="id" | <xs:attribute name="id" | |||
| type="xs:anyURI" use="required"/> | type="xs:anyURI" use="required"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //identity/many --> | <!-- //identity/many --> | |||
| <xs:complexType name="manyType"> | <xs:complexType name="manyType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:choice minOccurs="0" maxOccurs="unbounded"> | <xs:choice minOccurs="0" maxOccurs="unbounded"> | |||
| <xs:element name="except" type="cp:exceptType"/> | <xs:element name="except" type="cp:exceptType"/> | |||
| <xs:any namespace="##other" | <xs:any namespace="##other" | |||
| minOccurs="0" processContents="lax"/> | minOccurs="0" processContents="lax"/> | |||
| </xs:choice> | </xs:choice> | |||
| <xs:attribute name="domain" | <xs:attribute name="domain" | |||
| use="optional" type="xs:string"/> | use="optional" type="xs:string"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //many/except --> | <!-- //many/except --> | |||
| <xs:complexType name="exceptType"> | <xs:complexType name="exceptType"> | |||
| <xs:attribute name="domain" type="xs:string" use="optional"/> | <xs:attribute name="domain" type="xs:string" use="optional"/> | |||
| <xs:attribute name="id" type="xs:anyURI" use="optional"/> | <xs:attribute name="id" type="xs:anyURI" use="optional"/> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //conditions/sphere --> | <!-- //conditions/sphere --> | |||
| <xs:complexType name="sphereType"> | <xs:complexType name="sphereType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:attribute name="value" | <xs:attribute name="value" | |||
| type="xs:string" use="required"/> | type="xs:string" use="required"/> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //conditions/validity --> | <!-- //conditions/validity --> | |||
| <xs:complexType name="validityType"> | <xs:complexType name="validityType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:sequence minOccurs="0" maxOccurs="unbounded"> | <xs:sequence minOccurs="0" maxOccurs="unbounded"> | |||
| <xs:element name="from" type="xs:dateTime"/> | <xs:element name="from" type="xs:dateTime"/> | |||
| <xs:element name="until" type="xs:dateTime"/> | <xs:element name="until" type="xs:dateTime"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| <!-- //rule/actions or //rule/transformations --> | <!-- //rule/actions or //rule/transformations --> | |||
| <xs:complexType name="extensibleType"> | <xs:complexType name="extensibleType"> | |||
| <xs:complexContent> | <xs:complexContent> | |||
| <xs:restriction base="xs:anyType"> | <xs:restriction base="xs:anyType"> | |||
| <xs:sequence> | <xs:sequence> | |||
| <xs:any namespace="##other" | <xs:any namespace="##other" | |||
| processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | processContents="lax" minOccurs="0" maxOccurs="unbounded"/> | |||
| </xs:sequence> | </xs:sequence> | |||
| </xs:restriction> | </xs:restriction> | |||
| </xs:complexContent> | </xs:complexContent> | |||
| </xs:complexType> | </xs:complexType> | |||
| </xs:schema> | </xs:schema> | |||
| 14. Security Considerations | 14. Security Considerations | |||
| This document describes a framework for policies. This framework is | This document describes a framework for policies. This framework is | |||
| intended to be enhanced elsewhere towards application domain specific | intended to be enhanced elsewhere towards application domain specific | |||
| data. Security considerations are to a great extent application data | data. Security considerations are to a great extent application data | |||
| dependent, and therefore need to be covered by documents that extend | dependent, and therefore need to be covered by documents that extend | |||
| the framework defined in this specification. RFC 3693 [9] and RFC | the framework defined in this specification. However, new action and | |||
| 3694 [3] are good sources to consider for the type of analysis | transformation permissions along with their allowed values must be | |||
| required by such documents and applications. | defined in a way so that the usage of the permissions combining rules | |||
| of Section 10 does not lower the level of privacy protection. See | ||||
| Extensions to the action and transformation elements must be defined | Section 10 for more details on this privacy issue. | |||
| in a way so that the usage of the permissions combining rules of | ||||
| Section 10 does not lower the level of privacy protection. This is | ||||
| particularly important when defining the semantic of the a more | ||||
| detailed description of the values for the defined attributes and | ||||
| elements. See Section 10 for more details on this privacy aspect. | ||||
| 15. IANA Considerations | 15. IANA Considerations | |||
| This section registers a new XML namespace, a new XML schema and a | This section registers a new XML namespace, a new XML schema and a | |||
| new MIME-type. This section registers a new XML namespace per the | new MIME-type. This section registers a new XML namespace per the | |||
| procedures in [4]. | procedures in [4]. | |||
| 15.1. Common Policy Namespace Registration | 15.1. Common Policy Namespace Registration | |||
| URI: urn:ietf:params:xml:ns:common-policy | URI: urn:ietf:params:xml:ns:common-policy | |||
| Registrant Contact: IETF Geopriv Working Group, Henning Schulzrinne | Registrant Contact: IETF Geopriv Working Group, Henning Schulzrinne | |||
| (hgs+geopriv@cs.columbia.edu). | (hgs+geopriv@cs.columbia.edu). | |||
| XML: | XML: | |||
| BEGIN | BEGIN | |||
| <?xml version="1.0"?> | <?xml version="1.0"?> | |||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" | |||
| "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> | "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> | |||
| <html xmlns="http://www.w3.org/1999/xhtml"> | <html xmlns="http://www.w3.org/1999/xhtml"> | |||
| <head> | <head> | |||
| skipping to change at page 35, line 47 ¶ | skipping to change at page 35, line 47 ¶ | |||
| </body> | </body> | |||
| </html> | </html> | |||
| END | END | |||
| 15.2. Content-type registration for 'application/auth-policy+xml' | 15.2. Content-type registration for 'application/auth-policy+xml' | |||
| This specification requests the registration of a new MIME type | This specification requests the registration of a new MIME type | |||
| according to the procedures of RFC 4288 [5] and guidelines in RFC | according to the procedures of RFC 4288 [5] and guidelines in RFC | |||
| 3023 [6]. | 3023 [6]. | |||
| MIME media type name: application | MIME media type name: application | |||
| MIME subtype name: auth-policy+xml | MIME subtype name: auth-policy+xml | |||
| Mandatory parameters: none | Mandatory parameters: none | |||
| Optional parameters: charset | Optional parameters: charset | |||
| Indicates the character encoding of enclosed XML. | Indicates the character encoding of enclosed XML. | |||
| Encoding considerations: | Encoding considerations: | |||
| Uses XML, which can employ 8-bit characters, depending on the | Uses XML, which can employ 8-bit characters, depending on the | |||
| character encoding used. See RFC 3023 [6], Section 3.2. | character encoding used. See RFC 3023 [6], Section 3.2. | |||
| Security considerations: | Security considerations: | |||
| This content type is designed to carry authorization policies. | This content type is designed to carry authorization policies. | |||
| Appropriate precautions should be adopted to limit disclosure of | Appropriate precautions should be adopted to limit disclosure of | |||
| this information. Please refer to Section 14 of RFCXXXX [NOTE TO | this information. Please refer to Section 14 of RFCXXXX [NOTE TO | |||
| IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this | IANA/RFC-EDITOR: Please replace XXXX with the RFC number of this | |||
| specification.] and to the security considerations described in | specification.] and to the security considerations described in | |||
| Section 10 of RFC 3023 [6] for more information. | Section 10 of RFC 3023 [6] for more information. | |||
| Interoperability considerations: None | Interoperability considerations: None | |||
| Published specification: RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please | Published specification: RFCXXXX [NOTE TO IANA/RFC-EDITOR: Please | |||
| replace XXXX with the RFC number of this specification.] this | replace XXXX with the RFC number of this specification.] this | |||
| document | document | |||
| Applications which use this media type: | Applications which use this media type: | |||
| Presence- and location-based systems | Presence- and location-based systems | |||
| Additional information: | Additional information: | |||
| Magic Number: None | Magic Number: None | |||
| File Extension: .apxml | File Extension: .apxml | |||
| Macintosh file type code: 'TEXT' | Macintosh file type code: 'TEXT' | |||
| Personal and email address for further information: Hannes | Personal and email address for further information: Hannes | |||
| Tschofenig, Hannes.Tschofenig@siemens.com | Tschofenig, Hannes.Tschofenig@siemens.com | |||
| Intended usage: LIMITED USE | Intended usage: LIMITED USE | |||
| Author/Change controller: | Author: | |||
| This specification is a work item of the IETF GEOPRIV working | This specification is a work item of the IETF GEOPRIV working | |||
| group, with mailing list address <geopriv@ietf.org>. | group, with mailing list address <geopriv@ietf.org>. | |||
| Change controller: | ||||
| The IESG <iesg@ietf.org> | ||||
| 15.3. Common Policy Schema Registration | 15.3. Common Policy Schema Registration | |||
| URI: urn:ietf:params:xml:schema:common-policy | URI: urn:ietf:params:xml:schema:common-policy | |||
| Registrant Contact: IETF Geopriv Working Group, Henning Schulzrinne | Registrant Contact: IETF Geopriv Working Group, Henning Schulzrinne | |||
| (hgs+geopriv@cs.columbia.edu). | (hgs+geopriv@cs.columbia.edu). | |||
| XML: The XML schema to be registered is contained in Section 13. Its | XML: The XML schema to be registered is contained in Section 13. | |||
| first line is | Its first line is | |||
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| and its last line is | and its last line is | |||
| </xs:schema> | </xs:schema> | |||
| 16. References | 16. References | |||
| 16.1. Normative References | 16.1. Normative References | |||
| [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement | |||
| Levels", March 1997. | Levels", March 1997. | |||
| [2] Faltstrom, P., Hoffman, P., and A. Costello, "Internationalizing | [2] Duerst, M. and M. Suignard, "Internationalized Resource | |||
| Domain Names in Applications (IDNA)", RFC 3490, March 2003. | Identifiers (IRIs)", RFC 3987, January 2005. | |||
| [3] Danley, M., Mulligan, D., Morris, J., and J. Peterson, "Threat | [3] Faltstrom, P., Hoffman, P., and A. Costello, "Internationalizing | |||
| Analysis of the Geopriv Protocol", RFC 3694, February 2004. | Domain Names in Applications (IDNA)", RFC 3490, March 2003. | |||
| [4] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [4] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
| January 2004. | January 2004. | |||
| [5] Freed, N. and J. Klensin, "Media Type Specifications and | [5] Freed, N. and J. Klensin, "Media Type Specifications and | |||
| Registration Procedures", BCP 13, RFC 4288, December 2005. | Registration Procedures", BCP 13, RFC 4288, December 2005. | |||
| [6] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", | [6] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", | |||
| RFC 3023, January 2001. | RFC 3023, January 2001. | |||
| 16.2. Informative References | 16.2. Informative References | |||
| [7] Rosenberg, J., "Presence Authorization Rules", | [7] Rosenberg, J., "Presence Authorization Rules", | |||
| draft-ietf-simple-presence-rules-06 (work in progress), | draft-ietf-simple-presence-rules-07 (work in progress), | |||
| May 2006. | June 2006. | |||
| [8] Schulzrinne, H., "A Document Format for Expressing Privacy | [8] Schulzrinne, H., "A Document Format for Expressing Privacy | |||
| Preferences for Location Information", | Preferences for Location Information", | |||
| draft-ietf-geopriv-policy-08 (work in progress), February 2006. | draft-ietf-geopriv-policy-08 (work in progress), February 2006. | |||
| [9] Cuellar, J., Morris, J., Mulligan, D., Peterson, J., and J. | [9] Cuellar, J., Morris, J., Mulligan, D., Peterson, J., and J. | |||
| Polk, "Geopriv Requirements", RFC 3693, February 2004. | Polk, "Geopriv Requirements", RFC 3693, February 2004. | |||
| [10] Day, M., Rosenberg, J., and H. Sugano, "A Model for Presence | [10] Schulzrinne, H., Gurbani, V., Kyzivat, P., and J. Rosenberg, | |||
| and Instant Messaging", RFC 2778, February 2000. | "RPID: Rich Presence Extensions to the Presence Information | |||
| Data Format (PIDF)", RFC 4480, July 2006. | ||||
| [11] Schulzrinne, H., "RPID: Rich Presence Extensions to the | ||||
| Presence Information Data Format (PIDF)", | ||||
| draft-ietf-simple-rpid-10 (work in progress), December 2005. | ||||
| Appendix A. Contributors | Appendix A. Contributors | |||
| We would like to thank Christian Guenther for his help with initial | We would like to thank Christian Guenther for his help with initial | |||
| versions of this document. | versions of this document. | |||
| Appendix B. Acknowledgments | Appendix B. Acknowledgments | |||
| This document is partially based on the discussions within the IETF | This document is partially based on the discussions within the IETF | |||
| GEOPRIV working group. Discussions at the Geopriv Interim Meeting | GEOPRIV working group. Discussions at the Geopriv Interim Meeting | |||
| skipping to change at page 40, line 26 ¶ | skipping to change at page 40, line 26 ¶ | |||
| Peterson <jon.peterson@neustar.biz> for discussing a number of | Peterson <jon.peterson@neustar.biz> for discussing a number of | |||
| details with us. They helped us to improve the quality of this | details with us. They helped us to improve the quality of this | |||
| document. Allison, Ted and Andrew also helped us to make good | document. Allison, Ted and Andrew also helped us to make good | |||
| progress with the internationalization support of the identifier/ | progress with the internationalization support of the identifier/ | |||
| domain attributes. | domain attributes. | |||
| Furthermore, we would like to thank the IETF SIMPLE working group for | Furthermore, we would like to thank the IETF SIMPLE working group for | |||
| their discussions of J. Rosenberg's draft on presence authorization | their discussions of J. Rosenberg's draft on presence authorization | |||
| policies. We would also like to thank Stefan Berg, Murugaraj | policies. We would also like to thank Stefan Berg, Murugaraj | |||
| Shanmugam, Christian Schmidt, Martin Thomson, Markus Isomaki, Aki | Shanmugam, Christian Schmidt, Martin Thomson, Markus Isomaki, Aki | |||
| Niemi, Eva Maria Leppanen, Mark Baker, Tim Polk and Brian Carpenter | Niemi, Eva Maria Leppanen and Mark Baker for their comments. Martin | |||
| for their comments. Martin Thomson helped us with the XML schema. | Thomson helped us with the XML schema. Mark Baker provided a review | |||
| Mark Baker provided a review of the media type. Scott Brim provided | of the media type. Scott Brim provided a review on behalf of the | |||
| a review on behalf of the General Area Review Team. | General Area Review Team. | |||
| Authors' Addresses | Authors' Addresses | |||
| Henning Schulzrinne | Henning Schulzrinne | |||
| Columbia University | Columbia University | |||
| Department of Computer Science | Department of Computer Science | |||
| 450 Computer Science Building | 450 Computer Science Building | |||
| New York, NY 10027 | New York, NY 10027 | |||
| USA | USA | |||
| skipping to change at page 42, line 13 ¶ | skipping to change at page 42, line 13 ¶ | |||
| Email: Jorge.Cuellar@siemens.com | Email: Jorge.Cuellar@siemens.com | |||
| James Polk | James Polk | |||
| Cisco | Cisco | |||
| 2200 East President George Bush Turnpike | 2200 East President George Bush Turnpike | |||
| Richardson, Texas 75082 | Richardson, Texas 75082 | |||
| USA | USA | |||
| Email: jmpolk@cisco.com | Email: jmpolk@cisco.com | |||
| Jonathan Rosenberg | Jonathan Rosenberg | |||
| Cisco | Cisco Systems | |||
| 600 Lanidex Plaza | 600 Lanidex Plaza | |||
| Parsippany, New York 07054 | Parsippany, New York 07054 | |||
| USA | USA | |||
| Email: jdrosen@cisco.com | Email: jdrosen@cisco.com | |||
| URI: http://www.jdrosen.net | URI: http://www.jdrosen.net | |||
| Intellectual Property Statement | Full Copyright Statement | |||
| Copyright (C) The Internet Society (2006). | ||||
| This document is subject to the rights, licenses and restrictions | ||||
| contained in BCP 78, and except as set forth therein, the authors | ||||
| retain all their rights. | ||||
| This document and the information contained herein are provided on an | ||||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
| Intellectual Property | ||||
| The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
| Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
| pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
| this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
| might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
| made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
| on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
| found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
| skipping to change at page 43, line 29 ¶ | skipping to change at page 43, line 45 ¶ | |||
| such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
| specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
| http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
| The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
| copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
| rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
| this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
| ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
| Disclaimer of Validity | ||||
| This document and the information contained herein are provided on an | ||||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
| ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
| INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
| INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
| Copyright Statement | ||||
| Copyright (C) The Internet Society (2006). This document is subject | ||||
| to the rights, licenses and restrictions contained in BCP 78, and | ||||
| except as set forth therein, the authors retain all their rights. | ||||
| Acknowledgment | Acknowledgment | |||
| Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is provided by the IETF | |||
| Internet Society. | Administrative Support Activity (IASA). | |||
| End of changes. 97 change blocks. | ||||
| 369 lines changed or deleted | 354 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||