throbber
SANSUNG 1031
`
`1
`
`Network Working Group H. Schulzrinne
`Request for Comments: 4745 Columbia U.
`Category: Standards Track H. Tschofenig
`Siemens Networks GmbH & Co KG
`J. Morris
`CDT
`J. Cuellar
`Siemens
`J. Polk
`J. Rosenberg
`Cisco
`February 2007
`Common Policy: A Document Format for Expressing Privacy Preferences
`Status of This Memo
`This document specifies an Internet standards track protocol for the
`Internet community, and requests discussion and suggestions for
`improvements. Please refer to the current edition of the "Internet
`Official Protocol Standards" (STD 1) for the standardization state
`and status of this protocol. Distribution of this memo is unlimited.
`Copyright Notice
`Copyright (C) The IETF Trust (2007).
`Abstract
`This document defines a framework for authorization policies
`controlling access to application-specific data. This framework
`combines common location- and presence-specific authorization
`aspects. An XML schema specifies the language in which common policy
`rules are represented. The common policy framework can be extended
`to other application domains.
`Schulzrinne, et al. Standards Track [Page 1]
`

`

`2
`
`RFC 4745 Common Policy February 2007
`Table of Contents
`1. Introduction ....................................................3
`2. Terminology .....................................................4
`3. Modes of Operation ..............................................4
`3.1. Passive Request-Response - PS as Server (Responder) ........5
`3.2. Active Request-Response - PS as Client (Initiator) .........5
`3.3. Event Notification .........................................5
`4. Goals and Assumptions ...........................................6
`5. Non-Goals .......................................................7
`6. Basic Data Model and Processing .................................8
`6.1. Identification of Rules ....................................9
`6.2. Extensions .................................................9
`7. Conditions .....................................................10
`7.1. Identity Condition ........................................10
`7.1.1. Overview ...........................................10
`7.1.2. Matching One Entity ................................11
`7.1.3. Matching Multiple Entities .........................11
`7.2. Single Entity .............................................14
`7.3. Sphere ....................................................15
`7.4. Validity ..................................................16
`8. Actions ........................................................17
`9. Transformations ................................................18
`10. Procedure for Combining Permissions ...........................18
`10.1. Introduction .............................................18
`10.2. Combining Rules (CRs) ....................................18
`10.3. Example ..................................................19
`11. Meta Policies .................................................21
`12. Example .......................................................21
`13. XML Schema Definition .........................................22
`14. Security Considerations .......................................25
`15. IANA Considerations ...........................................25
`15.1. Common Policy Namespace Registration .....................25
`15.2. Content-type Registration for
`'application/auth-policy+xml' ............................26
`15.3. Common Policy Schema Registration ........................27
`16. References ....................................................27
`16.1. Normative References .....................................27
`16.2. Informative References ...................................28
`Appendix A. Contributors ..........................................29
`Appendix B. Acknowledgments .......................................29
`Schulzrinne, et al. Standards Track [Page 2]
`

`

`3
`
`RFC 4745 Common Policy February 2007
`1. Introduction
`This document defines a framework for creating authorization policies
`for access to application-specific data. This framework is the
`result of combining the common aspects of single authorization
`systems that more specifically control access to presence and
`location information and that previously had been developed
`separately. The benefit of combining these two authorization systems
`is two-fold. First, it allows building a system that enhances the
`value of presence with location information in a natural way and
`reuses the same underlying authorization mechanism. Second, it
`encourages a more generic authorization framework with mechanisms for
`extensibility. The applicability of the framework specified in this
`document is not limited to policies controlling access to presence
`and location information data, but can be extended to other
`application domains.
`The general framework defined in this document is intended to be
`accompanied and enhanced by application-specific policies specified
`elsewhere. The common policy framework described here is enhanced by
`domain-specific policy documents, including presence [7] and location
`[8]. This relationship is shown in Figure 1.
`+-----------------+
`| |
`| Common |
`| Policy |
`| |
`+---+---------+---+
`/|\ /|\
`| |
`+-------------------+ | | +-------------------+
`| | | enhance | | |
`| Location-specific | | | | Presence-specific |
`| Policy |----+ +----| Policy |
`| | | |
`+-------------------+ +-------------------+
`Figure 1: Common Policy Enhancements
`This document starts with an introduction to the terminology in
`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)
`of the policy framework, followed by the data model in Section 6.
`The structure of a rule, namely, conditions, actions, and
`transformations, is described in Sections 7, 8, and 9. The procedure
`for combining permissions is explained in Section 10 and used when
`conditions for more than one rule are satisfied. A short description
`Schulzrinne, et al. Standards Track [Page 3]
`

`

`4
`
`RFC 4745 Common Policy February 2007
`of meta policies is given in Section 11. An example is provided in
`Section 12. The XML schema will be discussed in Section 13. IANA
`considerations in Section 15 follow security considerations in
`Section 14.
`2. Terminology
`The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
`"SHOULD", "SHOULD NOT","RECOMMENDED", "MAY", and "OPTIONAL" in this
`document are to be interpreted as described in [1].
`This document introduces the following terms:
`PT - Presentity / Target: The PT is the entity about whom
`information has been requested.
`RM - Rule Maker: The RM is an entity that creates the authorization
`rules that restrict access to data items.
`PS - (Authorization) Policy Server: This entity has access to both
`the authorization policies and the data items. In location-
`specific applications, the entity PS is labeled as location
`server (LS).
`WR - Watcher / Recipient: This entity requests access to data items
`of the PT. An access operation might be a read, a write, or any
`other operation.
`A policy is given by a 'rule set' that contains an unordered list of
`'rules'. A 'rule' has a 'conditions', an 'actions', and a
`'transformations' part.
`The term 'permission' indicates the action and transformation
`components of a 'rule'.
`The term 'using protocol' is defined in [9]. It refers to the
`protocol used to request access to and to return privacy-sensitive
`data items.
`3. Modes of Operation
`The abstract sequence of operations can roughly be described as
`follows. The PS receives a query for data items for a particular PT,
`via the using protocol. The using protocol (or more precisely, the
`authentication protocol) provides the identity of the requestor,
`either at the time of the query or at the subscription time. The
`authenticated identity of the WR, together with other information
`provided by the using protocol or generally available to the server,
`Schulzrinne, et al. Standards Track [Page 4]
`

`

`5
`
`RFC 4745 Common Policy February 2007
`is then used for searching through the rule set. All matching rules
`are combined according to a permission combining algorithm described
`in Section 10. The combined rules are applied to the application
`data, resulting in the application of privacy based on the
`transformation policies. The resulting application data is returned
`to the WR.
`Three different modes of operation can be distinguished:
`3.1. Passive Request-Response - PS as Server (Responder)
`In a passive request-response mode, the WR queries the PS for data
`items about the PT. Examples of protocols following this mode of
`operation include HTTP, FTP, LDAP, finger, and various remote
`procedure call (RPC) protocols, including Sun RPC, Distributed
`Computing Environment (DCE), Distributed Component Object Model
`(DCOM), common object request broker architecture (Corba), and Simple
`Object Access Protocol (SOAP). The PS uses the rule set to determine
`whether the WR is authorized to access the PT's information, refusing
`the request if necessary. Furthermore, the PS might filter
`information by removing elements or by reducing the resolution of
`elements.
`3.2. Active Request-Response - PS as Client (Initiator)
`Alternatively, the PS may contact the WR and convey data items.
`Examples include HTTP, SIP session setup (INVITE request), H.323
`session setup or SMTP.
`3.3. Event Notification
`Event notification adds a subscription phase to the "Active Request-
`Response - PS as Client (Initiator)" mode of operation. A watcher or
`subscriber asks to be added to the notification list for a particular
`presentity or event. When the presentity changes state or the event
`occurs, the PS sends a message to the WR containing the updated
`state. (Presence is a special case of event notification; thus, we
`often use the term interchangeably.)
`In addition, the subscriber may itself add a filter to the
`subscription, limiting the rate or content of the notifications. If
`an event, after filtering by the rule-maker-provided rules and by the
`subscriber-provided rules, only produces the same notification
`content that was sent previously, no event notification is sent.
`Schulzrinne, et al. Standards Track [Page 5]
`

`

`6
`
`RFC 4745 Common Policy February 2007
`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
`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
`Below, we summarize our design goals and constraints.
`Table representation:
`Each rule must be representable as a row in a relational database.
`This design goal should allow efficient policy implementation by
`utilizing standard database optimization techniques.
`Permit only:
`Rules only provide permissions rather than denying them. Removing
`a rule can never increase permissions. Depending on the
`interpretation of 'deny' and 'permit' rules, the ordering of rules
`might matter, making updating rule sets more complicated since
`such update mechanisms would have to support insertion at specific
`locations in the rule set. Additionally, it would make
`distributed rule sets more complicated. Hence, only 'permit'
`actions are allowed that result in more efficient rule processing.
`This also implies that rule ordering is not important.
`Consequently, to make a policy decision requires processing all
`rules.
`Additive permissions:
`A query for access to data items is matched against the rules in
`the rule database. If several rules match, then the overall
`permissions granted to the WR are the union of those permissions.
`A more detailed discussion is provided in Section 10.
`Upgradeable:
`It should be possible to add additional rules later, without
`breaking PSs that have not been upgraded. Any such upgrades must
`not degrade privacy constraints, but PSs not yet upgraded may
`reveal less information than the rule maker would have chosen.
`Schulzrinne, et al. Standards Track [Page 6]
`

`

`7
`
`RFC 4745 Common Policy February 2007
`Capability support:
`In addition to the previous goal, a RM should be able to determine
`which extensions are supported by the PS. The mechanism used to
`determine the capability of a PS is outside the scope of this
`specification.
`Protocol-independent:
`The rule set supports constraints on both notifications or queries
`as well as subscriptions for event-based systems such as presence
`systems.
`No false assurance:
`It appears more dangerous to give the user the impression that the
`system will prevent disclosure automatically, but fail to do so
`with a significant probability of operator error or
`misunderstanding, than to force the user to explicitly invoke
`simpler rules. For example, rules based on weekday and time-of-
`day ranges seem particularly subject to misinterpretation and
`false assumptions on part of the RM. (For example, a non-
`technical RM would probably assume that the rules are based on the
`time zone of his current location, which may not be known to other
`components of the system.)
`5. Non-Goals
`We explicitly decided that a number of possibly worthwhile
`capabilities are beyond the scope of this first version. Future
`versions may include these capabilities, using the extension
`mechanism described in this document. Non-goals include:
`No external references:
`Attributes within specific rules cannot refer to external rule
`sets, databases, directories, or other network elements. Any such
`external reference would make simple database implementation
`difficult and hence they are not supported in this version.
`No regular expressions:
`Conditions are matched on equality or 'greater-than'-style
`comparisons, not regular expressions, partial matches such as the
`SQL LIKE operator (e.g., LIKE "%foo%"), or glob-style matches
`("*@example.com"). Most of these are better expressed as explicit
`elements.
`Schulzrinne, et al. Standards Track [Page 7]
`

`

`8
`
`RFC 4745 Common Policy February 2007
`No repeat times:
`Repeat times (e.g., every day from 9 am to 4 pm) are difficult to
`make work correctly, due to the different time zones that PT, WR,
`PS, and RM may occupy. It appears that suggestions for including
`time intervals are often based on supporting work/non-work
`distinctions, which unfortunately are difficult to capture by time
`alone. Note that this feature must not be confused with the
`'Validity' element that provides a mechanism to restrict the
`lifetime of a rule.
`6. Basic Data Model and Processing
`A rule set (or synonymously, a policy) consists of zero or more
`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,
`in subsets or as individual rules. A rule consists of three parts:
`conditions (see
`Section 7), actions (see Section 8), and
`transformations (see Section 9).
`The conditions part is a set of expressions, each of which evaluates
`to either TRUE or FALSE. When a WR asks for information 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 the
`expressions evaluate to TRUE, then the rule is applicable to this
`request. Generally, each expression specifies a condition based on
`some variable that is associated with the context of the request.
`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
`temperature or the mood of the PT.
`Assuming that the rule is applicable to the request, the actions and
`transformations (commonly referred to as permissions) in the rule
`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,
`the typical action is "permit", which allows the request to proceed.
`Assuming the action allows the request to proceed, the
`transformations part of the rule specifies how the information about
`the PT -- their location information, their presence, etc. -- is
`modified before being presented to the WR. These transformations are
`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
`processes a request, it takes the transformations specified across
`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 data type, plays a role. The details of the algorithm for
`combining permissions is described in Section 10. The resulting
`Schulzrinne, et al. Standards Track [Page 8]
`

`

`9
`
`RFC 4745 Common Policy February 2007
`union effectively represents a "mask" -- it defines what information
`is exposed to the WR. This mask is applied to the actual location or
`presence data for the PT, and the data that is permitted by the mask
`is shown to the WR. If the WR requests a subset of information only
`(such as city-level civic location data only, instead of the full
`civic location information), the information delivered to the WR MUST
`be the intersection of the permissions granted to the WR and the data
`requested by the WR.
`Rules are encoded in XML. To this end, Section 13 contains an XML
`schema defining the Common Policy Markup Language. This, however, is
`purely an exchange format between RM and PS. The format does not
`imply that the RM or the PS use this format internally, e.g., in
`matching a query with the policy rules. The rules are designed so
`that a PS can translate the rules into a relational database table,
`with each rule represented by one row in the database. The database
`representation is by no means mandatory; we will use it as a
`convenient and widely-understood example of an internal
`representation. The database model has the advantage that operations
`on rows have tightly defined meanings. In addition, it appears
`plausible that larger-scale implementations will employ a backend
`database to store and query rules, as they can then benefit from
`existing optimized indexing, access control, scaling, and integrity
`constraint mechanisms. Smaller-scale implementations may well choose
`different implementations, e.g., a simple traversal of the set of
`rules.
`6.1. Identification of Rules
`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
`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
`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
`the already specified rule set and choosing a new identifier for a
`rule that is different from the existing rule set.
`6.2. Extensions
`The policy framework defined in this document is meant to be
`extensible towards specific application domains. Such an extension
`is accomplished by defining conditions, actions, and transformations
`that are specific to the desired application domain. Each extension
`MUST define its own namespace.
`Schulzrinne, et al. Standards Track [Page 9]
`

`

`10
`
`RFC 4745 Common Policy February 2007
`Extensions cannot change the schema defined in this document, and
`this schema is not expected to change except via revision to this
`specification. Therefore, no versioning procedures for this schema
`or namespace are provided.
`7. Conditions
`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
`(e.g., the identity of the requestor) that are used for
`authorization. A rule in a rule set might have a number of
`conditions that need to be met before executing the remaining parts
`of a rule (i.e., actions and transformations). Details about rule
`matching are described in Section 10. This document specifies only a
`few conditions (i.e., identity, sphere, and validity). Further
`condition elements can be added via extensions to this document. If
`a child element of the <conditions> element is in a namespace that is
`not known or not supported, then this child element evaluates to
`FALSE.
`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.1. Overview
`The identity condition restricts matching of a rule either to a
`single entity or a group of entities. Only authenticated entities
`can be matched; acceptable means of authentication are defined in
`protocol-specific documents. If the <identity> element is absent,
`identities are not considered, and thus, other conditions in the rule
`apply to any user, authenticated or not.
`The <identity> condition is considered TRUE if any of its child
`elements (e.g., the <one/> and the <many/> elements defined in this
`document) evaluate to TRUE, i.e., the results of the individual child
`element are combined using a logical OR.
`If a child element of the <identity> element is in a namespace that
`is not known or not supported, then this child element evaluates to
`FALSE.
`Schulzrinne, et al. Standards Track [Page 10]
`

`

`11
`
`RFC 4745 Common Policy February 2007
`7.1.2. Matching One Entity
`The <one> element matches the authenticated identity (as contained in
`the 'id' attribute) of exactly one entity or user. For
`considerations regarding the 'id' attribute, refer to Section 7.2.
`An example is shown below:
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="f3g44r1">
`<conditions>
`<identity>
`<one id="sip:alice@example.com"/>
`<one id="tel:+1-212-555-1234" />
`<one id="mailto:bob@example.net" />
`</identity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`</ruleset>
`This example matches if the authenticated identity of the WR is
`either sip:alice@example.com, tel:+1-212-555-1234, or
`mailto:bob@example.net.
`7.1.3. Matching Multiple Entities
`The <many> element is a mechanism to perform authorization decisions
`based on the domain part of the authenticated identity. As such, it
`allows matching a large and possibly unknown number of users within a
`domain.
`Furthermore, it is possible to include one or multiple <except>
`elements to exclude either individual users or users belonging to a
`specific domain. Excluding individual entities is implemented using
`a <except id="..."/> statement. The semantic of the 'id' attribute
`of the <except> element has the same meaning as the 'id' attribute of
`the <one> element (see Section 7.2). Excluding users belonging to a
`specific domain is implemented using the <except domain="..."/>
`element that excludes any user from the indicated domain.
`If multiple <except> elements are listed as child elements of the
`<many> element, then the result of each <except> element is combined
`using a logical OR.
`Schulzrinne, et al. Standards Track [Page 11]
`

`

`12
`
`RFC 4745 Common Policy February 2007
`Common policy MUST either use UTF-8 or UTF-16 to store domain names
`in the 'domain' attribute. For non-IDNs (Internationalized Domain
`Names), lowercase ASCII SHOULD be used. For the comparison operation
`between the value stored in the 'domain' attribute and the domain
`value provided via the using protocol (referred to as "protocol
`domain identifier"), the following rules are applicable:
`1. Translate percent-encoding for either string.
`2. Convert both domain strings using the ToASCII operation described
`in RFC 3490 [3].
`3. Compare the two domain strings for ASCII equality, for each
`label. If the string comparison for each label indicates
`equality, the comparison succeeds. Otherwise, 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
`The <many/> element without any child elements or attributes matches
`any authenticated user.
`The following example shows such a rule that matches any
`authenticated user:
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="f3g44r5">
`<conditions>
`<identity>
`<many/>
`</identity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`</ruleset>
`Schulzrinne, et al. Standards Track [Page 12]
`

`

`13
`
`RFC 4745 Common Policy February 2007
`7.1.3.2. Matching Any Authenticated Identity Except Enumerated
` Domains/Identities
`The <many> element enclosing one or more <except domain="..."/>
`elements matches any user from any domain except those enumerated.
`The <except id="..."/> element excludes particular users. The
`semantics of the 'id' attribute of the <except> element is described
`in Section 7.2. The results of the child elements of the <many>
`element are combined using a logical OR.
`An example is shown below:
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="f3g44r1">
`<conditions>
`<sphere value="work"/>
`<identity>
`<many>
`<except domain="example.com"/>
`<except domain="example.org"/>
`<except id="sip:alice@bad.example.net"/>
`<except id="sip:bob@good.example.net"/>
`<except id="tel:+1-212-555-1234" />
`<except id="sip:alice@example.com"/>
`</many>
`</identity>
`<validity>
`<from>2003-12-24T17:00:00+01:00</from>
`<until>2003-12-24T19:00:00+01:00</until>
`</validity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`</ruleset>
`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,
`bob@good.example.net, and the user with the telephone number
`'tel:+1-212-555-1234'. The last 'except' element is redundant since
`alice@example.com is already excluded through the first line.
`Schulzrinne, et al. Standards Track [Page 13]
`

`

`14
`
`RFC 4745 Common Policy February 2007
`7.1.3.3. Matching Any Authenticated Identity within a Domain Except
` Enumerated Identities
`The <many> element with a 'domain' attribute and zero or more <except
`id="..."/> elements matches any authenticated user from the indicated
`domain except those explicitly enumerated. The semantics of the 'id'
`attribute of the <except> element is described in Section 7.2.
`It is nonsensical to have domains in the 'id' attribute that do not
`match the value of the 'domain' attribute in the enclosing <many>
`element.
`An example is shown below:
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="f3g44r1">
`<conditions>
`<identity>
`<many domain="example.com">
`<except id="sip:alice@example.com"/>
`<except id="sip:bob@example.com"/>
`</many>
`</identity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`</ruleset>
`This example matches any user within example.com (such as
`carol@example.com) except alice@example.com and bob@example.com.
`7.2. Single Entity
`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
`'single-user entity' as a placeholder for the <one> and the <except>
`element. The <except> element fulfills the purpose of excluding
`elements from the solution set.
`A single-user entity matches the authenticated identity (as contained
`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
`entity MUST NOT contain a 'domain' attribute.
`Schulzrinne, et al. Standards Track [Page 14]
`

`

`15
`
`RFC 4745 Common Policy February 2007
`The 'id' attribute contains an identity that MUST first be expressed
`as a URI. Applications using this framework must describe how the
`identities they are using can be expressed as URIs.
`7.3. Sphere
`The <sphere> element belongs to the group of condition elements. It
`can be used to indicate a state (e.g., 'work', 'home', 'meeting',
`'travel') the PT is currently in. A sphere condition matches only if
`the PT is currently in the state indicated. The state may be
`conveyed by manual configuration or by some protocol. For example,
`RPID [10] provides the ability to inform the PS of its current
`sphere. The application domain needs to describe in more detail how
`the sphere state is determined. Switching from one sphere to another
`causes a switch between different modes of visibility. As a result,
`different subsets of rules might be applicable.
`The content of the 'value' attribute of the <sphere> element MAY
`contain more than one token. The individual tokens MUST be separated
`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
`content of the 'value' attribute in the sphere attribute contains two
`tokens 'work' and 'home' then this part of the rule matches if the
`sphere for a particular PT is either 'work' OR 'home'. To compare
`the content of the 'value' attribute in the <sphere> element with the
`stored state information about the PT's sphere setting a
`case-insensitive string comparison MUST be used for each individual
`token. There is neither a registry for these values nor a language-
`specific indication of the sphere content. As such, the tokens are
`treated as opaque strings.
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="f3g44r2">
`<conditions>
`<sphere value="work"/>
`<identity>
`<one id="sip:andrew@example.com"/>
`</identity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`Schulzrinne, et al. Standards Track [Page 15]
`

`

`16
`
`RFC 4745 Common Policy February 2007
`<rule id="y6y55r2">
`<conditions>
`<sphere value="home"/>
`<identity>
`<one id="sip:allison@example.com"/>
`</identity>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`<rule id="z6y55r2">
`<conditions>
`<identity>
`<one id="sip:john@doe.example.com"/>
`</identity>
`<sphere value="home work"/>
`</conditions>
`<actions/>
`<transformations/>
`</rule>
`</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, the entity allison@example.com matches if the sphere
`is set to 'home'. The third rule also matches since the value in the
`sphere element also contains the token 'home'.
`7.4. Validity
`The <validity> element is the third condition element specified in
`this document. It expresses the rule validity period by two
`attributes, a starting and an ending time. The validity condition is
`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
`represents a logical OR operation across each <from> and <until>
`pair. Times are expressed in XML dateTime format. A rule maker
`might not always have access to the PS to invalidate some rules that
`grant permissions. Hence, this mechanism allows invalidating granted
`permissions automatically without further interaction between the
`rule maker and the PS. The PS does not remove the rules; instead the
`rule maker has to clean them up.
`Schulzrinne, et al. Standards Track [Page 16]
`

`

`17
`
`RFC 4745 Common Policy February 2007
`An example of a rule fragment is shown below:
`<?xml version="1.0" encoding="UTF-8"?>
`<ruleset xmlns="urn:ietf:params:xml:ns:common-policy">
`<rule id="

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket