INTERNET-DRAFT draft-ietf-ldup-infomod-01.txt Ed Reed Reed-Matthews, Inc. March 9, 2000 LDUP Replication Information Model 1. Status of this Memo This document is an Internet-Draft and is in full conformance with 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/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft expires on May 11, 1999. 2. Abstract [LDUP Model] describes the architectural approach to replication of LDAP directory contents. This document describes the information model and schema elements which support LDAP Replication Services which conform to [LDUP Model]. Directory schema is extended to provide object classes, subentries, and attributes to describe areas of the namespace which are under common administrative authority, units of replication (ie, subtrees, or partitions of the namespace, which are replicated), servers which hold replicas of various types for the various partitions of the namespace, which namespaces are held on given servers, and the progress of various namespace management and replication operations. Among other things, this knowledge of where directory content is Reed [Page 1] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model located will provide the basis for dynamic generation of LDAP referrals for clients who can follow them. The controlling framework by which the relationships, types, and health of replicas of the directory content will be defined so that, as much as possible, directory content is itself used to monitor and control the environment. Security information, including access control policy identifiers and information will be treated as directory content by the replication protocols when specified by the LDAPEXT group. The information model will describe required and optional house- keeping duties for compliant systems to implement, such as garbage collection of deleted objects, reconciliation of moved and renamed objects, update sequencing and transaction bracketing of changes, etc. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119]. The sections below reiterate these definitions and include some additional ones. 2.1 Changes in this version LDAP Subentry definition is moved to its own document [SUBENTRY]. LDAP Schedule Subentry definition is defined. LDAP Access Point removed in favor of just using the DN of the server holding the replica (so a new syntax isn't required). LDAP Change Sequence Number syntax eleminated in favor of just calling it a CaseIgnoreString, so new comparison rules aren't required. Deleted ldapSearchFilter definition from here. Sparse replicas is deferred. Might sparse be supported for single-master configurations (read-only, of course). Fractional are okay in multi-master configurations, but again, only on read-only replicas. Changed the naming convention upper-lower case usage to look less weird. Note: Reed [Page 2] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model Consistency discussion Schema document must clearly indicate that clients can and should inspect the replica subentries to understand the single-master/multi- master nature of the naming context to which they're talking. The paradigm change, to distributed data, needs to be exhaustively discussed in the profile documents. How old applications which assume single-master behave or misbehave in a multi-master environment is critical to make clear. Draw examples from SMP pre-emptive programming practices, from DNS vs host file models, etc. Decisions from wash ietf_ 1) define two simple schema classes _ event driven histeresis buckets, and cron-like thing. Then, the replica has a single value pointer to a schedule. More schedule things can be defined in the future. 2) Create attribute ReplicaURI to provide service access point for that replica. No DSA entry requirement. 3) Replica id table discussion should move to protocol spec. To do: 1) define the cron schedule subentry class 2) define the rest of the attributes used in the classes 3) verify LDUP OID number with Novell (!) one more time 4) verify all OIDs assigned 5) verify all OIDs documented at the end of the document 6) scrub editorial comments 7) cross reference with arch document on schema element names Reed [Page 3] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model Table of Contents 1. Status of this Memo .............................................1 2. Abstract 1 2.1 Changes in this version........................................2 3. Introduction ....................................................4 3.1 Scope 4 3.2 Terms and Definitions..........................................5 4. Data design: ....................................................5 5. Directory Knowledge .............................................5 6. Schema 6 6.1 Data Structure Definitions.....................................6 6.1.1 ldapChangeSequenceNumber..................................6 6.2 Attribute Definitions..........................................7 6.2.1 attributeExclusionFilter..................................7 6.2.2 attributeInclusionFilter..................................8 6.2.3 replicaURI................................................8 6.2.4 replicationStatus.........................................9 6.2.5 replicaType...............................................9 6.2.6 SecsToWait Attributes....................................11 6.2.6.1 secsToWaitCat1 ........................................11 6.2.6.2 secsToWaitCat2 ........................................11 6.2.6.3 secsToWaitCat3 ........................................11 6.2.6.4 secsToWaitCat4 ........................................11 6.2.6.5 secsToWaitCat5 ........................................11 6.2.7 updateVector.............................................12 6.3 Class Definitions.............................................12 6.3.1 nameContext..............................................12 6.3.2 replicaSubentry..........................................12 6.3.3 replicaAgreementSubentry.................................13 6.3.4 eventScheduledSubentry Class.............................14 6.3.5 timeScheduledSubentry Class..............................15 7. Object Identifier Assignments ..................................15 8. Security Considerations ........................................16 9. References .....................................................16 10. Copyright Notice ...............................................17 11. Acknowledgements ...............................................17 12. Author's Address ...............................................18 3. Introduction 3.1 Scope This document describes schema of subentries representing replicas, replication agreements and their dependencies. Reed [Page 4] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model Management and status schema elements may be defined if there is sufficient consensus. Semantic interpretation of schema elements, including any special handling expectations are to be provided here. 3.2 Terms and Definitions Definitions are provided in [LDUP Requirements], and may be reproduced here for the convenience of the reader. 4. Data design: As described in [LDUP Model], knowledge of replicated portions of the directory information tree (DIT) is stored in the directory itself. An auxiliary class is defined to designate containers, or nodes, in the DIT which are the root-most, or base, of naming contexts [RFC2251]. Directory subentries [X501] are used to hold information about replicas and replica agreements. 5. Directory Knowledge Information about what replicas exist, what they contain, their types, where they are stored, and how they may be contacted inevitably provides the basis for distributed directory knowledge. As namespaces from stand-alone servers are inter-connected with one another, this replica information can and will be used by name resolution operations to locate servers holding copies of specific objects, and to optimize distributed searches which span multiple Naming Contexts. However, the focus of this document is NOT to fully enable such distributed directory uses. Instead, we are focused on how portions of the namespace (Directory Information Tree - DIT) may be replicated, and how those replicas are configured and related to one another via Replication Agreements. As such, the following high level description (from [LDUP Model])of the information model envisioned is provided as reference for the reader before presenting the detailed specifications. Generally, the DSE Naming Context attribute of an LDAPv3 server names the Naming Contexts for which there are replicas on that server. Reed [Page 5] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model The Naming Context Auxiliary Class (nameContext) is added to container objects which may have separately defined replication policy. Immediately subordinate to a Naming Context object are the Replica Subentry containers which identify where the identified replica resides (ie, its LDAP Access Point), its type (Primary, Updateable, ReadOnly), if it is sparse, the LDAP search filter which defines what object classes it holds, and if it is fractional, the attributes it does or does not hold. Immediately subordinate in the namespace to a Replica Subentry are Replication Agreement leaf entries which each identify another Replica, the scheduling policy for replication operations (including times when replication is to be performed, when it is not to be performed, or the policies governing event-driven replication initiation). 6. Schema 6.1 Data Structure Definitions For the purposes of defining the encoding rules for attribute structures, the BNF definitions in section 4.1 of [RFC2252] will be used. They are based on the BNF styles of [RFC822]. To avoid requiring new syntax support to be added unnecessarily to existing LDAPv3 directory service implementations (and the accompanying matching rules, etc. they would entail), a string encoding is defined for ldapChangeSequenceNumber which can use CaseIgnoreString matching rules for ordering and equality. 6.1.1 ldapChangeSequenceNumber ( 1.3.6.1.4.1.1466.115.121.1.TBD DESC 'LDAP Change Sequence Number' ) Values in this syntax are encoded according to the following BNF. Note there MUST NOT be any whitespace separators, unless they are in replicaID, which must be encoded according to the instructions below. This encoding is specified so that the CaseIgnoreString equality and ordering rules will work correctly when replicaNumber is used. When replicaID is used, CaseIgnoreString comparison rules will not work unless each replicaID is exactly the same length with no padded Reed [Page 6] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model white spaces (because CaseIgnoreString suppresses duplicate adjacent white space when it compares two strings). LDAPChangeSequenceNumber = GeneralizedZTime "#" S1 "#" replicaID "#" S2 GeneralizedZTime = yyyy | mm | dd | hh | mi | ss | "Z" yyyy = dddd mm = dd dd = dd hh = dd mi = dd ss = dd replicaID = dstring S1, S2 = numericstring The GeneralizedTime is used as described (cf. [X680] section 39.3 case b) without separators or whitespace, and representing a coordinated universal time (i.e., Greenwich Mean Time, or GMT). All times referenced by this syntax MUST be normalized to GMT - no local times, nor time zone offsets are permitted. To simplify comparisons of two CSNs, the "Z" MUST be the UTF-8 capital-Z character. The ReplicaID represents the specific Replica of this Naming Context where the event associated with this LDAPChangeSequenceNumber occurred. Note that in actual transfer, the ReplicaID MAY be represented by a number (see the specification of the replicaLookupTable, above). S1 and S2 are sequence numbers which are used to order two events with the same Generalized Time and ReplicaID. In order to use string matching rules for equality and ordering with values with this encoding, the length of each field must be consistent. Thus, all instances of S1 MUST be represented with the same number of digits, using leading zeros as necessary. The same with S2 and replicaID. 6.2 Attribute Definitions 6.2.1 attributeExclusionFilter ( 2.16.840.1.113719.142.4.1 NAME 'attributeExclusionFilter' SYNTAX OCTET STRING SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) Reed [Page 7] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model The attributeExclusionFilter is intended to contain a list of attributes in the form of an AttributeDescriptionList as described in section 4.5.1. Search Request of [RFC2251] with the following interpretation: an empty attributeExclusionFilter means that no attributes are excluded; the special values "*" and "1.1" mean that ALL attributes are excluded. A non-empty attributeExclusionFilter attribute on a replica subEntry describes the attributes NOT PRESENT on entries held by that replica. Replicas MUST NOT accept changes for attributes they're not permitted to hold, per the attributeInclusionFilter and attributeExclusionFilter attributes on their replica subEntry. A non-empty attributeExclusionFilter attribute on a replicationAgreement subEntry describes which additional attributes are to be excluded from the updates to be sent from the supplier replica to the consumer replica. 6.2.2 attributeInclusionFilter ( {2.16.840.1.113719.142.4.2 NAME 'attributeInclusionFilter' SYNTAX OCTET STRING SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) The attributeInclusionFilter is intended to contain a list of attributes in the form of an AttributeDescriptionList as described in section 4.5.1. Search Request of [RFC2251] with the following interpretation: an empty attributeInclusionFilter means that all attributes are included; the special value "*" means that ALL attributes are included; the special value "1.1" is meaningless and is ignored in this usage. A non-empty attributeInclusionFilter attribute on a replica subEntry describes the attributes that may be PRESENT on entries held by that replica. Replicas MUST NOT accept changes for attributes they're not permitted to hold, per the attributeIncludionFilter and attributeExclusionFilter attributes on their replica subEntry. 6.2.3 replicaURI (2.16.840.1.113719.142.4.x NAME `replicaURI' DESC `how to connect to this replica' SYNTAX ldapURI USAGE dSAOperation ) Reed [Page 8] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model 6.2.4 replicationStatus (2.16.840.1.113719.142.4.3 NAME 'replicationStatus' DESC 'human readable status of last replication attempt' SYNTAX DirectoryString SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) The replicationStatus attribute MAY be used to hold a human readable message describing the most recent replication session attempt for a replicationAgreement. For example, such a messages might include 1) 19980805162203Z # Success # 2) 19980805162322Z # Failure # Server too busy, try again 3) 19980805170215Z # Failure # Unable to connect to DSA 4) 19980806002301Z # Failure # Authentication failed 5) 19980806003201Z # Failure # lost connection, reset by peer It is suggested, but not required, that the time of a replication attempt (completion, if successful or failure, if not), the result of the attempt, and any additional information about a failure be included in the string message. It is suggested, but not required, that the messages be stored with language tags (English, French, German, Japanese, Chinese, per [LANG TAG]) particularly if multiple translations of the error messages are available to the DSA implementers. Note that this is a single-valued attribute. Sequences of status entries SHOULD be written to log files or other persistent storage, or in multi-valued replication history attributes, but are not specified here. 6.2.5 replicaType (2.16.840.1.113719.142.4.4 NAME 'replicaType' DESC 'Enum: 0-reserved, 1-Primary, 2-Updateable, 3-ReadOnly, all others reserved' EQUALITY integerMatch SYNTAX INTEGER SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) Reed [Page 9] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model ReplicaType is a simple enumeration, used to identify what kind of replica is being described in a Replica object entry. A ReadOnly replica only accepts LDAP Search operations (to Read entries, list containers, and search for entries). Because no updates ever originate from ReadOnly replicas, they never have changes to send to another replica. However, a ReadOnly replica may be designated a supplier DSA in a replica agreement, if it is simply passing along information it receives from other Updateable replicas about entries and their changes. ReadOnly replicas may be incomplete replicas. An Updateable replica may accept both LDAP Search operations (to read, list, or search entries), as well as modification operations (to add, modify, or delete entries). The consequences of having incomplete updateable replicas are not fully understood. LDAP DSAs MAY require updateable replicas to be complete replicas. A Primary replica is an Updateable replica, but it is "more special" than other Updateable replicas. When LDAP application want to direct their operations to a single replica, so that the application can be sure that all application LDAP modification (add, delete, modify) operations will be immediately visible to application readers, the Primary replica is a good choice. Such a use would be consistent with High Confidence DAP option [X518]. One such application might be a management application which creates new naming contexts or joins two naming contexts into a single naming context. Another application might be one which creates new replicas, or replication agreements. There SHOULD be only one Primary replica defined for a naming context at any time. If applications, expecting there to be a Primary replica discover, by search or inspection of ReplicaType attributes of the defined Replicas of a naming context, find more than one _ they should realize that something is wrong. There MAY be NO primary replica defined for a naming context. Primary replicas MAY NOT be incomplete replicas. The way in which replicas change their type, as from ReadOnly to Updateable, or Updateable to Primary is outside the scope of this document. Section 5.1 "Replica Type" of [LDUP MODEL] details the permissible combinations of replica types and sparse/fractional replicas. Reed [Page 10] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model 6.2.6 SecsToWait Attributes The secsToWait attributes document the number of seconds a replica is to wait after the occurrence of a "category n" change event before initiating a new replication session for replicationAgreements governed by an eventScheduledSubentry. The definition of a "category n" change event is implementation dependent, and may be defined differently by different directory servers. The absence of a value for any of these attributes MUST be interpreted as meaning "do not initiate a replication session for change events of this category". 6.2.6.1 secsToWaitCat1 ( 2.16.840.1.113719.142.4.5.1 NAME 'secsToWaitCat1' SYNTAX INTEGER USAGE dSAOperation ) 6.2.6.2 secsToWaitCat2 ( 2.16.840.1.113719.142.4.5.2 NAME 'secsToWaitCat2' SYNTAX INTEGER USAGE dSAOperation ) 6.2.6.3 secsToWaitCat3 ( 2.16.840.1.113719.142.4.5.3 NAME 'secsToWaitCat3' SYNTAX INTEGER USAGE dSAOperation ) 6.2.6.4 secsToWaitCat4 ( 2.16.840.1.113719.142.4.5.4 NAME 'secsToWaitCat4' SYNTAX INTEGER USAGE dSAOperation ) 6.2.6.5 secsToWaitCat5 ( 2.16.840.1.113719.142.4.5.5 NAME 'secsToWaitCat5' SYNTAX INTEGER USAGE dSAOperation ) Reed [Page 11] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model 6.2.7 updateVector ( 2.16.840.1.113719.142.4.6 NAME 'updateVector' SYNTAX ldapChangeSequenceNumberSyntax NO-USER-MODIFICATION USAGE dSAOperation ) The attribute updateVector is a multi-valued attribute which contains information for a replica describing the latest changes received by the replica from other replicas. There may be only one ldapChangeSequenceNumber entry from each replica in the updateVector. That is to say, there is a unique value constraint on the ReplicaID component of entries in the list. 6.3 Class Definitions 6.3.1 nameContext ( 2.16.840.1.113719.142.6.2.1 NAME 'nameContext' SUP top AUXILIARY ) The nameContext auxiliary class, when present on an object, indicates the beginning, or root, of a naming context. The naming context is said to be rooted at the entry with the nameContext auxiliary class in its list of object classes. The root-most entry of a naming context is the entry with the nameContext auxiliary class in its list of object classes. Characteristics of the replication topology of a naming context are defined in the replicaSubentry sub-entries associated with the naming context. The attribute accessControlPolicyOID has been removed from here, and should be published as an ldapSubEntry subordinate to the nameContext, instead. The attribute nameContextCreationTimestamp used here in previous drafts has been eliminated as redundant. The ldapChangeSequenceNumber associated with the nameContext value in the list of objectClasses attribute serves the same purpose. 6.3.2 replicaSubentry ( 2.16.840.1.113719.142.6.3.1 NAME 'replicaSubentry' SUP ldapSubEntry STRUCTURAL Reed [Page 12] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model MUST (cn, replicaURI, replicaType) MAY (attributeExclusionFilter, attributeInclusionFilter, description, updateVector) ) Entries of type replicaSubentry MAY be named by their cn attribute. The attributes attributeExclusionFilter and attributeInclusionFilter, if present, govern which entries and attributes from the local naming context are to be sent (or not sent) to the replica named in replicaDN of replica agreements for this replica. The attributeExclusionFilter names attributes which SHOULD NOT be sent. The attributeInclusionFilter names attributes which SHOULD be sent. The attribute replicaURI contains information in ldapURI format that can be used to contact (ie, open a connection to) this replica. The attribute description contains a human-readable description of the sub-entry. The attribute updateVector contains a set of ldapChangeSequenceNumbers, one for each of the other replicas for this naming context, which records, from this replicas perspective, the last change event received from the other indicated replica. 6.3.3 replicaAgreementSubentry ( 2.16.840.1.113719.142.6.4.1 NAME 'replicaAgreementSubentry' SUP ldapSubEntry STRUCTURAL MUST ( cn ) MAY ( attributeExclusionFilter, description, replicaDN, replicationMechanismOID, replicationStatus, scheduleDN ) ) Entries of type replicaAgreementSubentry MAY be named by their cn attribute. The attributes attributeExclusionFilter, and ldapSearchFilter, if present, govern which entries and attributes from the local naming context are to be sent (or not sent) to the replica named in replicaDN. The attributeExclusionFilter names attributes SHOULD NOT be sent. Note there is no attributeInclusionFilter, because the list of attributes that may be sent may not be extended beyond those documented in the attributeInclusionFilter on the replicaSubentry. Processing of allowable changes to be sent is as follows: 1) the attributeInclusionFilter from the replica subentry defines a set of attributes which SHOULD be sent, less exclusions; Reed [Page 13] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model 2) the union of attributes excluded by the attributeExclusionFilter from the replicasubentry and the attributeExclusionFilter from the replicaAgreementSubentry defines a set of attributes which SHOULD NOT be sent; 3) the subtraction of attributes which SHOULD NOT be sent by (2) from the attributes which SHOULD be sent by (1) constitute the set of attributes for which changes MAY be sent. The attribute description contains a human-readable description of the sub-entry. The attribute replicaDN of syntax DN names another sub-entry of type replicaSubentry to whom changes are to be sent. If there is no value for the replicaDN attribute on a replicaAgreementSubentry, the replicaAgreementSubentry is ignored. Absence of a value may occur briefly when replicas and replica agreements are first being created, or when the replica to which a replica agreement applies is being deleted. The attribute replicationStatus MAY be used to record the most recent result of an attempt to send changes to the replica named in replicaDN, whether success, or if failure, the nature of the problem encountered. The attribute schedule, if present, names one or more entries of type scheduleSubentry which govern the schedule for replication attempts. If not present, replication MUST be attempted when there are changes to be sent. 6.3.4 eventScheduledSubentry Class ( 2.16.840.1.113719.142.6.1.1 NAME 'eventScheduledSubentry' SUP ldapSubEntry STRUCTURAL MUST ( cn ) MAY ( description, secsToWaitCat1, secsToWaitCat2, secsToWaitCat3, secsToWaitCat4, secsToWaitCat5 ) ) Note that replication agreements using eventScheduledSubentry policy are, by definition, supplier-initiated. The description attribute may be used by the administrator to document or comment on this subentry. The secsToWaitCat1 attribute documents the number of seconds a replica is to wait after the occurrence of a "category 1" change event before initiating a new replication session for replicationAgreements Reed [Page 14] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model governed by this eventScheduledSubentry. The definition of a "category 1" change event is implementation dependent, and may be defined differently by different directory servers. The absence of a value for this attribute MUST be interpreted as meaning "do not initiate a replication session for change events of this category". The secsToWaitCat2 _ secsToWaitCat5 attributes are similarly defined for their respective categoriess of change events. 6.3.5 timeScheduledSubentry Class ( 2.16.840.1.113719.142.6.5.1 NAME 'timeScheduledSubentry' SUP ldapSubEntry STRUCTURAL MUST ( cn ) MAY ( description ) ) 7. Object Identifier Assignments The LDUP OID prefix is ID ::= OBJECT IDENTIFIER ldup ID ::= { joint-iso-ccitt(2) country(16) us(840) organization(1) novell(113719) ldup(142) } The OID assignments defined in this document are: Attributes: attributeExclusionFilter ID ::= 2.16.840.1.113719.142.4.1 attributeInclusionFilter ID ::= 2.16.840.1.113719.142.4.2 replicationStatus ID ::= 2.16.840.1.113719.142.4.3 replicaType ID ::= 2.16.840.1.113719.142.4.4 secsToWaitClass1 ID ::= 2.16.840.1.113719.142.4.5.1 secsToWaitClass2 ID ::= 2.16.840.1.113719.142.4.5.2 secsToWaitClass3 ID ::= 2.16.840.1.113719.142.4.5.3 secsToWaitClass4 ID ::= 2.16.840.1.113719.142.4.5.4 secsToWaitClass5 ID ::= 2.16.840.1.113719.142.4.5.5 updateVector ID ::= 2.16.840.1.113719.142.4.6 Object Classes: eventScheduledSubentry ID ::= 2.16.840.1.113719.142.6.1.1 nameContext ID ::= 2.16.840.1.113719.142.6.2.1 replicaSubentry ID ::= 2.16.840.1.113719.142.6.3.1 replicaAgreementSubentry ID ::= 2.16.840.1.113719.142.6.4.1 timeScheduledSubentry ID ::= 2.16.840.1.113719.142.6.5.1 Reed [Page 15] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model Note: Object Class OIDs have version numbers, Attribute OIDs don't. 8. Security Considerations Many of the attributes and object classes described in this document should be considered _security sensitive_, and protected from unintended modification by LDAP servers. Generally, creating Naming Contexts, Replicas and Replica Agreement entries should only be allowed by directory administrators who are authorized to do so. The values of attributes defined here are intended to control the behavior of the directory service agents, themselves. Unintended modification of their values may result in incomplete replication of data (if ldapSearchFilter or attributeExclusionFilter are changed), inappropriate disclosure of information (if attributeInclusionFilter is changed), or updates may be lost (if updateVector is changed). To avoid depending to much on the ldapAccessPoint values for other replicas, connections between LDAP servers for the purpose of replication MUST ALWAYS be authenticated using an authentication mechanism appropriate for the nature of information to be exchanged. 9. References [LANG TAG] _ M. Wahl, T. Howes, _Use of Language Codes in LDAP_, Internet draft, draft-ietf-ldapext-lang-01.txt [LDUP Model] - J. Merrells, E. Reed, U. Srinivisan, _An Abstract Model of LDAP Replication_, Internet draft, draft-merrells-ldup-model-01.txt [LDUP Requirements] - R. Weiser, E. Stokes _LDAP Replication Requirements_, Internet draft, draft-weiser-replica-req-02.txt, April 1998 [RFC2251] _ M. Wahl, T. Howes, S. Kille, _Lightweight Directory Access Protocol (v3)_, December 1997, RFC 2251 [RFC2252] _ M. Wahl, A. Coulbeck, T. Howes, S. Kille, _Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions_, December 1997, RFC 2252 [X525] - ITU-T Recommendation X.525 (1997) | ISO/IEC 9594-9:1997, Information Technology _ Open Systems Interconnection _ The Directory: Replication Reed [Page 16] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model [X680] - ITU-T Recommendation X.680 (1994) | ISO/IEC 8824-1:1995, Information technology _ Abstract Syntax Notation One (ASN.1): Specification of Basic Notation 10. Copyright Notice Copyright (C) The Internet Society (1999). 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 implmentation 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. 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." 11. Acknowledgements The use of subEntry object class to store Replica and Replication Agreement information is due primarily to the lucid explanation by Mark Wahl, Innosoft, of how they could be used and extended. 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 Reed [Page 17] Expires September 9, 2000 INTERNET-DRAFT 9 March 2000 LDUP Replication Information Model 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 implementors 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. 12. Author's Address Edwards E. Reed Reed-Matthews, Inc. 1064 East 140 North Lindon, UT 84042 USA E-mail: eer@oncalldba.com LDUP Mailing List: ietf-ldup@idc.org Reed [Page 18] Expires September 9, 2000