Internet DRAFT - draft-bartz-lsb-policy-rule-components
draft-bartz-lsb-policy-rule-components
Network Working Group L. Bartz
Internet Draft Internal Revenue Service
Expires June, 2003 December, 2002
Logically Succinct Basic Policy Rule Components
< draft-bartz-lsb-policy-rule-components-00.txt >
Status of this Memo
This document is an Internet-Draft and is subject to all provisions of
Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering Task
Force (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Copyright Notice
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract
Logically Succinct Basic Policy Rule Components (LSBPRC) provides
model extensions to the Policy Core Information Model (PCIM) and
implementable extensions to the Policy Core LDAP Schema (PCLS) in
which the logic of conditions and actions can be succinctly expressed
and explicitly interpreted. LSBPRC offers a direct and invariant
connection between the rule designer's intention and the rule
interpreter's evaluation of the rulebase.
Bartz [Page 1]
INTERNET-DRAFT LSBPRC December, 2002
Table of Contents
1. Introduction
2. LSBPRC Information Model
2.1. Design Goals
2.2. Operands of Logical Operations
2.2.1. Operands of Comparison Operations
2.2.2. Operands of Assignment Operations
2.2.3. RHS Operand Families
2.2.3.1. Specified Operands
2.2.3.2. Computed Operands
2.2.3.2.1. Dynamic Operand
2.2.3.2.2. LDAP URL Value Operand
2.3. Logical Operations
2.3.1. Conditions as Comparison Operations
2.3.2. Actions as Assignment Operations
2.3.2.1. Assignment Modes
2.3.3. Actions as Invokers of Computational Resources
3. LSBPRC Directory Schema
3.1. LSBPRC Family Objectclasses
3.1.1. lsbCondition
3.1.2. lsbAction
3.2. LSBPRC Attributetypes
3.2.1. Named Operand
3.2.2. Specified Operands
3.2.2.1. String Operand
3.2.2.2. Integer Operand
3.2.2.3. Float Operand
3.2.2.4. Boolean Operand
3.2.2.5. BitString Operand
3.2.2.6. OctetString Operand
3.2.3. Computed Operands
3.2.3.1. Dynamic Operand Value Operand
3.2.3.2. LDAP URL Value Operand
3.2.4. Utility Attributes
3.2.4.1. String Ignore Case Flag
3.2.4.2. String Concatenation Delimiter
3.2.4.3. Assignment Mode
3.3. LSBPRC Implementable Objectclasses
3.3.1. LSBPRC Condition Components
3.3.1.1. String Comparison Operations
3.3.1.1.1. String Equality
3.3.1.1.2. String GreaterThan
3.3.1.1.3. String LessThan
3.3.1.1.4. String Length Equality
3.3.1.1.5. String Length GreaterThan
3.3.1.1.6. String Length LessThan
3.3.1.1.7. String BeginsWith
Bartz [Page 2]
INTERNET-DRAFT LSBPRC December, 2002
3.3.1.1.8. String EndsWith
3.3.1.1.9. String Contains
3.3.1.1.10. String Exists
3.3.1.2. Integer Comparison Operations
3.3.1.2.1. Integer Equality
3.3.1.2.2. Integer GreaterThan
3.3.1.2.3. Integer LessThan
3.3.1.2.4. Integer Exists
3.3.1.3. Float Comparison Operations
3.3.1.3.1. Float Equality
3.3.1.3.2. Float GreaterThan
3.3.1.3.3. Float LessThan
3.3.1.3.4. Float Exists
3.3.1.4. Boolean Comparison Operations
3.3.1.4.1. Boolean Equality
3.3.1.5. BitString Comparison Operations
3.3.1.5.1. Bit Value Equality
3.3.1.5.2. Bit Value GreaterThan
3.3.1.5.3. Bit Value LessThan
3.3.1.5.4. BitString Exists
3.3.1.6. Delegated Comparison Operations
3.3.1.6.1. Delegation to Distributed Object
3.3.2. LSBPRC Action Components
3.3.2.1. String Assignment Operations
3.3.2.1.1. String Assignment
3.3.2.1.2. String Concatenation
3.3.2.2. Integer Assignment Operations
3.3.2.2.1. Integer Assignment
3.3.2.2.2. Integer PlusEquals
3.3.2.2.3. Integer MinusEquals
3.3.2.2.4. Integer MultEquals
3.3.2.2.5. Integer DivEquals
3.3.2.2.6. Integer ModuloEquals
3.3.2.3. Float Assignment Operations
3.3.2.3.1. Float Assignment
3.3.2.3.2. Float PlusEquals
3.3.2.3.3. Float MinusEquals
3.3.2.3.4. Float MultEquals
3.3.2.3.5. Float DivEquals
3.3.2.3.6. Float ModuloEquals
3.3.2.4. Boolean Assignment Operations
3.3.2.4.1. Boolean Assignment
3.3.2.5. BitString Assignment Operations
3.3.2.5.1. Bitwise Shift Left
3.3.2.5.2. Bitwise Shift Right
3.3.2.5.3. Bitwise Shift Right Zero-fill
3.3.2.5.4. Bitwise AND
3.3.2.5.5. Bitwise OR
Bartz [Page 3]
INTERNET-DRAFT LSBPRC December, 2002
3.3.2.5.6. Bitwise XOR
3.3.2.5.7. Bitwise OnesComplement
3.3.2.6. Delegated Assignment Operations
3.3.2.6.1. Delegation to Distributed Object
3.3.2.7. Delegated Action to Computing Resource
3.3.2.7.1. Delegation to Distributed Object
3.3.3. LSBPRC Policy Alias
4. Security Considerations
5. Intellectual Property
6. Acknowledgements
7. References
8. Author's Address
9. Full Copyright Statement
1. Introduction
Logically Succinct Basic Policy Rule Components (LSBPRC) provides
model extensions to PCIM [1] and implementable extensions to PCLS [2]
in which the logic of conditions and actions can be succinctly
expressed and explicitly interpreted. LSBPRC offers a direct and
invariant connection between the rule designer's intention and the
rule interpreter's evaluation of the rulebase.
PCIM and PCLS each provide abstract, non-implementable definitions for
the components of a rule; the condition and action components. LSBPRC
provides explicit modeling of broad ranges of conditions as comparison
operations, and of actions as assignment operations. LSBPRC also
provides mechanisms by which policy actions may invoke computing
resources which fulfill a rule's requirement for "action". LSBPRC's
Directory [3,4,5] schema provides concrete, implementable
objectclasses and attributetypes which realize the model.
Expert Systems (ES) [6] is a discipline of the field of Artificial
Intelligence (AI). ES is also commonly known as "rule-based AI". Among
the many disciplines of AI, ES is widely acknowledged as one which has
achieved a comparatively significant level of maturity, with readily
accessible concepts, widely available software, and many successful
and productive applications.
The terminology and concepts of PCIM show a strong correspondence to
the terminology and concepts of Expert Systems. There is no evidence
in PCIM that this correspondence was deliberate. Nevertheless, the
affinity of Policy for Expert Systems, even if unintentional, is
strong. In PCIM, rules are composed of conditions and actions, just as
in Expert Systems. The compositional nature of rules, in which
conditions and actions are components, is common to both PCIM and
Bartz [Page 4]
INTERNET-DRAFT LSBPRC December, 2002
Expert Systems. Accordingly, the abstract compositional building
blocks of PCIM and PCLS, when evaluated from the perspective of ES,
are very familiar and compelling.
LSBPRC is inspired, motivated, and informed by the concepts and
patterns of Expert Systems. This is not to say that an Expert System
is the only mechanism which is capable of using LSBPRC's information
model and schema. Rather, that Expert Systems strategies and
methodologies illuminate a path which leads to LSBPRC's concrete and
implementable extensions of the PCIM and PCLS.
In Expert Systems implementations, the comparison operators of
conditional operations, the assignment operators of action operations,
and the operators of action operations which activate or invoke
computational resources are all integrated with the condition and
action components. These operators of conditions and actions convey
the rule designer's precise intentions. This precision empowers the
rule evaluator ( the PDP, in the case of PCIM ), allowing the
capability to faithfully execute the rule as it was designed.
This is the foundational premise of LSBPRC; that the discipline of
Expert Systems offers a "best practices" example for the expression,
persistence, and evaluation of rules. Specifically, a rule is not
defined unless the logic of its condition and action components is
unequivocable.
With the decision to explicitly support the comparison operators of
conditions and the assignment and execution operators of actions
concluded, the question of how many, and which operators arises.
LSBPRC intends to serve as a general purpose model and as a vehicle
for implementation of policy-based systems and applications,
regardless of their particlar information and problem domains.
Accordingly, LSBPRC explicitly supports a limited yet thorough set of
operators which are generally useful. As a hedge, LSBPRC also supports
"escape hatches", built-in mechanisms which allow implementors to
define and invoke their own purpose-built condition and action
operators as distributed objects.
The choice of which condition and action operators are explicitly
supported in LSBPRC is dependent upon evidence of "best practices".
The choice of operators is drawn from primitive comparison and
assignment operators implemented in programming languages such as C
[9] and Java [10], and in scripting languages such as ECMAScript [11].
Again, the domain of Expert Systems reinforces this "best practices"
evidence, as these common operators are generally supported as native
functions.
Unlike PCIM and PCLS, this document presents LSBPRC's information
Bartz [Page 5]
INTERNET-DRAFT LSBPRC December, 2002
model and Directory schema in one document. This is not to imply that
the Directory schema is the only possible technical specification of
LSBPRC's information components. Neither does it imply that the
Directory is the only possible repository for the persistence of
LSBPRC's information.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119, reference
[7].
The key words "PDP" and "PEP" are to be interpreted as described in
RFC 3060, reference [1].
NOTE: This draft is dependent upon a Work in Progress [2]. A
subsequent version of this draft will reference [2] by its RFC when
appropriate.
2. LSBPRC Information Model
2.1. Design Goals
Goals which shaped the design of LSBPRC include:
- provide concrete, immediately implementable and useful model and
schema
- provide model and schema for widely-applicable, general purpose
rules, conditions, and actions
- avoid dependence upon, or explicit support for, any particular
application domain of rules, conditions, or actions
- support capability for rule authors to explicitly define the
logical comparison operations of conditions and the logical
assignment operations of actions
- support capability for rule interpreters to unequivocably
evaluate and act upon the expressed intent of rule authors
- explicitly define conditions as comparison operations
- provide a broad range of comparison operations based upon
comparison operations which are widely implemented and used
Bartz [Page 6]
INTERNET-DRAFT LSBPRC December, 2002
- explicitly define actions as assignment operations
- provide a broad range of assignment operations based upon
assignment operations which are widely implemented and used
- leverage the rule expression, storage, and evaluation patterns of
Expert Systems
- define typesafe operands for the comparison operations of
conditions and the assignment operations of actions
- provide mechanism for using the results (assigned values) of
rules as operands in other rules
- provide built-in extension mechanisms to support conditions and
actions which are not, should not, or cannot be defined in
this model
- provide explicit mechanisms which can invoke computing resources
to fulfill a rule's requirements for "action"
2.2. Operands of Logical Operations
LSBPRC defines conditions as comparison operations, and actions as
assignment operations. The expression of an operation in this model
requires an operator, which is a specific logical function, and
operands, which are the information components with which the operator
computes. The definitions of LSBPRC's logical operators are
encapsulated as objectclass definitions, as described in sections 2.3
and 3.3 of this document. LSBPRC's operands are described here.
LSBPRC explicitly supports six data types for operands of its logical
operations. These are String, Integer, Float, Boolean, Bit String, and
Octet String. To promote typesafety of logical operations, each
general operand kind is represented by six type-specific instances.
2.2.1. Operands of Comparison Operations
In the comparison operations of conditions, there are two categories
of operands.
First is the operand which represents the value which is the subject
of the comparison. This is called the "Named Operand" of a comparison
operation throughout this model. As with all other LSBPRC operand
Bartz [Page 7]
INTERNET-DRAFT LSBPRC December, 2002
kinds, Named Operand supports typesafety in logical operations. The
statically-defined value is always a name, so it is expressed as a
string value. The six instances of Named Operand designate, by their
names and through the semantics of their definitions, the types of the
values to which they refer. The Named Operand can be thought of as
residing in the left-hand side (LHS) of a comparison operation.
Second is the operand which constitutes the comparison criteria. The
model nominates many specific attributetypes to serve this role. Each
is known as a "Comparison Operand" of a comparison operation
throughout this model. The Comparison Operand can be thought of as
residing on the right-hand side (RHS) of a comparison operation.
2.2.2. Operands of Assignment Operations
In the assignment operations of actions, there are two categories of
operands.
First is the operand to which value is assigned by the operation.
This is called the "Named Operand" of an assignment operation in this
model. As with all other LSBPRC operand kinds, Named Operand supports
typesafety in logical operations. The statically-defined value is
always a name, so it is expressed as a string value. The six instances
of Named Operand designate, by their names and through the semantics
of their definitions, the types of the values to which they refer. The
Named Operand can be thought of as residing in the left-hand side
(LHS) of an assignment operation.
Second is the operand which represents the value to be assigned or a
value from which the value to be assigned is computed. This model
nominates many specific attributetypes to serve this role. Each is
known as an "Assignment Operand" of an action operation throughout
this model. The Assignment Operands can be thought of as residing on
the right-hand side (RHS) of a comparison operation.
2.2.3. RHS Operand Families
Comparison Operands and Assignment Operands are drawn from two
families of operands, the Specified Operands and the Computed
Operands.
2.2.3.1. Specified Operands
Bartz [Page 8]
INTERNET-DRAFT LSBPRC December, 2002
Specified Operands are typesafe. They represent the domain of constant
and literal information types which are supported for comparison
operations and and assignment operations in this model. The types
include String, Integer, Float, Boolean, Bit String, and Octet String.
Specified Operands provide the mechanism for expressing operands as
constants or literal values in the logical operations of LSBPRC.
2.2.3.2. Computed Operands
Computed Operands require some computation to reveal their values.
LSBPRC defines two types of Computed Operand.
2.2.3.2.1. Dynamic Operand
The static value of a Dynamic Operand is the name of a variable which
is available to the PDP. This name MUST be dereferenced by the PDP so
that the PDP may evaluate the operation using the runtime values which
are associated with the statically-defined name. The dereferenced
name/value-set could be a name/value-set which is provided to the PDP
by the PEP, or a name/value-set which the PDP can glean from its own
environment, or a name/value-set which which has been created or
modified by another rule.
Note that although a Dynamic Operand is single-valued ( one name of
one variable ), the act of dereferencing a Dynamic Operand may reveal
that the variable itself is multi-valued. Implementations which use
Dynamic Operand MAY limit applicability to single-valued variables in
order to simplify processing. Otherwise, implementations SHOULD
iterate over all values of a multi-valued Dynamic Operand.
Use of Dynamic Operand in which the name value designates a variable
which is multi-valued is not defined for usage as Assignment Operand.
As with all other LSBPRC operand kinds, Dynamic Operand supports
typesafety in logical operations. The statically-defined value is
always a name, so it is expressed as a string value. The six instances
of Dynamic Operand designate, by their names and through the semantics
of their definitions, the types of the values to which they refer.
2.2.3.2.2. LDAP URL Value Operand
The static value of an LDAP URL Value Operand is an LDAP URL, as
Bartz [Page 9]
INTERNET-DRAFT LSBPRC December, 2002
defined in [8]. LSBPRC constrains the usage of LDAP URL for use in
this model to forms in which one and ONLY one attribute is specified
as the URL's search criteria. This LDAP URL MUST be dereferenced so
that the PDP may evaluate the operation using the values which are
associated with the statically-defined URL.
Note that although an LDAP URL Value Operand is single-valued ( one
URL which solicits values of one attribute ), the act of dereferencing
an LDAP URL Value Operand may reveal that the variable itself is
multi-valued. Implementations which use LDAP URL Value Operand MAY
limit applicability to single-valued variables in order to simplify
processing. Otherwise, implementations SHOULD iterate over all values
of a multi-valued LDAP URL Value Operand.
Use of LDAP URL Value Operand in which the solicited attribute
designates an attribute which is multi-valued is not defined for usage
as Assignment Operand.
As with all other LSBPRC operand kinds, LDAP URL Value Operand
supports typesafety in logical operations. The statically-defined
value is always a URI, so it is expressed as a string value. The six
instances of LDAP URL Value Operand designate, by their names and
through the semantics of their definitions, the types of the values to
which they refer.
2.3. Logical Operations
2.3.1. Conditions as Comparison Operations
LSBPRC conditions are comparison operations which yield boolean
results. Comparison operations are typesafe, by virtue their
objectclass name and semantic description, and by the type
specifications of their attributes.
Many operator-specific and datatype-specific classes are defined in
3.3.1 and subordinate sections of this document.
When the specified comparisons are not sufficient to satisfy an
implementation's requirements, a rule may delegate the comparison
operation to a distributed object, as described in 3.3.1.6. The
delegated comparison operation is identified in the information model
and in the Directory as per either RFC 2713 [13] or RFC 2714 [14].
NOTE:
A subsequent version of this draft may specify Java [10] classes,
Java interfaces, and CORBA IDL (Interface Definition Language)
Bartz [Page 10]
INTERNET-DRAFT LSBPRC December, 2002
[12] which are suitable for use in implementing these operations.
2.3.2. Actions as Assignment Operations
LSBPRC actions are assignment operations which assign values to
variables. Assignment operations are typesafe, by virtue their
objectclass name and semantic description, and by the type
specifications of their attributes.
Many operator-specific and datatype-specific classes are defined in
3.3.1 and subordinate sections of this document.
When the specified assignment operations are not sufficient to satisfy
an implementation's requirements, a rule may delegate the assignment
operation to a distributed object, as described in 3.3.2.6. The
delegated assignment operation is identified in the information model
and in the Directory as per either RFC 2713 [13] or RFC 2714 [14].
NOTE:
A subsequent version of this draft may specify Java [10] classes,
Java interfaces, and CORBA IDL (Interface Definition Language)
[12] which are suitable for use in implementing these operations.
2.3.2.2. Assignment Modes
LSBPRC supports several strategies for assigning values to variables.
These include:
- replace any/all Named Operand values by single value
- augment multivalued Named Operand by additional value
- modify all values of Named Operand by assignment operation
- delete specified value from value set of Named Operand
The attribute lsbActionAssignmentMode, implemented as an integer
enumerator, indicates which strategy is specified for each assignment
operation. See 3.2.4.3.
2.3.3. Actions as Invokers of Computational Resources
Bartz [Page 11]
INTERNET-DRAFT LSBPRC December, 2002
The Delegated Action component may invoke computing resources which
fulfill a rule's requirement for "action".
3. LSBPRC Directory Schema
NOTE: OIDs for the schema elements in this document have not been
assigned. This note to be removed prior to publication. All uses of
OIDs are indicated symbolically. For example, OID-OC.1 is a
placeholder that will be replaced by a real OID before publication.
3.1. LSBPRC Family Objectclasses
3.1.1. lsbCondition
objectclass ( OID-OC.1
NAME 'lsbCondition'
DESC 'Class from which all lsb Condition classes
inherit. Subtypes specify logically succinct comparison
operations in which the value of a Named Operand is evaluated
with respect to the value of Comparison Operand. The comparison
operation yields a boolean result.'
SUP pcimConditionAuxClass
AUXILIARY
)
3.1.2. lsbAction
objectclass ( OID-OC.2
NAME 'lsbAction'
DESC 'Class from which all lsb Action classes inherit. Subtypes
specify logically succinct assignment operations in which the
value of a Named Operand is assigned using the value of an
Assignment Operand.'
SUP pcimActionAuxClass
AUXILIARY
)
3.2. LSBPRC Attributetypes
Bartz [Page 12]
INTERNET-DRAFT LSBPRC December, 2002
3.2.1. Named Operand
attributetype ( OID-AT.1
NAME 'lsbOperandNamedStr'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some value(s) of type String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.2
NAME 'lsbOperandNamedInt'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some value(s) of type Integer.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.3
NAME 'lsbOperandNamedFloat'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some value(s) of type Float.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
Bartz [Page 13]
INTERNET-DRAFT LSBPRC December, 2002
attributetype ( OID-AT.4
NAME 'lsbOperandNamedBitStr'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some value(s) of type Bit String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.5
NAME 'lsbOperandNamedBool'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some a value of type Boolean.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.6
NAME 'lsbOperandNamedOctStr'
DESC 'The Named Operand of a logical comparison or assignment
operation. In a Condition, it is the subject of the comparison
operation. In an Action, it is the target of the assignment
operation. This Named Operand type represents a variable which
possesses some value(s) of type Octet String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2. Specified Operands
Bartz [Page 14]
INTERNET-DRAFT LSBPRC December, 2002
3.2.2.1. String Operand
attributetype ( OID-AT.7
NAME 'lsbOperandSpecStr'
DESC 'String value of the operand with which the Named
Operand of a condition is compared or with which the Named
Operand of an action is assigned. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2.2. Integer Operand
attributetype ( OID-AT.9
NAME 'lsbOperandSpecInt'
DESC 'Integer value of the operand with which the Named
Operand of a condition is compared or with which the Named
Operand of an action is assigned. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
EQUALITY integerMatch
ORDERING integerOrderingMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2.3. Float Operand
attributetype ( OID-AT.11
NAME 'lsbOperandSpecFloat'
DESC 'Floating point value of the operand with which the Named
Operand of a condition is compared or with which the Named
Operand of an action is assigned. There is no floating point
attribute type defined for the Directory. Implementors should
adhere to common representations of floating point values,
such as such as 765.482 or 7.65482e+2. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
Bartz [Page 15]
INTERNET-DRAFT LSBPRC December, 2002
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2.4. Boolean Operand
attributetype ( OID-AT.13
NAME 'lsbOperandSpecBool'
DESC 'Boolean value of the operand with which the Named
Operand of a condition is compared or with which the Named
Operand of an action is assigned. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
EQUALITY booleanMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2.5. BitString Operand
attributetype ( OID-AT.15
NAME 'lsbOperandSpecBitStr'
DESC 'Bit String value of the operand with which the Named
Operand of a condition is compared or with which the Named
Operand of an action is assigned. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.6
EQUALITY bitStringMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.2.6. OctetString Operand
attributetype ( OID-AT.17
NAME 'lsbOperandSpecOctStr'
DESC 'Octet String value of the operand with which the Named
Bartz [Page 16]
INTERNET-DRAFT LSBPRC December, 2002
Operand of a condition is compared or with which the Named
Operand of an action is assigned. In lsbCondition types,
this is a Comparison Operand. In lsbAction types, this is
an Assignment Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
EQUALITY octetStringMatch
ORDERING octetStringOrderingMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.3. Computed Operands
3.2.3.1. Dynamic Operand Value Operand
attributetype ( OID-AT.19
NAME 'lsbOperandDynStr'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types,
this is a Comparison Operand. The values of the dereferenced
operand name constitute the domain of values with which the
Named Operand is compared. Comparison operations are obligated
to iterate over all values of the Comparison operand. In
lsbAction types, this is an Assignment Operand. Use of
multivalued Assignment Operands is undefined. This Dynamic
Operand type represents a variable which possesses some value(s)
of type String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.21
NAME 'lsbOperandDynInt'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types,
this is a Comparison Operand. The values of the dereferenced
operand name constitute the domain of values with which the
Named Operand is compared. Comparison operations are obligated
to iterate over all values of the Comparison operand. In
lsbAction types, this is an Assignment Operand. Use of
multivalued Assignment Operands is undefined. This Dynamic
Bartz [Page 17]
INTERNET-DRAFT LSBPRC December, 2002
Operand type represents a variable which possesses some value(s)
of type Integer.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.23
NAME 'lsbOperandDynFloat'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types, this
is a Comparison Operand. The values of the dereferenced operand
name constitute the domain of values with which the Named
Operand is compared. Comparison operations are obligated to
iterate over all values of the Comparison operand. In lsbAction
types, this is an Assignment Operand. Use of multivalued
Assignment Operands is undefined. This Dynamic Operand type
represents a variable which possesses some value(s) of type Float.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.25
NAME 'lsbOperandDynBitStr'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types,
this is a Comparison Operand. The values of the dereferenced
operand name constitute the domain of values with which the
Named Operand is compared. Comparison operations are obligated
to iterate over all values of the Comparison operand. In
lsbAction types, this is an Assignment Operand. Use of
multivalued Assignment Operands is undefined. This Dynamic
Operand type represents a variable which possesses some value(s)
of type Bit String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
Bartz [Page 18]
INTERNET-DRAFT LSBPRC December, 2002
attributetype ( OID-AT.27
NAME 'lsbOperandDynBool'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types, this
is a Comparison Operand. The values of the dereferenced operand
name constitute the domain of values with which the Named
Operand is compared. Comparison operations are obligated to
iterate over all values of the Comparison operand. In lsbAction
types, this is an Assignment Operand. Use of multivalued
Assignment Operands is undefined. This Dynamic Operand type
represents a variable which possesses a value of type Boolean.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.29
NAME 'lsbOperandDynOctStr'
DESC 'Name of an operand, the value of which is used in
comparison or assignment operations. In lsbCondition types,
this is a Comparison Operand. The values of the dereferenced
operand name constitute the domain of values with which the
Named Operand is compared. Comparison operations are obligated
to iterate over all values of the Comparison operand. In
lsbAction types, this is an Assignment Operand. Use of
multivalued Assignment Operands is undefined. This Dynamic
Operand type represents a variable which possesses some value(s)
of type Octet String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.3.2. LDAP URL Value Operand
attributetype ( OID-AT.31
NAME 'lsbOperandValueLDAPURLStr'
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
Bartz [Page 19]
INTERNET-DRAFT LSBPRC December, 2002
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns one or more
values which are of type String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.33
NAME 'lsbOperandValueLDAPURLInt'
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns one or more
values which are of type Integer.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.35
NAME 'lsbOperandValueLDAPURLFloat'
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns one or more
values which are of type Float.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
Bartz [Page 20]
INTERNET-DRAFT LSBPRC December, 2002
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.37
NAME 'lsbOperandValueLDAPURLBitStr'
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns one or more
values which are of type Bit String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.39
NAME 'lsbOperandValueLDAPURLBool'
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns a
value of type Boolean.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
attributetype ( OID-AT.41
NAME 'lsbOperandValueLDAPURLOctStr'
Bartz [Page 21]
INTERNET-DRAFT LSBPRC December, 2002
DESC 'RFC 2255 LDAP URL which returns values of a single
attribute. In lsbCondition types, this is a Comparison
Operand. The values returned by the LDAP operation
constitute the domain of values with which the Named Operand
is compared. Comparison operations are obligated to iterate
over all values of the Comparison Operand. In lsbAction types,
this is an Assignment Operand. Use of multivalued Assignment
Operands is undefined. This LDAP URL Value Operand represents
an LDAP URL which, when dereferenced, returns one or more
values which are of type Octet String.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.4. Utility Attributes
3.2.4.1. String Ignore Case Flag
attributetype ( OID-AT.43
NAME 'lsbCompareStrIgnoreCase'
DESC 'Indicates whether conditions which compare character
strings should ignore case.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
EQUALITY booleanMatch
SINGLE-VALUE
USAGE userApplications
)
3.2.4.2. String Concatenation Delimiter
attributetype ( OID-AT.44
NAME 'lsbStrCatDelim'
DESC 'Optional delimiter for string concatenation assignment
operations.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SINGLE-VALUE
USAGE userApplications
)
Bartz [Page 22]
INTERNET-DRAFT LSBPRC December, 2002
3.2.4.3. Assignment Mode
attributetype ( OID-AT.45
NAME 'lsbActionAssignmentMode'
DESC 'Integer value indicates mode of assignment action.
"1": replace any/all Named Operand values by single value.
"2": augment multivalued Named Operand by additional value.
"3": modify all values of Named Operand by assignment operation.
"4": delete specified value from value set of Named Operand.'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
EQUALITY integerMatch
ORDERING integerOrderingMatch
SINGLE-VALUE
USAGE userApplications
)
3.3. LSBPRC Implementable Objectclasses
3.3.1. LSBPRC Condition Components
3.3.1.1. String Comparison Operations
3.3.1.1.1. String Equality Comparison
objectclass ( OID-OC.3
NAME 'lsbConditionStrEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The Named Operand is evaluated for lexicographically
"equal" with respect to the Comparison Operand. When the
Named Operand and/or Comparison Operand is multivalued, if
one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.2. String GreaterThan Comparison
objectclass ( OID-OC.4
NAME 'lsbConditionStrGT'
DESC 'Specifies comparison according to the semantic
Bartz [Page 23]
INTERNET-DRAFT LSBPRC December, 2002
of "greaterThan". The Named Operand is evaluated for
lexicographically "greaterThan" with respect to the Comparison
Operand. When the Named Operand and/or Comparison Operand
is multivalued, if one comparison operation of any pair of
operands satisfies the comparison operation, the condition
evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.3. String LessThan Comparison
objectclass ( OID-OC.5
NAME 'lsbConditionStrLT'
DESC 'Specifies comparison according to the semantic
of "lessThan". The Named Operand is evaluated for
lexicographically "lessThan" with respect to the Comparison
Operand. When the Named Operand and/or Comparison Operand
is multivalued, if one comparison operation of any pair of
operands satisfies the comparison operation, the condition
evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.4. String Length Equality Comparison
objectclass ( OID-OC.6
NAME 'lsbConditionStrLenEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The length of Named Operand is evaluated for "equal"
with respect to the length of the Comparison Operand. When
the Named Operand and/or Comparison Operand is multivalued,
if one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
Bartz [Page 24]
INTERNET-DRAFT LSBPRC December, 2002
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.5. String Length GreaterThan Comparison
objectclass ( OID-OC.7
NAME 'lsbConditionStrLenGT'
DESC 'Specifies comparison according to the semantic of
"greaterThan". The length of Named Operand is evaluated for
"greaterThan" with respect to the length of the Comparison
Operand. When the Named Operand and/or Comparison Operand
is multivalued, if one comparison operation of any pair of
operands satisfies the comparison operation, the condition
evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.6. String Length LessThan Comparison
objectclass ( OID-OC.8
NAME 'lsbConditionStrLenLT'
DESC 'Specifies comparison according to the semantic of
"lessThan". The length of Named Operand is evaluated for
"lessThan" with respect to the length of the Comparison
Operand. When the Named Operand and/or Comparison Operand
is multivalued, if one comparison operation of any pair of
operands satisfies the comparison operation, the condition
evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.7. String BeginsWith Comparison
Bartz [Page 25]
INTERNET-DRAFT LSBPRC December, 2002
objectclass ( OID-OC.9
NAME 'lsbConditionStrBeg'
DESC 'Specifies comparison according to the semantic of
"beginsWith". The Named Operand is evaluated for "beginsWith"
with respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.8. String EndsWith Comparison
objectclass ( OID-OC.10
NAME 'lsbConditionStrEnd'
DESC 'Specifies comparison according to the semantic of
"endsWith". The Named Operand is evaluated for "endsWith"
with respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.9. String Contains Comparison
objectclass ( OID-OC.11
NAME 'lsbConditionStrCont'
DESC 'Specifies comparison according to the semantic of
"contains". The Named Operand is evaluated for "contains"
with respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedStr $ lsbCompareStrIgnoreCase )
Bartz [Page 26]
INTERNET-DRAFT LSBPRC December, 2002
MAY ( lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.1.1.10. String Exists Comparison
objectclass ( OID-OC.12
NAME 'lsbConditionStrExist'
DESC 'Specifies comparison according to the semantic of
"exists". The Named Operand is evaluated for "exists".'
SUP lsbCondition
MUST ( lsbOperandNamedStr )
AUXILIARY
)
3.3.1.2. Integer Comparison Operations
3.3.1.2.1. Integer Equality Comparison
objectclass ( OID-OC.13
NAME 'lsbConditionIntEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The Named Operand is evaluated for "equal" with
respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedInt )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.1.2.2. Integer GreaterThan Comparison
objectclass ( OID-OC.14
NAME 'lsbConditionIntGT'
DESC 'Specifies comparison according to the semantic
of "greaterThan". The Named Operand is evaluated for
"greaterThan" with respect to the Comparison Operand. When
Bartz [Page 27]
INTERNET-DRAFT LSBPRC December, 2002
the Named Operand and/or Comparison Operand is multivalued,
if one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedInt )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.1.2.3. Integer LessThan Comparison
objectclass ( OID-OC.15
NAME 'lsbConditionIntLT'
DESC 'Specifies comparison according to the semantic of
"lessThan". The Named Operand is evaluated for "lessThan"
with respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedInt )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.1.2.4. Integer Exists Comparison
objectclass ( OID-OC.16
NAME 'lsbConditionIntExist'
DESC 'Specifies comparison according to the semantic of
"exists". The Named Operand is evaluated for "exists".'
SUP lsbCondition
MUST ( lsbOperandNamedInt )
AUXILIARY
)
3.3.1.3. Float Comparison Operations
3.3.1.3.1. Float Equality Comparison
Bartz [Page 28]
INTERNET-DRAFT LSBPRC December, 2002
objectclass ( OID-OC.17
NAME 'lsbConditionFloatEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The Named Operand is evaluated for "equal" with
respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedFloat )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.1.3.2. Float GreaterThan Comparison
objectclass ( OID-OC.18
NAME 'lsbConditionFloatGT'
DESC 'Specifies comparison according to the semantic
of "greaterThan". The Named Operand is evaluated for
"greaterThan" with respect to the Comparison Operand. When
the Named Operand and/or Comparison Operand is multivalued,
if one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedFloat )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.1.3.3. Float LessThan Comparison
objectclass ( OID-OC.19
NAME 'lsbConditionFloatLT'
DESC 'Specifies comparison according to the semantic of
"lessThan". The Named Operand is evaluated for "lessThan"
with respect to the Comparison Operand. When the Named Operand
and/or Comparison Operand is multivalued, if one comparison
operation of any pair of operands satisfies the comparison
operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedFloat )
Bartz [Page 29]
INTERNET-DRAFT LSBPRC December, 2002
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.1.3.4. Float Exists Comparison
objectclass ( OID-OC.20
NAME 'lsbConditionFloatExist'
DESC 'Specifies comparison according to the semantic of
"exists". The Named Operand is evaluated for "exists".'
SUP lsbCondition
MUST ( lsbOperandNamedFloat )
AUXILIARY
)
3.3.1.4. Boolean Comparison Operations
3.3.1.4.1. Boolean Equality Comparison
objectclass ( OID-OC.21
NAME 'lsbConditionBoolEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The Named Operand is evaluated for "equal" with
respect to the Comparison Operand. A boolean Named Operand
should never be multivalued. Neither should the Comparison
Operand.'
SUP lsbCondition
MUST ( lsbOperandNamedBool )
MAY ( lsbOperandSpecBool $ lsbOperandValueLDAPURLBool $
lsbOperandDynBool )
AUXILIARY
)
3.3.1.5. BitString Comparison Operations
3.3.1.5.1. Bit Value Equality Comparison
objectclass ( OID-OC.22
NAME 'lsbConditionBitEQ'
DESC 'Specifies comparison according to the semantic of
"equal". The Named Operand is evaluated for mathematically
Bartz [Page 30]
INTERNET-DRAFT LSBPRC December, 2002
"equal" with respect to the Comparison Operand. When the
Named Operand and/or Comparison Operand is multivalued, if
one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedBitStr )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
3.3.1.5.2. Bit Value GreaterThan Comparison
objectclass ( OID-OC.23
NAME 'lsbConditionBitGT'
DESC 'Specifies comparison according to the semantic
of "greaterThan". The Named Operand is evaluated for
mathematically "greaterThan" with respect to the Comparison
Operand. When the Named Operand and/or Comparison Operand
is multivalued, if one comparison operation of any pair of
operands satisfies the comparison operation, the condition
evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedBitStr )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
3.3.1.5.3. Bit Value LessThan Comparison
objectclass ( OID-OC.24
NAME 'lsbConditionBitLT'
DESC 'Specifies comparison according to the semantic of
"lessThan". The Named Operand is evaluated for mathematically
"lessThan" with respect to the Comparison Operand. When the
Named Operand and/or Comparison Operand is multivalued, if
one comparison operation of any pair of operands satisfies
the comparison operation, the condition evaluates as TRUE.'
SUP lsbCondition
MUST ( lsbOperandNamedBitStr )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
Bartz [Page 31]
INTERNET-DRAFT LSBPRC December, 2002
)
3.3.1.5.4. BitString Exists Comparison
objectclass ( OID-OC.25
NAME 'lsbConditionBitExist'
DESC 'Specifies comparison according to the semantic of
"exists". The Named Operand is evaluated for "exists".'
SUP lsbCondition
MUST ( lsbOperandNamedBitStr )
AUXILIARY
)
3.3.1.6. Delegated Comparison Operations
3.3.1.6.1. Delegation to Distributed Object
objectclass ( OID-OC.30
NAME 'lsbConditionObjRef'
DESC 'This lsbCondition type delegates the comparison
operation to a distributed object. Use this when [1]
the comparison operation cannot be defined using other
lsbCondition types due to complexity or information domain
uniqueness, or [2] the comparison operation is computationally
infeasible or otherwise inappropriate for computation by
a general purpose PDP. The PDP is responsible for
providing the distributed object with the operands of the
condition. The PDP might optionally provide the distributed
object with other information it received from the PEP,
information assigned via computation of lsbActions, and
more. The distributed object is responsible for returning
a boolean result, which the PDP interprets as the value of
the comparison operation. The identity of the distributed
object is defined by including attribute/value pairs defined
by RFC 2713 or RFC 2714.'
SUP lsbCondition
MAY ( lsbOperandNamedStr $ lsbOperandNamedInt $
lsbOperandNamedFloat $ lsbOperandNamedBitStr $
lsbOperandNamedBool $ lsbOperandNamedOctStr $
lsbOperandSpecStr $ lsbOperandSpecInt $
lsbOperandSpecFloat $ lsbOperandSpecBool $
lsbOperandSpecBitStr $ lsbOperandSpecOctStr $
lsbOperandValueLDAPURLStr $ lsbOperandValueLDAPURLInt $
lsbOperandValueLDAPURLFloat $ lsbOperandValueLDAPURLBitStr $
Bartz [Page 32]
INTERNET-DRAFT LSBPRC December, 2002
lsbOperandValueLDAPURLBool $ lsbOperandValueLDAPURLOctStr $
lsbOperandDynStr $ lsbOperandDynInt $
lsbOperandDynFloat $ lsbOperandBitStr $
lsbOperandDynBool $ lsbOperandDynOctStr $
lsbCompareStrIgnoreCase )
AUXILIARY
)
3.3.2. LSBPRC Action Components
3.3.2.1. String Assignment Operations
3.3.2.1.1. String Assignment
objectclass ( OID-OC.31
NAME 'lsbActionStrEQ'
DESC 'Specifies value assignment according to the semantic
of "Equal". The value of the Named Operand is assigned or
modified by "Equal" with respect to the specified Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedStr $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr )
AUXILIARY
)
3.3.2.1.2. String Concatenation Assignment
objectclass ( OID-OC.32
NAME 'lsbActionStrCat'
DESC 'Specifies value assignment according to the semantic of
"STRing conCATenization". The value of the Named Operand is
modified by appending the Assignment Operand.'
SUP lsbAction
MUST ( lsbOperandNamedStr $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecStr $ lsbOperandValueLDAPURLStr $
lsbOperandDynStr $ lsbStrCatDelim )
AUXILIARY
)
3.3.2.2. Integer Assignment Operations
Bartz [Page 33]
INTERNET-DRAFT LSBPRC December, 2002
3.3.2.2.1. Integer Assignment
objectclass ( OID-OC.33
NAME 'lsbActionIntEQ'
DESC 'Specifies value assignment according to the semantic
of "Equal". The value of the Named Operand is assigned or
modified by "Equal" with respect to the Assignment Operand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.2.2. Integer PlusEquals Assignment
objectclass ( OID-OC.34
NAME 'lsbActionIntPlusEQ'
DESC 'Specifies value assignment according to the semantic
of "PlusEqual". The value of the Named Operand is assigned
or modified by "PlusEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.2.3. Integer MinusEquals Assignment
objectclass ( OID-OC.35
NAME 'lsbActionIntMinusEQ'
DESC 'Specifies value assignment according to the semantic
of "MinusEqual". The value of the Named Operand is assigned
or modified by "MinusEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
Bartz [Page 34]
INTERNET-DRAFT LSBPRC December, 2002
3.3.2.2.4. Integer MultEquals Assignment
objectclass ( OID-OC.36
NAME 'lsbActionIntMultEQ'
DESC 'Specifies value assignment according to the semantic
of "MultEqual". The value of the Named Operand is assigned
or modified by "MultEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.2.5. Integer DivEquals Assignment
objectclass ( OID-OC.37
NAME 'lsbActionIntDivEQ'
DESC 'Specifies value assignment according to the semantic
of "DivEqual". The value of the Named Operand is assigned
or modified by "DivEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.2.6. Integer ModuloEquals Assignment
objectclass ( OID-OC.38
NAME 'lsbActionIntModuloEQ'
DESC 'Specifies value assignment according to the semantic of
"ModuloEqual". The value of the Named Operand is assigned
the value of NamedOperand modulo AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedInt $ lsbActionAssignmentMode )
MAY ( $ lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
Bartz [Page 35]
INTERNET-DRAFT LSBPRC December, 2002
3.3.2.3. Float Assignment Operations
3.3.2.3.1. Float Assignment
objectclass ( OID-OC.39
NAME 'lsbActionFloatEQ'
DESC 'Specifies value assignment according to the semantic
of "Equal". The value of the Named Operand is assigned or
modified by "Equal" with respect to the specified Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.2.3.2. Float PlusEquals Assignment
objectclass ( OID-OC.40
NAME 'lsbActionFloatPlusEQ'
DESC 'Specifies value assignment according to the semantic
of "PlusEqual". The value of the Named Operand is assigned
or modified by "PlusEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.2.3.3. Float MinusEquals Assignment
objectclass ( OID-OC.41
NAME 'lsbActionFloatMinusEQ'
DESC 'Specifies value assignment according to the semantic
of "MinusEqual". The value of the Named Operand is assigned
or modified by "MinusEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
Bartz [Page 36]
INTERNET-DRAFT LSBPRC December, 2002
AUXILIARY
)
3.3.2.3.4. Float MultEquals Assignment
objectclass ( OID-OC.42
NAME 'lsbActionFloatMultEQ'
DESC 'Specifies value assignment according to the semantic
of "MultEqual". The value of the Named Operand is assigned
or modified by "MultEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.2.3.5. Float DivEquals Assignment
objectclass ( OID-OC.43
NAME 'lsbActionFloatDivEQ'
DESC 'Specifies value assignment according to the semantic
of "DivEqual". The value of the Named Operand is assigned
or modified by "DivEqual" with respect to the Assignment
Operand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.2.3.6. Float ModuloEquals Assignment
objectclass ( OID-OC.44
NAME 'lsbActionFloatModuloEQ'
DESC 'Specifies value assignment according to the semantic of
"ModuloEqual". The value of the Named Operand is assigned
the value of NamedOperand modulo AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedFloat $ lsbActionAssignmentMode )
Bartz [Page 37]
INTERNET-DRAFT LSBPRC December, 2002
MAY ( lsbOperandSpecFloat $ lsbOperandValueLDAPURLFloat $
lsbOperandDynFloat )
AUXILIARY
)
3.3.2.4. Boolean Assignment Operations
3.3.2.4.1. Boolean Assignment
objectclass ( OID-OC.45
NAME 'lsbActionBoolEQ'
DESC 'Specifies value assignment according to the semantic
of "Equal". The value of the Named Operand is assigned or
modified by "Equal" with respect to the specified Assignment
Operand. A boolean Named Operand should never be multivalued.'
SUP lsbAction
MUST ( lsbOperandNamedBool $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecBool $ lsbOperandValueLDAPURLBool $
lsbOperandDynBool )
AUXILIARY
)
3.3.2.5. BitString Assignment Operations
3.3.2.5.1. Bitwise Shift Left Assignment
objectclass ( OID-OC.46
NAME 'lsbActionBitShiftL'
DESC 'Specifies value assignment according to the semantic of
"ShiftLeftBy". The value of the Named Operand is assigned
the value of NamedOperand ShiftLeftBy AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.5.2. Bitwise Shift Right Assignment
objectclass ( OID-OC.47
NAME 'lsbActionBitShiftR'
Bartz [Page 38]
INTERNET-DRAFT LSBPRC December, 2002
DESC 'Specifies value assignment according to the semantic of
"ShiftRightBy". The value of the Named Operand is assigned
the value of NamedOperand ShiftRightBy AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.5.3. Bitwise Shift Right Zero-fill Assignment
objectclass ( OID-OC.48
NAME 'lsbActionBitShiftRZf'
DESC 'Specifies value assignment according to the semantic
of "ShiftRightByAndZero-fill". The value of the Named
Operand is assigned the value of NamedOperand ShiftRightBy
AssignmentOperand. The displaced positions to the left of the
original bitstring are filled with zeroes, so the new string
has the same number of bits as the initial string.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecInt $ lsbOperandValueLDAPURLInt $
lsbOperandDynInt )
AUXILIARY
)
3.3.2.5.4. Bitwise AND Assignment
objectclass ( OID-OC.49
NAME 'lsbActionBitAND'
DESC 'Specifies value assignment according to the semantic of
"ANDwith". The value of the Named Operand is assigned
the value of NamedOperand ANDwith AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
3.3.2.5.5. Bitwise OR Assignment
Bartz [Page 39]
INTERNET-DRAFT LSBPRC December, 2002
objectclass ( OID-OC.50
NAME 'lsbActionBitOR'
DESC 'Specifies value assignment according to the semantic of
"ORwith". The value of the Named Operand is assigned
the value of NamedOperand ORwith AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
3.3.2.5.6. Bitwise XOR Assignment
objectclass ( OID-OC.51
NAME 'lsbActionBitXOR'
DESC 'Specifies value assignment according to the semantic of
"XORwith". The value of the Named Operand is assigned
the value of NamedOperand XORwith AssignmentOperand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr $ lsbActionAssignmentMode )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
3.3.2.5.7. Bitwise OnesComplement Assignment
objectclass ( OID-OC.52
NAME 'lsbActionBitOnesComp'
DESC 'Specifies value assignment according to the semantic of
"OnesComplement". In the absence of an Assignment Operand,
the value of the Named Operand is assigned the "OnesComplement"
of itself. When an Assignment Operand is specified, the Named
Operand is assigned the value of "OnesComplement" of the
Assignment Operand.'
SUP lsbAction
MUST ( lsbOperandNamedBitStr )
MAY ( lsbOperandSpecBitStr $ lsbOperandValueLDAPURLBitStr $
lsbOperandDynBitStr )
AUXILIARY
)
Bartz [Page 40]
INTERNET-DRAFT LSBPRC December, 2002
3.3.2.6. Delegated Assignment Operations
3.3.2.6.1. Delegation to Distributed Object
objectclass ( OID-OC.53
NAME 'lsbActionObjRef'
DESC 'This lsbAction type delegates the assignment operation
to a distributed object. Use this when [1] the assignment
operation cannot be defined using other lsbAction types
due to complexity or information domain uniqueness, or [2]
the assignment operation is computationally infeasible
or otherwise inappropriate for computation by a general
purpose PDP. The PDP is responsible for providing the
distributed object with the operands of the action. The PDP
might optionally provide the distributed object with other
information it received from the PEP, information assigned via
computation of lsbActions, and more. The distributed object is
responsible for returning a value, which the PDP interprets as
the value to be assigned to the Named Operand. The identity of
the distributed object is defined by including attribute/value
pairs defined by RFC 2713 or RFC 2714.'
SUP lsbAction
MUST ( lsbActionAssignmentMode )
MAY ( lsbOperandNamedStr $ lsbOperandNamedInt $
lsbOperandNamedFloat $ lsbOperandNamedBitStr $
lsbOperandNamedBool $ lsbOperandNamedOctStr $
lsbOperandSpecStr $ lsbOperandSpecInt $
lsbOperandSpecFloat $ lsbOperandSpecBool $
lsbOperandSpecBitStr $ lsbOperandSpecOctStr $
lsbOperandValueLDAPURLStr $ lsbOperandValueLDAPURLInt $
lsbOperandValueLDAPURLFloat $ lsbOperandValueLDAPURLBitStr $
lsbOperandValueLDAPURLBool $ lsbOperandValueLDAPURLOctStr $
lsbOperandDynStr $ lsbOperandDynInt $
lsbOperandDynFloat $ lsbOperandBitStr $
lsbOperandDynBool $ lsbOperandDynOctStr $
lsbStrCatDelim )
AUXILIARY
)
3.3.2.7. Delegated Action to Computing Resource
3.3.2.7.1. Delegation to Distributed Object
See 3.3.2.6.1. The distributed object may perform any activity which
fulfills the rule's requirement for "action".
Bartz [Page 41]
INTERNET-DRAFT LSBPRC December, 2002
3.3.3. LSBPRC Policy Alias
objectclass ( OID-OC.54
NAME 'lsbPolicyAlias'
DESC 'Use this alias subtype for aliasing any Policy
subtype. Instances shall also be members of the classes
pcimPolicy and pcimElementAuxClass. As appropriate,
instances shall also be members of other more specific Policy
classes, such as the various Policy AuxClasses and their
supertypes. commonName or cn is used as the naming attribute.'
SUP alias STRUCTURAL
MUST cn
)
4. Security Considerations
LSBPRC is not intended to represent any particular system design or
implementation. LSBPRC is directly usable in a real world system, but
only with application-specific mappings of data to instances of
LSBPRC-defined objectclasses and attributetypes.
Applications and systems which use LSBPRC must define their own
specific security considerations.
LSBPRC is not representative of any real-world system because its
object classes are designed to be independent of any specific
discipline or policy domain.
Even though application-specific security requirements are not
appropriate for LSBPRC, specific security requirements MUST be defined
for each operational real-world application of LSBPRC. Just as there
will be a wide range of operational, real-world systems using LSBPRC,
there will also be a wide range of security requirements for these
systems. Some operational, real-world systems that are deployed using
LSBPRC may have extensive security requirements that impact nearly all
object classes utilized by such a system, while other systems'
security requirements might have very little impact.
The applications discussed above will create the context for applying
operational, real-world, system-level security requirements against
the various implementations of LSBPRC.
In some real-world scenarios, the values associated with certain
properties, within certain instantiated object classes, may represent
information associated with scarce, and/or costly (and therefore
valuable) resources. It may be the case that these values must not be
Bartz [Page 42]
INTERNET-DRAFT LSBPRC December, 2002
disclosed to, or manipulated by, unauthorized parties.
Since this document forms the basis for the representation of a policy
data model in a specific format (an LDAP-accessible directory), it is
herein appropriate to reference the data model-specific tools and
mechanisms that are available for achieving the authentication and
authorization implicit in a requirement that restricts read and/or
read- write access to these values stored in a directory.
General LDAP security considerations apply, as documented in RFC3377
[3]. LDAP-specific authentication and authorization tools and
mechanisms are found in the following standards track documents, which
are appropriate for application to the management of security applied
to policy data models stored in an LDAP-accessible directory:
- RFC 2829 (Authentication Methods for LDAP) [15]
- RFC 2830 (Lightweight Directory Access Protocol (v3): Extension
for Transport Layer Security) [16]
5. Intellectual Property
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to pertain
to the implementation or use of the technology described in this
document or the extent to which any license under such rights might or
might not be available; neither does it represent that it has made any
effort to identify any such rights. Information on the IETF's
procedures with respect to rights in standards-track and standards-
related documentation can be found in BCP-11.
Copies of claims of rights made available for publication and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this specification
can be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
6. Acknowledgements
Bartz [Page 43]
INTERNET-DRAFT LSBPRC December, 2002
The "Security Considerations" section of this document is lifted with
thanks, from [2]. It is edited it only lightly for use in this
document.
7. References
[1] Moore, B., and E. Ellesson, J. Strassner, A. Westerinen "Policy
Core Information Model -- Version 1 Specification", RFC 3060,
February 2001.
[2] Strassner, J., and B. Moore, R. Moats, E. Ellesson "Policy
Core LDAP Schema", draft-ietf-policy-core-schema-16.txt, a
Work in Progress of the IETF Policy Framework Working Group,
October 2002.
[3] Hodges, J., and Morgan R., "Lightweight Directory Access
Protocol (v3): Technical Specification", RFC3377, September
2002.
[4] ITU-T Rec. X.500, "The Directory: Overview of Concepts,
Models and Service", 1993.
[5] ITU-T Rec. X.501, "The Directory: Models", 1993.
[6] Hluck, MAJ George, "Expert Systems Tutorial"
http://carlisle-www.army.mil/usacsl/divisions/std/branches/
keg/expert/es.htm
NOTE: preceding URL is line-wrapped
[7] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[8] Howes, T., and M. Smith, "The LDAP URL Format", RFC 2255,
December 1997.
[9] Kernighan, Brian W., and Dennis M. Ritchie, "The C Programming
Language, Second Edition" Prentice Hall, Inc., 1988.
ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
[10] Ken Arnold, James Gosling, David Holmes "The Java(tm)
Programming Language," Third Edition, ISBN 0-201-70433-1.
[11] Standard ECMA-262, ECMAScript Language Specification
http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM
[12] The Object Management Group, "Common Object Request
Bartz [Page 44]
INTERNET-DRAFT LSBPRC December, 2002
Broker Architecture Specification 3.01," http://www.omg.org
[13] Ryan, V., and S. Seligman, R. Lee, "Schema for Representing
Java(tm) Objects in an LDAP Directory", RFC 2713, October 1999
[14] Ryan, V., and R. Lee, S. Seligman, "Schema for Representing
CORBA Object References in an LDAP Directory", RFC 2714,
October 1999
[15] M. Wahl, H. Alvestrand, J. Hodges, R. Morgan, "Authentication
Methods for LDAP", RFC 2829, May 2000
[16] J. Hodges, R. Morgan, M. Wahl, "Lightweight Directory Access
Protocol (v3): Extension for Transport Layer Security", RFC
2830, May 2000.
8. Author's Address
Larry Bartz
Internal Revenue Service
575 N. Pennsylvania Street
Indianapolis, IN 46204
USA
Phone: +1 317 226-7060
Email: larry.bartz@irs.gov
9. Full Copyright Statement
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of developing
Internet standards in which case the procedures for copyrights defined
in the Internet Standards process must be followed, or as required to
translate it into languages other than English.
Bartz [Page 45]
INTERNET-DRAFT LSBPRC December, 2002
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS 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.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
This Internet Draft Expires June, 2003
Bartz [Page 46]