<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4510 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4510.xml">
<!ENTITY RFC4519 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4519.xml">
<!ENTITY RFC4524 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4524.xml">
<!ENTITY I-D.howard-namedobject SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.howard-namedobject.xml">
<!ENTITY I-D.behera-ldap-password-policy SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.behera-ldap-password-policy.xml">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> <!-- used by XSLT processors -->
<!-- OPTIONS, known as processing instructions (PIs) go here. -->
<!-- For a complete list and description of PIs,
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable PIs that most I-Ds might want to use. -->
<?rfc strict="yes" ?> <!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC): -->
<?rfc toc="yes"?> <!-- generate a ToC -->
<?rfc tocdepth="2"?> <!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references: -->
<?rfc symrefs="yes"?> <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?> <!-- sort the reference entries alphabetically -->
<!-- control vertical white space:
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?> <!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?> <!-- keep one blank line between list items -->
<!-- end of popular PIs -->

<rfc  category="info" docName="draft-stroeder-namedobject-01" ipr="trust200902">

  <front>

    <title abbrev="LDAP Named Objects">
      Lightweight&nbsp;Directory&nbsp;Access&nbsp;Protocol&nbsp;(LDAP):
      Structural&nbsp;Object&nbsp;Classes&nbsp;for&nbsp;Named&nbsp;Objects
    </title>

    <author fullname="Michael Ströder" initials="M" surname="Ströder">
<!-- <organization/> -->
      <address>
        <postal>
          <street></street>
          <city>Karlsruhe</city>
<!-- <region/> -->
<!-- <code/> -->
          <country>Germany</country>
        </postal>
<!-- <phone/> -->
<!-- <facsimile/> -->
        <email>michael@stroeder.com</email>
        <uri>http://www.stroeder.com</uri>
      </address>
    </author>

    <date year="2013" />
<!-- <area/> -->
    <workgroup>Network Working Group</workgroup>
    <keyword>ldap</keyword>
    <keyword>namedObject</keyword>
    <keyword>namedPolicy</keyword>

    <abstract>
      <t>
        This document defines structural object classes that can be used
        when no other structural object class seems suitable. Especially
        the object classes will give the possibility to associate a common
        name and a free-form description with the object.
      </t>
    </abstract>

  </front>

  <middle>

    <section title="Introduction">
      <t>
        Standards for LDAP directories often define additional schema elements,
        especially auxiliary object classes that are intended to hold various
        attributes needed by that standard.

        When adding entries with such an auxiliary object class it is up to the
        directory operator to choose an appropriate structural object class
        required to add the entry.  Often the structural object classes used
        were defined for other purposes and thus seem too complex for this
        simple purpose.
      </t>
      <t>
        Inspired by unfinished <xref target="I-D.howard-namedobject"/>
        this document defines structural object classes, 'namedObject' and
        'namedPolicy'.  Only attributes defined in <xref target="RFC4519"/>
        and <xref target="RFC4524"/> are used within these simple
        object classes.
        Arbitrary auxiliary object classes may be thus associated with entries
        which have such a structural object class.
      </t>
      <t>
        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
        <xref target="RFC2119"/>.
      </t>
      <t>
        This document is being discussed on the ldapext@ietf.org mailing list.
      </t>
    </section>

    <section anchor="OCDefinitions" title="Object Class Definitions">

      <t>
        The object classes definitions in this section are using the
        attributes 'cn' and 'description' defined in <xref target="RFC4519"/>
        and 'uniqueIdentifier' defined in <xref target="RFC4524"/>.
      </t>
      <t>
        If the optional attribute 'uniqueIdentifier' contains a value it 
        SHOULD be used to form the RDN of the entry.
        Otherwise the mandantory attribute 'cn' SHOULD be used to form 
        the RDN of the entry if there are no other appropriate naming 
        attributes available.
        Other attributes allowed by auxiliary classes also MAY be used for naming purposes.
      </t>
      <t>
        LDAP clients displaying a list of entries of these object
        classes SHOULD use mandantory attribute 'cn' to display select
        lists, hyper-links etc.
      </t>

      <section anchor="namedObject" title="'namedObject'">
        <t>
          The 'namedObject' object class definition is the basis of an
          entry that represents an arbitrary named object. The attribute
          'cn' MUST be added to the entry. The attributes 'uniqueIdentifier'
          and 'description' MAY be added to the entry.
        </t>
        <t>
          ( 1.3.6.1.4.1.5427.1.389.6.20
            <vspace blankLines="0" />
            &nbsp;&nbsp;NAME 'namedObject'
            <vspace blankLines="0" />
            &nbsp;&nbsp;SUP top
            <vspace blankLines="0" />
            &nbsp;&nbsp;STRUCTURAL
            <vspace blankLines="0" />
            &nbsp;&nbsp;MUST cn
            <vspace blankLines="0" />
            &nbsp;&nbsp;MAY ( uniqueIdentifier $ description ) )
        </t>
      </section>

      <section anchor="namedPolicy" title="'namedPolicy'">
        <t>
          The 'namedPolicy' object class definition is sub-classed from
          'namedObject'.  It SHOULD only be used for entries which
          represents an arbitrary policy.  A typical example would be to
          use it along with auxiliary object class 'pwdPolicy' defined in
          <xref target="I-D.behera-ldap-password-policy"/>.
        </t>
        <t>
          The rationale for an extra structural object class is to have
          the possibility to associate a specific set of policy-related
          auxiliary object classes without having to restrict the more
          general 'namedObject' class.
        </t>
        <t>
          ( 1.3.6.1.4.1.5427.1.389.6.21
            <vspace blankLines="0" />
            &nbsp;&nbsp;NAME 'namedPolicy'
            <vspace blankLines="0" />
            &nbsp;&nbsp;SUP namedObject
            <vspace blankLines="0" />
            &nbsp;&nbsp;STRUCTURAL )
        </t>
      </section>

    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
        The 'namedObject' object class definition in this document
        supersedes the specification of the 'namedObject' in
        <xref target="I-D.howard-namedobject"/> by L. Howard.
      </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>
        The OID arc used for the object class defintions is:
        <vspace blankLines="0" />
        iso(1) org(3) dod(6) internet(1) private(4) enter-prise(1) stroeder.com(5427) public(1) ldap(389) objectClasses(6)
      </t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>
        The introduction of these object classes does not impact the
        security of the Internet or a particular LDAP directory service.
      </t>
      <t>
        Security considerations for LDAP in general are discussed in documents
        comprising the technical specification <xref target="RFC4510"/>.
      </t>
    </section>

  </middle>

  <back>

    <references title="Normative References">
      &RFC2119;
      &RFC4510;
      &RFC4519;
      &RFC4524;
    </references>

    <references title="Informative References">
      &I-D.howard-namedobject;
      &I-D.behera-ldap-password-policy;
    </references>

  </back>

</rfc>
