INTERNET-DRAFT draft-ietf-ldup-infomod-00.txt Ed Reed Novell, Inc. June 1, 1999 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 December 1, 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 December 1, 1999 INTERNET-DRAFT 1 June 1999 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. Reed [Page 2] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model Table of Contents 1. Status of this Memo 1 2. Abstract 1 3. Introduction 3 3.1 Scope 3 3.2 Terms and Definitions 4 4. Data design: 4 5. Directory Knowledge 4 6. Schema 5 6.1 Syntax Definitions 5 6.1.1 lDAPChangeSequenceNumber 5 6.1.2 lDAPAccessPointSyntax 6 6.2 Attribute Definitions 7 6.2.1 lDAPAccessPoint 7 6.2.2 attributeExclusionFilter 7 6.2.3 attributeInclusionFilter 8 6.2.4 lDAPSearchFilter 8 6.2.5 replicationStatus 9 6.2.6 replicaType 10 6.2.7 updateVector 11 6.3 Class Definitions 11 6.3.1 lDAPsubEntry 11 6.3.2 nameContext 12 6.3.3 replicaSubentry 12 6.3.4 replicaAgreementSubentry 13 6.3.5 scheduleSubentry Class 14 6.4 Matching Rule Specifications 15 6.4.1 LDAPChangeSequenceNumberOrderingMatch 15 7. Security Considerations 15 8. References 16 9. Copyright Notice 16 10.Acknowledgements 16 11.Author's Address 17 3. Introduction 3.1 Scope This document describes schema of subentries representing replicas, replication agreements and their dependencies. 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. Reed [Page 3] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 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. 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, Reed [Page 4] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 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 Syntax Definitions For the purposes of defining the encoding rules for attribute syntaxes, the BNF definitions in section 4.1 of [RFC2252] will be used. They are based on the BNF styles of [RFC822]. 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 are no whitespace separators, although there may be embedded whitespace in the value of replicaID. Note there is some discussion ongoing as to whether the replicaID should be considered before the seqno, or after. This definition will be changed to support the consensus when reached. LDAPChangeSequenceNumber = GeneralizedZTime "$" replicaID "$" seqno GeneralizedZTime = yyyy mm dd hh mi ss "Z" yyyy = dddd mm = dd dd = dd hh = dd mi = dd ss = dd replicaID = dstring seqno = 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 Reed [Page 5] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model referenced by this syntax MUST be normalized to GMT - no local times, nor time zone offsets are permitted. The ReplicaID is the distinguished commonName (CN) of the Replica of this Naming Context where the event associated with this LDAPChangeSequenceNumber occurred. The seqno is a sequence number which is used to order two events with the same Generalized Time and ReplicaID. See the LDAPChangeSequenceNumberMatch and LDAPChangeSequenceNumberOrderingMatch matching rules, defined elsewhere in this document. 6.1.2 lDAPAccessPointSyntax ( 1.3.6.1.4.1.1466.115.121.1.TBD DESC 'LDAP Access Point' ) Values in this syntax are encoded according to the following BNF. LDAPAccessPointSyntax = DN "$" OTHER "$" labeledURIList DN = dstring OTHER = dstring labeledURIList = qdstrings dstring = 1*utf8 utf8 = DN is the distinguished name of the LDAP Service Agent to which this LDAP Access Point Syntax refers. It is single valued. OTHER - Any additional information to be stored with the reference, such as connection-specific credentials, etc. This is a single valued string. Note: this means that the OTHER field applies to ALL of the labeledURIs in the labeledURIList, so if OTHER is used to store credential information, for instance, that credential information needs to be able to be used with ANY of the labeledURI addresses listed. labeledURIList is used as defined in [RFC2079], as a HINT (i.e., cached address) as to where an LDAP replication client may connect to the LDAP service named in DN. There may be one LabeledURI, or more than one inside a pair of matched parentheses. Each LabeledURI is single-quoted so they can be separated if there are more than one. The rational for using LabeledURI format is that it is already defined in [RFC2079], it is generally extensible (via the normal scheme extensions mechanisms and registration systems being defined elsewhere Reed [Page 6] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model in the IETF), which means it should be usable for storing any kind of address (such as IPX, AppleTalk, OSI, Ipv6, or whatever). It is flexible enough to store information about the protocols to be used (such as ldap://), network addresses using either dotted quads or DNS names (such as ldap://www.nldap.com, or ldap://192.108.102.213), and port numbers (such as ldap://www.nldap.com:389), according to the scheme definition used, as needed. Multiple labeledURI values are permitted, so that multi-homed and clustered LDAP DSAs can be conveniently represented, and so that each of the various protocols by which the replica can be reached may be cached. As mentioned, the labeledURI in this syntax is a HINT. The authoritative address information is expected to be stored on the object named in the DN of the LDAP Access Point. However, because a copy of the object named may not be held on an LDAP DSA which references it (i.e., it may be named in a Naming Context of the DIT which is not replicated locally), it is convenient to cache the addresses where it may be found, here. 6.2 Attribute Definitions 6.2.1 lDAPAccessPoint ( {LDUPATTR 2} NAME 'lDAPAccessPoint' SYNTAX LDAPAccessPointSyntax USAGE dSAOperation ) The lDAPAccessPoint names a DSA in its DN component, provides an optional OTHER string to store information specific to that DSA, and a list of one or more network addresses, in the form of a labeledURI, which may be used to bind to that DSA. A common use of the OTHER string is intended to be to hold credentials needed to authenticate to the other DSA, but I have real heart burn with that. If the lDAPAccessPoint attributes on replica agreement subentries are replicated to other DSAs, then the secrecy of such authentication credentials is lost. The OTHER string may be useful, but the author is not sure how so. 6.2.2 attributeExclusionFilter ( {LDUPATTR 3} NAME 'attributeExclusionFilter' SYNTAX OCTET STRING Reed [Page 7] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) 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.3 attributeInclusionFilter ( {LDUPATTR 4} 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.4 lDAPSearchFilter ( {LDUPATTR 5} NAME 'lDAPSearchFilter' SYNTAX caseExactString SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation ) Reed [Page 8] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model The lDAPSearchFilter is intended to contain a Filter as described in section 4.5.1. Search Request of [RFC2251]. A non-empty lDAPSearchFilter attribute on a replica subEntry describes the contents of that replica. Replicas MUST NOT accept changes for objects they're not permitted to hold, per the lDAPSearchFilter attribute on their replica subEntry. A non-empty lDAPSearchFilter attribute on a replicationAgreement subEntry describes which other objects are to be excluded from the updates to be sent from the supplier replica to the consumer replica. Note that because the replica asserts and controls what entries it holds, a replication agreement MAY NOT send changes for objects the replica does not hold, but if it does, the consuming replica MUST NOT accept them. 6.2.5 replicationStatus ( {LDUPATTR 9} 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) [1998/08/05 16:22:03Z] Success 2) [1998/08/05 16:23:22Z] Failure - Server too busy, try again 3) [1998/08/05 17:02:15Z] Failure - Unable to connect to DSA 4) [1998/08/06 00:23:01Z] Failure - Authentication failed 5) [1998/08/06 00:32:01Z] Failure - lost connection, reset by peer It is suggested, but not required, that the time of the attempt success or failure, the result of the attempt, and any additional information about a failure be included in the message. It is suggested, but not required, that the messages be stored with language tags (English, French, German, Japanese, Chinese, per [LANG Reed [Page 9] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 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, but do not belong in the directory content itself. 6.2.6 replicaType ( {LDUPATTR 10} 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 ) 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. Reed [Page 10] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 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. 6.2.7 updateVector ( {LDUPATTR 12} 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. This uniqueness constraint may mean that the syntax should be a single list, or array, of values, rather than the set of valuesàdiscussion on the list to follow. Discussion is invited on the list. 6.3 Class Definitions 6.3.1 lDAPsubEntry ( 1.3.6.1.4.1.1466.115.121.1.?? NAME 'LDAPsubEntry' DESC 'Limited X.501 Subentry class, named by cn' SUP top STRUCTURAL MUST ( cn ) ) By agreement, LDUP will use subentries with commonName attributes instead of subtreeSpecification attributes. Reed [Page 11] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model Note: the use of the [X501] subEntry is a matter of convenience, and does not constitute the "nose of the camel". That is, X.500 makes many uses of subEntries, and we don't claim to be doing them all. However, it's a very convenient concept, and its usefulness has been demonstrated (by all those very things that X.500 uses them for!). We choose to use them, because they're useful, flexible, extensible, and easy to specify. They're even easy to understand, once the reader figures out that they're just another object class (with possibly special treatment - they may be treated as "operational objects" in much the same way that "operational attributes" are not regularly provided in search results and read operations when only user attributes are requested). NOTE: As other uses for the lDAPsubEntry object class are found (in the Access Control extensions design work, and in the non-global schema representation work, it is probably desireable to move its definition to a separate, stand-alone document) 6.3.2 nameContext ( TBD 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.3 replicaSubentry ( TBD NAME 'replicaSubentry' SUP lDAPsubEntry STRUCTURAL MUST (cn, replicaID, lDAPAccessPoint, replicaType) Reed [Page 12] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model MAY (attributeExclusionFilter, attributeInclusionFilter, description, lDAPSearchFilter, updateVector) ) The replicaID must be unique for all entries of type replicaSubentry for a particular naming context. Entries of type replicaSubentry MUST be named by their cn attribute. The attributes attributeExclusionFilter, attributeInclusionFilter, 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 of replica agreements for this replica. The lDAPSearchFilter attribute identifies entries whose values may or may not be sent. The attributeExclusionFilter names attributes which are not to be sent. The attributeInclusionFilter names attributes which may be sent. 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.4 replicaAgreementSubentry ( TBD NAME 'replicaAgreementSubentry' SUP lDAPsubEntry STRUCTURAL MUST ( cn ) MAY ( attributeExclusionFilter, description, lDAPSearchFilter, replicaDN, replicationMechanismOID, replicationStatus, schedule ) ) Entries of type replicaSubentry MUST 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 lDAPSearchFilter attribute identifies entries whose values may or may not be sent. The attributeExclusionFilter names attributes which are not to 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: Reed [Page 13] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 1) the lDAPSearchFilter from the replica subentry defines a set of entries; 2) the lDAPSearchFilter from the replicaAgreementSubentry defines a set of entries; 3) the intersection of the two lDAPSearchFilter sets constitutes the set of entries about which changes will be sent; 4) the attributeInclusionFilter from the replica subentry defines a set of attributes which may be sent, less exclusions; 5) the union of attributes excluded by the attributeExclusionFilter from the replicasubentry and the attributeExclusionFilter from the replicaAgreementSubentry defines a set of attributes which may not be sent; 6) the subtraction of attributes which may not be sent by (5) from the attributes which may be sent by (4) and which are present on entries which may be sent by (3) 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 shall be attempted when there are changes to be sent. 6.3.5 scheduleSubentry Class Need to pull this from Oracle's proposalàalong with the attributes it specifies, or define it separately in another draft. Reed [Page 14] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 6.4 Matching Rule Specifications 6.4.1 LDAPChangeSequenceNumberOrderingMatch As mentioned above, there is ongoing discussion as to the ordering to be used. This text will be changed to reflect the consensus when it is reached. Two lDAPChangeSequenceNumbers are compared according to the following: 1) the GeneralizedZTime components are compared (they may be compared using the same algorithm as generalizedTimeOrderingMatch û 1.3.6.1.4.1.1466.115.121.1.24 [RFC2252]), and if different, the one with the later (highest) date and time is considered ôgreater thanö the other; if the same, the comparison continuesà 2) the replicaID components are compared, and if different, the one with the lower value (implying that the replica was created prior to the other replica û such that the ôoldestö replica is more ôseniorö to ônewerö ones; in most cases, the ôoldestö replica will likely also be the Primary replica, too) is considered ômore preferredö than the other; if the same, the comparison continuesà 3) the seqno components are compared, and if different, the one with the higher numeric value is considered ôgreater thanö the other; if the same, the two entries are the same, and so they match for equality. 7. 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 Reed [Page 15] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model replication MUST ALWAYS be authenticated using an authentication mechanism appropriate for the nature of information to be exchanged. 8. 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 [X680] - ITU-T Recommendation X.680 (1994) | ISO/IEC 8824-1:1995, Information technology û Abstract Syntax Notation One (ASN.1): Specification of Basic Notation 9. 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 Reed [Page 16] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model 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." 10. 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 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. 11. Author's Address Edwards E. Reed Novell, Inc. 122 E 1700 S Provo, UT 84606 Reed [Page 17] Expires December 1, 1999 INTERNET-DRAFT 1 June 1999 LDUP Replication Information Model USA E-mail: Ed_Reed@Novell.com LDUP Mailing List: ietf-ldup@idc.org Reed [Page 18] Expires December 1, 1999