CHAPTER 3

Sun Directory Services Directory Information Tree and Schema




"Introduction" on page 203
"Producers and Consumers of the Mail Schema" on page 204
"Directory Schema and DIT Specification" on page 205
"Directory Information Tree" on page 206
"Data in OSI and DC trees" on page 209
"Attribute Syntax" on page 213
"Services and Functions" on page 214
"Object Classes Used by Sun Internet Mail Server 4.0" on page 215
"Directory Information Tree and Virtual Domain Object Classes" on page 215
"Internet Mail User Object Classes" on page 226
"Internet Mail Distribution List Object Classes" on page 242
"Internet Mail Routing Object Classes" on page 251
"Object Classes for Services" on page 252


Introduction

This chapter describes a schema for Internet mail routing and delivery, but the core of this schema also serves as the core for other Internet services. It also describes the SIMS Directory Information Tree (DIT) and Schema. You use the DIT and schema information for provisioning and debugging.

The examples provided throughout the document show how the schema is suited for Internet mail and also illustrate the modularity that provides support for service- and vendor-independent interoperability.

For information on how Sun Directory Services relates to SIMS refer to the SIMS Concepts Guide and SIMS System Administration Guide. For detailed information on administration and usage, refer to the Sun Directory Services documentation.

The goal of this document is to precisely identify the format, type, and acceptable values of the directory entries used by Sun Internet Mail Server. This document has two intended audiences: engineering groups and customers who develop their own tools for populating the directory with data.

This document assumes that the reader is familiar and comfortable with installing and managing SIMS. Readers should be familiar with LDAP Directory Interchange Format (ldif(1)). It is also assumed that the reader has read and understands the following documents:

X.520 (1993)
X.520 (1998)
X.521 (1993)
RFC 2256
http://www.ietf.org/Internet-drafts/draft-smith-ldap-inetorgperson-00.txt

Producers and Consumers of the Mail Schema

A producer is defined as any software component that can create, or subsequently modify a value for an attribute in an object class. A consumer is defined as any software component that retrieves and uses attributes in the process of accomplishing some task.

The following sections defining the LDAP mail schema specify the producer(s) and consumer(s) of each of the attributes. Here, an Internet mail system is subdivided into the following components:

Message Transfer Agent (mta) - Communicates through Simple Mail Transfer Protocol [SMTP] and is responsible for either routing mail to another MTA or delivering the message into a mailbox.

Message Store / Message Access agent (msma) - Responsible for supporting access by email client software to a user's mail folders. This component may be:

a traditional Message Store Agent, with local storage of user's mail folders
a proxy server between the email client and another MSMA agent
a referral agent that returns the name of another MSMA agent to the email client
a combination of all three of the above.

In proxy mode, the agent can be implemented as a protocol router for POP [POP] and/or IMAP [IMAP] requests. When functioning as an end-point for mail access requests, the MSMA agent will retrieve and delete messages, and otherwise manipulate the folders belonging to the user in the message store.

client - Any software agent producing and/or consuming mail directory entries and interpreting the semantics of object class attributes as specified here. These are usually user agents acting on behalf of a non-privileged end-user, and can range from stand-alone email clients to cgi-bin scripts or Java servlets invoked by a web server in response to HTTP commands from a user's web browser.

admin - Software agents that provision the directory (creation, update of entries). This class of producer/consumer is usually acting on behalf of a privileged user (for example, a site administrator). Such agents can range from GUI stand-alone or web-based administration consoles, to character-based scripts invoking low-level LDAP commands. The heading for each of the attribute sections lists the following:

(<matching rule>, <multi-valued>, {<producer/consumer>})

Where:

<matching rule> - Matching rule for this attribute. For example, cis, ces,...

<multi-valued> - Number of attributes allowed per entry. For example, 1, 0-1, 0-many, ...

<producer/consumer> - A comma-separated list of the producers and/or consumers of this attribute from the list of Internet mail system components above.


Directory Schema and DIT Specification

Structural object classes are used to define nodes in the directory. Auxiliary object classes can be used to extend the set of attributes that a directory entry might contain. The data model used by SIMS is to extend entries, defined by standard object classes, by overlaying them with service-specific auxiliary object classes.

The shared auxiliary object classes hold a minimum of attributes and can be used to define generic entries in the directory (for example, inetSubscriber is used to define a basic user entry). Service-specific attributes are encapsulated in the auxiliary object classes. To enable a user/subscriber to start using a service or to enable a host object to hold service-specific attributes, these auxiliary object classes are used to extend the generic entries.

The sections that follow define the object classes used to define the directory entries (user, groups, hosted domains, host objects, and so on) and the specifications of the attributes in these object classes.


Directory Information Tree

The role of a directory service is to support the storage and retrieval of data. Visualize the entries in an LDAP directory as a tree-like structure. This mirrors the tree model used by most file systems and is referred to as the directory information tree (DIT).

Just as a file path uniquely identifies a file within a file system, a directory entry is uniquely identified within the DIT using a distinguished name (DN). A DN identifies the entry with a comma-separated list of attribute and attribute value pair. The DN's left-most attribute-value pair is known as the relative distinguished name (RDN).

Following the RDN, each successive attribute-value pair is the RDN of the next parent node in the DIT hierarchy, each one representing a potential branch point above the entry. The final, or right-most, attribute-value pair represents the conceptual root point of the DIT.

SIMS 4.0 allows the data to be represented in two ways in the directory. The recommended approach is to have a single domain component tree (DC tree) that contains all the data used by their services: users, distribution lists, hosted domains entries, and so on. Starting with this release of SIMS, DC tree deployments will be recommended and the installer will always create the DC tree for all new installs.

For sites that need to maintain compatibility the OSI style tree, or that don't want to migrate the directory of SIMS 3.0 to conform with the recommended DIT, an alternate data layout is supported. This alternate layout uses a combination of primary and secondary tree.

The primary tree is the repository of all users and distribution list data and is patterned after an OSI DIT.

The secondary tree is a Domain Component tree (DC tree) that mirrors the DNS hierarchy. The secondary tree also holds the virtual domains, because domain data logically belongs in the DC tree.

The DC tree provides the mapping from the DNS namespace to the primary namespace where all users and distribution lists are defined. This mapping is used by message transfer agents for building routing tables and in making message routing decisions; it is also used by the IMAP/POP servers when authenticating users.

The root entry of the DIT is defined by the suffix value of the directory server. Therefore, the LDAP directory server will have to support multiple suffixes for multiple DITs to be created. Sun Directory Server and Netscape Directory Server support multiple DITs.

OSI trees with a shadow DC tree are deprecated with an eye towards discontinuing support for such deployments in the future.

As noted, SIMS 4.0 supports user/distribution list data in a DC tree or a combination of DC and OSI trees. Examples using both are shown below.


Data In a Single Domain Component Tree

The recommended approach for setting up the directory information tree in a directory server is to create all entries that SIMS depends on in a tree that is patterned after a domain component tree. The tree should be rooted at o=Internet. Configure the directory server with this suffix.

All nodes directly below o=internet correspond to the top-level domains in the DNS namespace. For example, some of the nodes below the root would be dc=com,o=internet; dc=fr,o=internet; dc=edu,o=internet; and so on.

These top-level nodes that correspond to the top-level domains contain the node for organizations. Examples of these are dc=sun,dc=com,o=internet and dc=sfr,dc=fr,o=internet. DNS domains within an organization's top level DNS domain are represented by corresponding containers of the format dc=<sub_domain>,dc=sun,dc=com,o=internet. Each node representing the organization or sub-domain in the organization is required to have the following organizational units:

organizational unit: people - User entries are defined so that they are contained within the people organizational unit.
organizational unit: groups - Distribution list entries are defined so that they are contained within the groups organizational unit.
organizational unit: services - Entries for services are contained within the services organizational unit.

In the figure below, the DN for a user entry in engineering organizational unit will have a suffix of ou=people,dc=engineering,dc=sun,dc=com,o=internet, preceded by the entry's RDN. For example:

cn=John Doe,ou=people,dc=engineering,dc=sun,dc=com,o=internet.

Each containers -- o=internet; dc=<top_level_dns_domain>,o=internet; dc=<dns_suffix_for_org>, dc=<top_level_dns_domain>,o=internet -- and then the organizational units people, groups, and services are directory entries themselves and are made up of the following object classes.

DN OF NODE IN DIT

 
OBJECT CLASSES ASSOCIATED WITH DIRECTORY ENTRY
 

o=internet

 
organization
 



dc=<top_level_dns_domain>, o=internet

 
domain
 

dc=<dns_suffix_for_org>,dc=<top_level_dns_domain>, o=internet

 
domain
simsDomain
inetDomain
 

dc=<sub_domain>,dc=<dns_suffix_for_org>,dc=<top_level_dns_domain>, o=internet

 
domain
simsDomain
inetDomain
 

ou=people, dc=<dns_suffix_for_org>,dc=<top_level_dns_domain>, o=internet

 
organizationalUnit
 

ou=groups, dc=<dns_suffix_for_org>,dc=<top_level_dns_domain>, o=internet

 
organizationalUnit
 

ou=services, dc=<dns_suffix_for_org>,dc=<top_level_dns_domain>, o=internet

 
organizationalUnit
 

The directory entry for the root node is represented by the following LDIF:

dn: o=internet
organization: internet
objectclass: organization
description: Root node of the Domain Component (DC) Tree

The directory entry for the second level node is represented by the following LDIF:

dn: dc=com, o=internet
domainComponent: com
objectclass: domain
description: Top-level node for COM domains.

The directory entry for the third level node is represented by the following LDIF:

dn: dc=sun, dc=com, o=internet
domainComponent: sun
objectclass: domain
objectclass: inetDomain
objectclass: simsDomain
inetTreeStyle: DC
description: Top level node of sun.com
dnsDomainName: sun.com

The directory entry for people container is represented by the following LDIF (groups and services follow the same format).

dn: ou=People, dc=sun, dc=com, o=internet
organizationalUnit: people
objectclass: organizationalUnit

You can add additional attributes to the above nodes, especially to the nodes defined with the inetDomain object class. Attributes of the inetDomain and SimsDomain object classes are used to set the various properties of a virtual domain.


Data in OSI and DC trees


Primary tree

The primary tree is patterned after an OSI tree and is rooted at c=<country-name>. Therefore, the suffix for the primary tree is set to c=<country_name>. The nodes in bold correspond to a site's organization structure. Each node in the DIT that corresponds to a valid DNS domain or sub-domain in the organization is required to have the following organization units:

organizational unit: people
organizational unit: groups
organizational unit: services

FIGURE  3-1 SIMS OSI (Primary) Directory Information Tree

User entries are defined so that they are contained within the people organizational unit. Distribution list entries are defined so that they are contained within the groups organizational unit. Service state is located within the services organizational unit.

In FIGURE 3-1, the DN for a user entry in the engineering organizational unit will have a suffix of ou=people,ou=engineering,o=sun.com,c=us, preceded by the entry's RDN.

Each container is a directory entry and is defined by the organizationalUnit object class. The directory entry for people container is shown below (groups and services follow the same format).

dn: ou=People,o=sun.com,c=us
organizationalUnit: people
objectclass: organizationalUnit

In the illustration above, the root of the DIT is defined by the suffix c=us. This directory entry is defined by country object class. The directory entry for the root entry is shown below.

dn: c=us
country: us
objectclass: country
description: Root node of the OSI tree

Second level nodes correspond to the organizations contained in the directory server and are defined by organization object class. An example of the entry for a second level node is shown below.

o: sun.com,c=us
o: sun.com
o: Sun Microsystems, Inc
ojectclass: organization
description: OSI node for sun.com

The organization nodes are followed by entries for the containers for people (ou=people), groups (ou=groups), and services (ou=services) as described earlier. Organizations that have divisions and subdivisions (for example, engineering and marketing) should represent their organizational hierarchy by creating containers for each division and subdivision. These containers are defined by the organization object class. An example of the entry for a division is shown below.

dn: ou=engineering,o=sun.com,c=us
ou: Sun Microsystems engineering organization
objectclass: organizationalUnit


Note - Each node for an organization or a division that can hold users and groups must have the three containers for people, groups, and services.

Secondary tree

The secondary tree provides the mapping from DNS name space to the OSI name space and follows the recommendations of RFC 1279, section 11. The tree is rooted at o=internet and is structured exactly the same way as if the domain component tree was the primary tree--with one major difference. When the DC tree is not the primary tree, the attribute inetlabeledURI in the nodes created with inetDomain is set to point to the DN of the OSI tree containing the users and groups for that DNS domain (for example, ldap:///ou=engineering,o=sun.com,c=us??sub).

Each node corresponding to a DNS domain is created with the following object classes -- top, domain, inetDomain, and simsDomain. For example, the directory entry for the eng.sun.com domain is shown below.

dn: dc=eng,dc=sun,dc=com,o=internet
dc: eng
description: DC node for eng.sun.com
objectclass: top
objectclass: domain
objectclass: inetDomain
objectclass: simsDomain
inettreestyle: OSI
inetdomainstatus: active
simsrecursive: 0
simsdomainversion: 1.0
dnsdomainname: eng.sun.com
inetauthorizedservices: imap
netauthorizedservices: pop3
inetauthorizedservices: imaps
inetauthorizedservices: pop3s
inetauthorizedservices: smtp
inetauthorizedservices: sunw_webaccess
inetauthorizedservices: sunw_calendar
inetlabeleduri: ldap:///ou=engineering,o=sun.com,c=us??sub
maxentries: -1
maxmailboxes: -1
maxdistributionlists: -1
mailhosts: mail.eng.sun.com
preferredmailhost: mail.eng.sun.com

FIGURE  3-2 SIMS Domain Component (Secondary) Directory Information Tree


Note - It is important that the associations between the domain component tree (secondary) and the OSI tree (primary) be set up for applications to search for users and groups within a given DNS domain

FIGURE 3-2 shows that the node dc=eng,dc=Sun,dc=com,o=Internet points to the DN ou=engineering,o=sun.com,c=us. SIMS looks for users in the eng.sun.com DNS domain in the sub-tree ou=People,ou=engineering,o=sun.com,c=us.

Clients of the directory should use the inetTreeStyle attribute of inetDomain object class to determine whether the users, groups, and services are under the DC tree (inetTreeStyle=DC) or under the OSI tree (inetTreeStyle=OSI). When inetTreeStyle=OSI, value of inetlabeledURI is used to determine the DN in the OSI tree that holds the user entries.


Attribute Syntax

The description of the attributes includes, among other things, the syntax of the attribute. This syntax is a directive to the Directory Service Agent (DSA). The possible syntaxes are:

dn - A string distinguished name (as defined in rfc1779).
cis - A case ignore string.
ces - A case exact string (case is significant during comparisons).
bin - A binary value.
tel - A string telephone number (blanks and dashes are ignored during comparisons)
utctime - UTC time stamp in the following format YYMMDDHHMMSS.
protected - An encrypted value. In Sun Directory Server 1.0 and 3.1, a value prefixed with {crypt} denotes that it has already been encrypted according to UNIX crypt. A value with no prefix is assumed to be in the clear and is crypted by the directory before it is stored. In SunDS 3.1, a value prefixed with {sunds} denotes that the value is encrypted using a MD5 hashing scheme. Attributes with protected syntax are not returned in searches unless the credentials that the client is using when binding to the directory has the access (see ACL for Sun Directory Server) over the attribute with a protected syntax.

Attributes may appear more than once in a directory entry. For each attribute in the object attribute tables that follow the possible number of attribute values are:

1 - one and only one value
0-1 - zero or one value
0-many - zero or more values
1-many - one or more values

This is the number of values required by the schema checking process.

SIMS provides a tool -- imldifsync -- that assists in migrating users and distribution lists from NIS and NIS+ into the directory.

The sections that follow describe the object classes, associated attributes, and the directory information tree pertinent to the functioning of services provided by SIMS.


Services and Functions

SIMS provides the following services:

ms - Sun Message Store
ma - IMAP/POP message access
mta - SMTP mail service
admin - SIMS administration service

These services, individually or in combination, provide a set of functionality pertinent to an Internet customer. These are defined below:

auth - user authentication to mailbox and directory data.
authorization - authorization to execute a privileged command, such as delete a mailbox.
routing - routing of messages. Includes routing to the correct mail server and to the correct channel.
access - access control over directory objects

Object class attributes, described in the sections below, are marked with a list of services that depend on that attribute. The format of the notation is described by the following BNF.

services

service-name

service

::= "{" service-name [:service-name] "}"
::= service [:service-name]
::="ms"|"ma"|"mta"|"smcs"|"admin"|
"spm"|"ftp"|"nntp"|"web"| "sia" |
"sism"


Object Classes Used by Sun Internet Mail Server 4.0

The following section describes the object classes used to define the directory information tree (DIT), mail users, and distribution lists. Some of the object classes used to create the LDAP entries used by Sun Internet Mail Server 4.0 are defined in X.500 standard or Internet Drafts. SIMS extends the capabilities of those object classes and defines new mail specific object classes and relevant attributes. These are used to overlay basic LDAP entries so that additional mail specific attributes can be stored in them.

In the following sections, all the object classes used by SIMS are described. The first section contains information about the object classes used to create the LDAP entries that make the DIT. It also contains object classes used to make a domain object a virtual domain. This is followed by internet mail users and internet mail groups.


Directory Information Tree and Virtual Domain Object Classes

Users and distribution lists are leaf nodes in the DIT. The DIT is defined by the following object classes.

country - Attributes used to describe a country.
organization - Attributes used to describe an organization.
organizationalUnit - Attributes used to describe an organizational unit container. Used to create the OU=People, OU=Groups, and OU=Services containers, and to create other organizational units contained in the OSI tree.
domain - Attributes used to describe the domain component nodes of the DC tree. These nodes may be containers (domain and sub-domains) and leaf nodes (hosts).
inetDomain - Attributes used to describe the additional properties for a hosted domain. This object class is associated with directory containers that correspond to a DNS domains. In an Internet style DIT, this object class is associated with every DC (domain component) node that represents a DNS domain.
simsDomain - Attributes used to describe the additional properties for an email domain. This object class is associated with directory containers that correspond to a DNS domains. In an Internet style DIT, this object class is associated with every DC (domain component) node that represents a DNS domain.

Note - Attributes listed in the "Required Attribute" tables are used either for the basic functionality of SIMS or by one or more extended services. They are not necessarily required by the schema checking process. Some attributes listed as required can be omitted, and the object will still pass the schema checking process. If the number of values for an attribute is listed as either 1 (only one value) or 1-many (one or more values), then the attribute is required for the object to pass schema checking. If the number of values for an attribute is listed as either 0-1 (zero or one value) or 0-many (zero or more values), then the attribute is not required for the object to pass schema checking.
Optional attributes are not used by SIMS, or are for informational purposes only.

country Object Class

The country object class is used to define the country node. This is also the root node of the OSI tree. The country object class is defined as follows.

( OID -- 2.5.6.2
NAME 'country'
SUPERIOR 'top'
MUST (
countryName
)
MAY (
description $ searchGuide
)
)

TABLE 3-1 shows the required country atributes.

TABLE  3-1   Required country Attributes
Attribute
 
Description
 

countryName  

(cis, 1, {}) 2-character country code. Defines the root node of the OSI tree.  

TABLE 3-2 shows the optional country atributes.

TABLE  3-2   Optional country Attributes  
Attribute
 
Description
 

description  

(cis, 0 - many, {}) Free form text. Description about the country node in the directory. Usually the full name of the country that matches the country code set in countryName. For example, if countryName=US, the description could be set to description=United States of America.  

searchGuide  

(cis, 0 - many, {}) Used by X.500 clients in constructing search filters. Present here due to the heritage of LDAP schema.  


organization Object Class

The organization object class is used to create the second level nodes in the DIT. Used with domainRelatedObject object class. The object class is defined as follows.

( OID -- 2.5.6.4
NAME 'organization'
SUPERIOR 'top'
MUST (
organizationName
)
MAY (
businessCategory $ description $ destinationIndicator $
facsimileTelephoneNumber $ internationaliSDNNumber $ localityName
$ physicalDeliveryOfficeName $ postOfficeBox $ postalAddress
$ postalCode $ preferredDeliveryMethod $ registeredAddress
$ searchGuide $ seeAlso $ state $ streetAddress $ telephoneNumber
$ teletexTerminalIdentifier $ telexNumber $ userPassword $
x121Address
)
)

TABLE 3-3 shows the required organization atributes.

TABLE  3-3   Required organization Attributes
Attribute
 
Description
 

organizationName  

(cis, 0 - many, { }) Name of the organization associated with this group.  

TABLE 3-4 shows the optional organization atributes.

TABLE  3-4   Optional organization Attributes  
Attribute
 
Description
 

businessCategory  

(cis, 0 - many, {}) Business classification for the organization.  

description  

(cis, 0 - many, {}) Free form text. Description about the organization node in the directory. Usually the full name of the organization that is associated with the value of attribute organizationName for this entry. For example, if organizationName=Sun, the description can be set to description=Sun Microsystems, Inc.  

destinationIndicator  

(cis, 0 - many, {}) Country and city address information.  

facsimileTelephoneNumber  

(tel, 0 - many, {}) Fax telephone number of the distribution list.  

internationaliSDNNumber  

(tel, 0 - many, {}) International ISDN number of the distribution list.  

localityName  

(cis, 0 - many, {}) Locality name.  

physicalDeliveryOfficeName  

(cis, 0 - many, {}) Mail stop.  

postOfficeBox  

(cis, 0 - many, {}) Post office box.  

postalAddress  

(cis, 0 - many, {}) Postal address.  

postalCode  

(cis, 0 - many, {}) Postal code.  

preferredDeliveryMethod  

(cis, 0 - 1, {}) Preferred delivery method of communication.  

registeredAddress  

(cis, 0 - many, {}) Registered postal address.  

searchGuide  

(cis, 0 - many, {}) Used by X.500 clients to construct search filters. Present here due to the heritage of LDAP schema.  

seeAlso  

(dn, 0 - many, {}) Distinguished name of an entry to consult for further information.  

st  

(cis, 0 - many, {}) Full name of state or province (stateOrProvinceName).  

streetAddress  

(cis, 0 - many, {}) Street address associated with this organization.  

telephoneNumber  

(tel, 0 - many, {}) Telephone number in international format.  

teletexTermicalIdentifier  

(cis, 0 - many, {}) Teletex terminal ID and optional parameters for a teletex terminal. $ separated string.  

telexNumber  

(cis, 0 - many, {}) Telex number, country code, and answer back code for a teletex terminal.  

userPassword  

(protected/sunds, 0 - many, { }) Encrypted string representing the password of the organization node. In Sun Directory Server, the supported encryption scheme used is crypt or sunds. For CRAM-MD5 support the encryption scheme used in the SunDS 3.1 should be sunds.  

x121Address  

(cis, 0 - many, {}) An address as defined by the ITU recommendation X.121.  


organizationalUnit Object Class

The organizationalUnit object class is used to create the container entries of the primary DIT. These entries are the organizational unit (ou) containers corresponding to an OSI tree based on geography (east, west, UK, Russia, and so on) or functional units (engineering, marketing, and so on). The ou entry is created using the organizationalUnit object class. Each organization unit is required to have three more ou entries -- people, groups, and services. The object class is defined as follows.

( OID -- 2.5.6.5
NAME 'organizationalUnit'
SUPERIOR 'top'
STRUCTURAL
MUST (
organizationalUnitName
)
MAY (
businessCategory $ description $ destinationIndicator $
facsimileTelephoneNumber $ internationaliSDNNumber $ localityName
$ physicalDeliveryOfficeName $ postOfficeBox $ postalAddress $
postalCode $ preferredDeliveryMethod $ registeredAddress $
searchGuide $ seeAlso $ state $ streetAddress $ telephoneNumber $
teletexTerminalIdentifier $ telexNumber $ userPassword $
x121Address
)
)

TABLE 3-5 shows the required organizationalUnit atributes.

TABLE  3-5   Required organizationalUnit Attributes
Attribute
 
Description
 

organizationUnitName  

(cis, 0 - many, {admin,ms,mta,webaccess}) Name of the organization unit represented by this entry, for example, ou=Engineering.  

TABLE 3-6 shows the optional organizationalUnit atributes.

TABLE  3-6   Optional organizationalUnit Attributes  
Attribute
 
Description
 

businessCategory  

(cis, 0 - many, {}) Business classification for the organization unit.  

description  

(cis, 0 - many, {}) Free form text. Description about the organization node in the directory. Usually the full name of the organization that associated with the value of attribute organizationUnitName for this entry. For example, if organizationUnitName=Engineering, the description could be set to description=All of engineering in Sun Microsystems, Inc.  

destinationIndicator  

(cis, 0 - many, {}) Country and city address information.  

facsimileTelephoneNumber  

(tel, 0 - many, {}) Fax telephone number of the distribution list.  

internationaliSDNNumber  

(tel, 0 - many, {}) International ISDN number of the distribution list.  

localityName  

(cis, 0 - many, {}) Locality name.  

physicalDeliveryOfficeName  

(cis, 0 - many, {}) Mail stop.  

postOfficeBox  

(cis, 0 - many, {}) Post office box.  

postalAddress  

(cis, 0 - many, {}) Postal address.  

postalCode  

(cis, 0 - many, {}) Postal code.  

preferredDeliveryMethod  

(cis, 0 - 1, {}) Preferred delivery method of communication.  

registeredAddress  

(cis, 0 - many, {}) Registered postal address.  

searchGuide  

(cis, 0 - many, {}) This attribute is for use by X.500 clients in constructing search filters. Present here due to the heritage of LDAP schema.  

seeAlso  

(dn, 0 - many, {}) Distinguished name of an entry to consult for further information.  

st  

(cis, 0 - many, {}) Full name of state or province (stateOrProvinceName).  

streetAddress  

(cis, 0 - many, {}) Street address associated with this organization.  

telephoneNumber  

(tel, 0 - many, {}) Telephone number in international format.  

teletexTermicalIdentifier  

(cis, 0 - many, {}) Teletex terminal ID and optional parameters for a teletex terminal. $ separated string.  

telexNumber  

(cis, 0 - many, {}) Telex number, country code, and answer back code for a teletex terminal.  

userPassword  

(protected/sunds, 0 - many, { }) Encrypted string representing the password of the organization node. In Sun Directory Server, the supported encryption scheme used is crypt or sunds. For CRAM-MD5 support the encryption scheme used in the SunDS 3.1 should be sunds.  

x121Address  

(cis, 0 - many, {}) An address as defined by the ITU recommendation X.121.  


domain Object Class

The domain object class is used to create all the container entries (except for the root entry) in the Domain Component (DC) tree. These entries are the domain component representing DNS domains. The object class is defined as follows.

(OID -- 0.9.2342.19200300.100.4.13
NAME 'domain'
SUPERIOR 'top'
STRUCTURAL
MUST (
domainComponent
)
MAY (
associatedName $ businessCategory $ description $
destinationIndicator $ facsimileTelephoneNumber $
internationaliSDNNumber $ locality $ organizationName $
physicalDeliveryOfficeName $ postOfficeBox $ postalAddress $
postalCode $ preferredDeliveryMethod $ registeredAddress $
searchGuide $ seeAlso $ state $ streetAddress $ telephoneNumber $
teletexTerminalIdentifier $ telexNumber $ userPassword $
x121Address
)
)

TABLE 3-7 shows the required domain atributes.

TABLE  3-7   Required domain Attributes
Attribute
 
Description
 

domainComponent  

(cis, 1, {admin,ma,mta,webaccess,spm}) Name of the associated DNS domain for this DC node. DNS domain eng.sun.com would be represented in the DIT by the following chain of nodes: dc=eng,dc=sun,dc=com,o=<root_suffix>. And the DNS domain associated with a physical system, like jurassic.eng.sun.com would be represented in the DIT by the following chain of nodes: dc=jurassic,dc=eng,dc=sun,dc=com,o=<root_suffix>.  

TABLE 3-8 shows the optional domain atributes.

TABLE  3-8   Optional domain Attributes  
Attribute
 
Description
 

associatedName  

(dn, 0 - many, {admin,ma,mta,webaccess,spm}) Links the organizational X.500 (OSI) DIT and the DNS (Domain Component) tree. Used to link the DNS hierarchy to the OSI hierarchy. Where such entries don't exist or inetTreeStyle (defined in inetDomain object class) is set to DC, user, group, and service entries should be looked up in the DC tree.  

businessCategory  

(cis, 0 - many, {}) Business classification for the domain.  

description  

(cis, 0 - many, {}) Free form text. Description about the domain node in the directory. Usually the full name of the domain that associated with the value of domainComponent for this entry. For example, if domainComponent=Eng, the description may be set to description=Engineering domain in Sun Microsystems, Inc.  

destinationIndicator  

(cis, 0 - many, {}) Country and city address information.  

facsimileTelephoneNumber  

(tel, 0 - many, {}) Fax telephone number of the distribution list.  

internationaliSDNNumber  

(tel, 0 - many, {}) International ISDN number of the distribution list.  

localityName  

(cis, 0 - many, {}) Locality name.  

physicalDeliveryOfficeName  

(cis, 0 - many, {}) Mail stop.  

postOfficeBox  

(cis, 0 - many, {}) Post office box.  

postalAddress  

(cis, 0 - many, {}) Postal address.  

postalCode  

(cis, 0 - many, {}) Postal code.  

preferredDeliveryMethod  

(cis, 0 - 1, {}) Preferred delivery method of communication.  

registeredAddress  

(cis, 0 - many, {}) Registered postal address.  

searchGuide  

(cis, 0 - many, {}) Used by X.500 clients in constructing search filters. Present here due to the heritage of LDAP schema.  

seeAlso  

(dn, 0 - many, {}) Distinguished name of an entry to consult for further information.  

st  

(cis, 0 - many, {}) Full name of state or province (stateOrProvinceName).  

streetAddress  

(cis, 0 - many, {}) Street address associated with this organization.  

telephoneNumber  

(tel, 0 - many, {}) Telephone number in international format.  

teletexTermicalIdentifier  

cis, 0 - many, {}) Teletex terminal ID and optional parameters for a teletex terminal. $ separated string.  

TelexNumber  

(cis, 0 - many, {}) Telex number, country code, and answer back code for a teletex terminal.  

userPassword  

(protected/sunds, 0 - many, { }) Encrypted string representing the password of the organization node. In Sun Directory Server, the supported encryption scheme used is crypt or sunds. For CRAM-MD5 support the encryption scheme used in the SunDS 3.1 should be sunds.  

x121Address  

(cis, 0 - many, {}) An address as defined by the ITU recommendation X.121.  


inetDomain Object Class

The inetDomain object class is used to create those entries in the DC tree that correspond to a DNS domain. This object class is overlayed on nodes created with domain object class. The DC entry is created by using domain object classes. The object class is defined as follows.

(OID -- TBD
NAME 'inetDomain'
AUXILIARY
MUST (
dnsDomainName $ inetTreeStyle
)
MAY (
owner $ inetAuthorizedServices $ inetLabeledURI $
inetDomainStatus
)
)

TABLE 3-9 shows the required inetDomain attributes.

TABLE  3-9   Required inetDomain Attributes 
Attribute
 
Description
 

dnsDomainName  

(cis, 1, {admin,ma,mta,webaccess,spm}) DNS domain name associated with this node in the DIT.  

inetTreeStyle  

(cis, 1, {admin,ma,mta,webaccess,spm}) Type of tree that is associated with this DNS domain. Takes the following values:

  • DC All users, groups, and service entries are found in the domain component tree.
  • OSI All users, groups, and service entries are found in OSI tree. Linkage is provided by the value of attribute associatedName.
  •  

    owner  

    (dn, 1-many, {admin, spm}) Distinguished name of the delegated administrator(s) for this domain.  

    inetLabeledURI  

    (ces, 0-1, {admin, spm,mta,msma}) The LDAP URI points to the naming context in the OSI tree where the users, groups, and other objects reside. This is useful for sites that need to deploy an OSI style tree. NOTE: Using a DC/OSI tree is discouraged and should be used only when necessary.

    Components check the inetTreeStyle attribute of the domain entry to determine if the users are in DC or OSI tree. If the attribute indicates that the users are to be found in the OSI tree, the value of inetLabeledURI is used to determine the naming context to search. The syntax for this URL is specified in the RFC1959 and the relevant ABNF is reproduced below:  

    inetAuthorizedServices  

    (dn, 0 - many, {ma, mta, admin}) DN of the authorized services for this domain. List of services that users in this domain are permitted. This attribute explicitly calls out the set of services that a user is authorized to use. NOTE: If this attribute is missing from a domains entry, users are allowed to use all services listed in the user entry, that is, when doing the intersection between the set of services called out in user entry and domain entry, the domain entries inetAuthorizedServices list is considered the universal set.

    Supported values for service name are:

  • imaps allows access to secure IMAP based message access.
  • imap allows access to IMAP based message access .
  • pop3 allows access to POP based message access.
  • pop3s allows access to secure POP based message access.
  • smtps allows access to secure SMTP server for message submission.
  • sunw_webaccess allows access to the Web Access server.
  • sunw_calendar allows access to Sun Calendar server.
  •  

    inetDomainStatus  

    (cis, 0-1, {mta, ma, admin}) If missing from a user entry, the semantics are the same as if the value is active. Supported values are:

  • active All accounts in the domain are active. Subscribers may use all services granted by inetAuthorizedServices for domain AND subscribers.
  • inactive All accounts in the domain are inactive. Subscribers may not use any services granted by inetAuthorizedServices for domain AND subscribers. Where possible, service requests for subscribers must return transient failures.
  • deleted All accounts in the domain are marked as deleted. The accounts may remain in this state within the directory pending purging of deleted domain and all entries contained within. Service requests for subscribers in this domain must return permanent failures.
  •  

    inetLabeledURI
    <ldapurl> ::= "ldap://" [<hostport>] "/" <dn> ["?" <attributes> ["?" 
    <scope> "?" <filter>
    
    <hostport> ::= <hostname> [":" <portnumber>]
    
    <dn> ::= distinguished name (string) as defined in RFC 1779
    
    <attributes> ::= NULL | <attributelist>
    
    <attributelist> ::= <attributetype> | <attributetype> ["," 
    <attributelist>
    
    <attributetype> ::= a string as defined in RFC1777
    
    <scope> ::= "base" | "one" | "sub"
    
    <filter> ::= a string as defined in RFC1558
    

    simsDomain Object Class

    The simsDomain object class is used to create entries in the DC tree that correspond to a DNS domain. The DC entry is created by using domain, inetDomain, and simsDomain object classes. The object class is defined as follows.

    ( OID -- TBD
    NAME 'simsDomain'
    AUXILIARY
    MUST (
    simsDomainVersion
    )
    MAY (
    rfc822Postmaster $ mailHosts $ preferredMailHost $
    domainDiskQuota $ mailQuota $ maxMailboxes $ maxEntries $
    maxDistributionLists $ simsRecursive
    )
    )

    TABLE 3-10 shows the required simsDomain attributes.

    TABLE  3-10   Required simsDomain Attributes  
    Attribute
     
    Description
     

    rfc822Postmaster  

    (cis, 0-many, {mta, admin}) rfc822 address of the postmaster.  

    mailHosts  

    (cis, 0-many, {admin,mta,spm}) List of fully qualified host names of mail servers that have routing responsibility for this domain. Used by MTA to build local routing tables. When a domain node has mailserver's name listed in mailhosts, it implies that all sub-domains are included in the routing scope of that mailserver. The alias database on the mailserver will be populated with users from all contained domains. NOTE: It is a provisioning error to have a mailserver listed in a domain nodes list of mailhosts when a superior domain node already has that mailserver in its list of mailhosts.  

    preferredMailHost  

    (cis, 0-1, {admin,spm}) Fully qualified host name of the preferred mail server for this hosted domain. When the delegated administrator adds a new user/distribution list, the new user/distribution list is assigned this value for their mailhost.  

    domainDiskQuota  

    (cis, 0-1, {ms, admin}) Disk quota in megabytes for this domain. Disk usage for all users in this hosted domain should not exceed this value.  

    maxMailBoxes  

    (cis, 0-1, {ma, admin}) Number of allowable mailboxes for this domain.  

    maxEntries  

    (cis, 0-1, {admin}) Number of allowable directory entries for this domain.  

    maxDistributionLists  

    (cis, 0-1, {mta, admin}) Number of allowable distribution lists for this domain.  

    simsRecursive  

    (cis, 0 - 1, {mta,admin,ms,spm}) Legal values for this attribute are 0 and 1. This attribute controls the bounds of the namespace. When set to 1 for any domain, it implies that users in the domain and all contained domains are in a flat namespace and all components must treat all users in that sub-tree as part of this domain. A value of 0 implies that only users in that domain are in the scope of the domains namespace and all sub-domains are separate namespaces whose bounds are determined by the simsRecursive flag of that domain. All domain provisioning tools must disallow creation of a domain node <sub>.<domain>.COM when the parent node <domain>.COM has simsRecursive=1. This would lead to overlapped namespace (parent domain says all users are within my scope and the child domain node says that all users beneath the child domain are in the child domains scope, hence leading to two namespaces claiming rights over the same users). If there is a compelling reason to create a sub-domain beneath a domain where simsRecursive=1, then the value of simsRecursive for the sub-domain must be set to 1. Additionally, a domain node marked with simsHosting=1 may not have simsRecursive=1.  


    Internet Mail User Object Classes

    A user, including a SIMS email user, is represented by an entry in the directory. A user entry is extensible (as are all other directory entries) and may contain additional object classes/attributes once such schema extensions have been made in the directory. Take care to ensure that semantics of existing object classes are not changed by a schema extension.

    An entry that stores user information for an email user consists of attributes drawn from -- at a minimum -- the following directory object classes.

    The keyword in parentheses following the name of the object class, indicates whether the object class is standard, shared (by various services that use the directory data), or service-specific. If it is service-specific, the keyword is followed by the name of the service.

    top (standard) - Attributes for describing the classifications of a directory object. This is a structural object class and all other object classes inherit from this base class.
    person (standard) - Attributes for describing a person. Inherits from top.
    organizationalPerson (standard) - Attributes for describing a person belonging to an organization. Inherits from person.
    inetOrgPerson (proposed standard) - Same as organizationalPerson and also one that interacts with the Internet. Inherits from organizationalPerson.
    inetSubscriber (shared; auxiliary) - Attributes for describing a basic Sun Internet Services user. This is an auxiliary object class. All users who are provisioned for email, Web, ftp, and so on, are described using this object class and a combination of one or more service-specific auxiliary object classes. The inetSubscriber object class is an auxiliary class shared by several Sun products. It requires an inetOrgPerson structural object class, because a number of auxiliary object classes depend on attributes from inetOrgPerson.
      The inetSubscriber object class provides information needed to manage a subscriber of one or more Internet services (for example, sending email, retrieving received email, calendar access, and so on). This results in a single shared object that can be checked to determine which services a specific user is authorized to use. (Although it is beyond the scope of this chapter, the inetSubscriber object class is being used to support access to Internet services beyond the email domain (for example, http, news, and so on).
    IinetMailUser (service specific; SIMS; auxiliary) - Attributes for describing an email user. This is an auxiliary object class and is required for defining an email user. The inetMailUser object class, in conjunction with the auxiliary object classes inetSubscriber, inetMailRouting, and the structural object class inetOrgPerson, will be present in the LDAP directory entries for all users who will receive, send, or read Internet email. Internet email clients and servers should use this object class to store and retrieve information related to storage of incoming email and sending of outbound email. All email users must have this object class.
    imCalendarUser (service specific; SICS, auxiliary) - Attributes for describing a calendar subscriber. This is an auxiliary class and is required for defining users of Sun Internet Calendar Server.
    inetAdministrator (shared; auxiliary) - Attributes for describing an administrator for SIMS.
    inetMailRouting (service specific; SIMS; auxiliary) - Attributes containing the required routing information common to all Internet email recipients.
    inetMailGroup (service specific; SIMS; auxiliary) - Attributes that are key to determining how the mail is processed by the MTAs. Additionally, the inetMailRouting object class determines how messages are routed through the mail system.

    A detailed explanation of the attributes in this object class (including the valid range of values for the attribute, the effect on the behavior of SIMS as a result of changing the value, and the syntax for the attribute), follows the definition of the object class. The attribute list can have:

    Required attributes that are used either for the basic functionality of SIMS (that is, required for the components to function) or by one or more service when extended features of these products are used.
    Reserved attributes reserved for future use by SIMS and should not be used by the end user for other purposes.
    Optional attributes that are not used nor planned to be used by SIMS.

    Attribute names are followed by -- within parenthesis -- attribute syntax and list of services that depend on the attribute.


    Inherited Object Classes and Attributes

    The following attributes are used in this specification but are defined in other specifications: uid, userPassword, givenName, commonName, and surname.

    uid (cis, 1, {client, msma, admin}) attribute - The name, unique within a domain, used by a subscriber to log in to a computer system. The uid attribute must be used to authenticate to the email message access service before the user may read messages in their mailbox(es).
    userPassword (cis, 1, {client, msma, admin}) attribute - The password used by the subscriber to authenticate to a server for access to a particular service.
    givenName (ces, 0-many, {admin}) attribute - Used to hold the part of a person's name which is not their surname or middle name.
    surname (ces, 0-1, {admin}) attribute - Used to hold a person's last, or family, name.
    commonName (ces, 0-many, {admin}) attribute - Used to hold the concatenation of a person's first and last (or family) name. In the directory the commonName of a person is a naming attribute. Because names are not always unique, provisioning software may optionally transform a non-unique commonName into a name that is unique within a domain; it may do this by further concatenating the value of the uid attribute to the default commonName value, and then using that now-unique value as the naming attribute. This is acceptable because the commonName attribute is defined as multi-valued.

    top Object Class

    The top object class is the base class for all other structural object classes used by Sun Internet Services. The object class is defined as follows.

    (OID -- 2.5.6.0
    NAME 'top'
    STRUCTURAL
    MUST (
    objectClass
    )
    )

    TABLE 3-11 describes the required attributes for the top object class.

    TABLE  3-11   Required top Attributes
    Attribute
     
    Description
     

    objectClass  

    (cis, 1 - many, {mta, ma, smcs, admin}) The object classes used to define a directory entry. For every node in the directory (vertex and leaf nodes), we have to use one structural object class and zero to many auxiliary object classes.  


    person Object Class

    (OID -- 2.5.6.6
    NAME 'person'
    STRUCTURAL
    SUPERIOR 'top'
    MUST (
    surname $ commonname
    )
    MAY (
    description $ seeAlso $ telephoneNumber $ userPassword
    )
    )

    TABLE 3-12 shows the required person attributes.

    TABLE  3-12   Required person Attributes  
    Attribute
     
    Description
     

    commonname  

    (cis, 1 - many, {mta, admin}) Users full name. There can be more than one cn attribute for a user although each attribute is required to be unique within a user record.  

    surname  

    (cis, 1 - many, {}) Users last or family name.  

    TABLE 3-13 shows the optional person attributes.

    TABLE  3-13   Optional person Attributes  
    Attribute
     
    Description
     

    description  

    (cis, 0 -many, {}) Free form text. Description of user entry.  

    seeAlso  

    (dn, 0 - many, {}) Distinguished name of an entry to consult for further information.  

    telephoneNumber  

    (tel, 0 - many, {}) Telephone number in international format.  

    userPassword  

    (protected/sunds, 0 - many, {admin, imta, ms, ftp, calendar}) Encrypted string representing the users password. In Sun Directory Server, the supported encryption scheme used is crypt or sunds. For CRAM-MD5 support the encryption scheme used in the SunDS 3.1 should be sunds.  


    organizationalPerson Object Class

    Attributes for describing a person belonging to an organization.)

    (OID -- 2.5.6.7
    NAME 'organizationalPerson'
    STRUCTURAL
    SUPERIOR 'person'
    MAY (
    destinationIndicator $ facsimileTelephoneNumber $
    internationaliSDNNumber $ localityName $ organizationalUnitName
    $ physicalDeliveryOfficeName $ postOfficeBox $ postalCode $
    preferredDeliveryMethod $ registeredAddress $ st $ street $
    telephoneNumber $ telexTerminalIdentifier $ title $ x121Address
    ) )

    TABLE 3-14 describes the organizationalperson attributes.

    TABLE  3-14   Optional organizationalperson Attributes  
    Attribute
     
    Description
     

    destinationIndicator  

    (cis, 0 - many, {}) Country and city address information.  

    facsimileTelephoneNumber  

    (tel, 0 - many, {}) Fax telephone number of the distribution list.  

    internationaliSDNNumber  

    (tel, 0 - many, {}) International ISDN number of the distribution list.  

    localityName  

    (cis, 0 - many, {}) Locality name.  

    organizationalUnitName  

    (cis, 0 - 1, {}) Organizational Unit name.  

    physicalDeliveryOfficeName  

    (cis, 0 - many, {}) Mail stop.  

    postOfficeBox  

    (cis, 0 - many, {}) Post office box.  

    postalAddress  

    (cis, 0 - many, {}) Postal address.  

    postalCode  

    (cis, 0 - many, {}) Postal code.  

    preferredDeliveryMethod  

    (cis, 0 - 1, {}) Preferred delivery method of communication.  

    registeredAddress  

    (cis, 0 - many, {}) Registered postal address.  

    st  

    (cis, 0 - many, {}) Full name of state or province (stateOrProvinceName).  

    street  

    (cis, 0 - many, {}) Street name.  

    teletexTermicalIdentifier  

    (cis, 0 - many, {}) Teletex terminal ID and optional parameters for a teletex terminal. $ separated string.  

    telexNumber  

    (cis, 0 - many, {}) Telex number, country code and answer back code for a teletex terminal.  

    title  

    (cis, 0 - many, {}) Contains the title of a person in their organizational context.  

    x121Address  

    (cis, 0 - many, {}) An address as defined by the ITU recommendation X.121.  


    inetOrgPerson Object Class

    Attributes use to describe a person using Internet services.

    (OID -- 2.16.840.1.113730.3.2.2
    NAME 'inetOrgPerson'
    STRUCTURAL
    SUPERIOR 'organizationalPerson'
    MAY (
    audio $ businessCategory $ carLicense $ departmentNumber
    $ employeeNumber $ employeeType $ givenName $ homePhone
    $ homePostalAddress $ initials $ jpegPhoto $ labeledURI $ mail
    $ manager $ mobile $ pager $ photo $ roomNumber $ secretary $ uid
    $ userCertificate $ x500uniqueueIdentifier $ preferredLanguage
    $ userSMIMECertificate
    )
    )

    TABLE 3-15 shows the optional inetOrgPerson attributes.

    TABLE  3-15   Optional inetOrgPerson Attributes  
    Attribute
     
    Description
     

    audio  

    (bin, 0 - many, {}) - Audio clip.  

    businessCategory  

    (cis, 0 - many, {}) - Business classification for the user.  

    carLicense  

    (cis, 0 - many, {}) - Vehicle license plate number.  

    departmentNumber  

    (cis, 0 - many, {}) - Numeric or alpha-numeric code for department to which a person belongs.  

    employeeNumber  

    (cis, 0 - 1, {}) - Numeric or alpha-numeric identier assigned to a person, typically based on order of hire or association with an organization. Single valued.  

    employeeType  

    (cis, 0 - many, {}) - Used to identify employer to employee relationship. Typical values used will be contractor, employee, intern, temp, external, and unknown, but any value may be used.  

    givenName  

    (cis, 0 - many, {}) - First name of the user.  

    homePhone  

    (tel, 0 - many, {}) - Home telephone number.  

    homePostalAddress  

    (cis, 0 - many, {}) - Home postal address.  

    initials  

    (cis, 0 - many, {}) - Initials attributes contains the initials of some or all of an individuals names, but not the surname(s).  

    jpegPhoto  

    (bin, 0 - many, {}) - Photograph stored in JPEG format.  

    labeledURI  

    (ces, 0 - many, {}) - Uniform resource identifier.  

    mail  

    (cis, 0-many, {mta, admin}) - The user's advertised email address (RFC 822 format). Also know as preferredRfc822Originator.  

    manager  

    (dn, 0-1, { }) - Distinguished name of manger.  

    mobile  

    (tel, 0 - many, {}) - Mobile telephone number.  

    pager  

    (tel, 0 - many, {}) - Pager number.  

    photo  

    (bin, 0 - many, {}) - Photograph associated with this user.  

    roomNumber  

    (cis, 0 - many, {}) - Room number.  

    secretary  

    (dn, 0-1, { }) - Distinguished name of secretary.  

    uid  

    (cis, 0 - 1, {mta, ma, admin, calendar}) - The login identifier of the user. The naming context within which this is required to be unique is the naming context associated with containing DNS domain.  

    userCertificate  

    (cis, 0 - many, { }) - User certificate.  

    x500UniqueIdentifier  

    (cis, 0 - many, { }) - x500UniqueueIdentifier attribute is used to distinguish between objects when a distinguished name has been reused.  

    uid  

    (cis, 0 - 1, {mta, ma, admin, calendar}) - The login identifier of the user. The naming context within which this is required to be unique is the naming context associated with containing DNS domain.  

    userCertificate  

    (cis, 0 - many, { }) - User certificate.  

    x500UniqueIdentifier  

    (cis, 0 - many, { }) - Used to distinguish between objects when a distinguished name has been reused.  

    preferredLanguage  

    (cis, 0 - 1, { }) - Used to indicate an individual's preferred written or spoken language. This is useful for international correspondence or human-computer intercation. Values must conform to the definition of the Accept-Language header field defined in RFC2068, with one exception: the sequence "Accept-Language" ":" should be omitted. This is a single-valued attribute.  

    userSMIMECertificate  

    (bin, 0 - many, {}) - S/MIME signed message with a zero length body. This attribute is stored and requested in binary form. It contains the person's entire certificate chain and the signed attribute that describes their algorithm capabilities, stored as an octetString. If available, this attribute is preferred over the userCertificate attribute for S/MIME applications.  

    inetSubscriber Object Class

    The inetSubscriber object class is an auxiliary object class used to define an Internet subscriber. SIMS uses this object class along with inetMailRouting and inetMailUser to define an email user. The is object class defined as follows:

    ( 1.3.6.1.4.1.42.2.27.3.2.1
    NAME 'inetSubscriber'
    SUP top
    AUXILIARY
    MUST (
    uid
    )
    MAY (
    inetAuthorizedServices $ inetSubscriberHttpURL $
    inetSubscriberStatus
    )
    )

    TABLE 3-16 shows the optional inetSubscriber attributes.

    TABLE  3-16   Optional inetSubscriber Attributes  
    Attribute
     
    Description
     

    inetAuthorizedServices  

    (cis, 0-many, {client, mta, msma, admin}) A list of tokens representing services that this user is authorized to access. If this attribute is missing from a user entry, then the user has permission to use all supported Internet services. If more granular authorization is wanted, provisioning tools should add the tokens representing services available to the user. It is recommended that a directory access control rule be added to the system to restrict the user's ability to modify this attribute. The tokens defined by this document are:

  • imaps Access to secure IMAP based message access.
  • imap Access to IMAP based message access.
  • pop3 Access to POP based message access.
  • pop3s Access to secure POP based message access
  • smtps Access to secure SMTP server for message submission.
  • sunw_webaccess Access to the Web Access server.
  • sunw_calendar Access to Sun Calendar server.
  •  

    inetSubscriberHttpURL  

    (ces, 0-many, {}) Contains HTTP-based URL's for the subscribers web page(s).  

    inetSubscriberStatus  

    (cis, 0-1, {client, mta, msma, admin}) Specifies the status of a subscribers account with regard to global access. Allows the Internet Service Provider to temporarily suspend and re-enable access, or to permanently remove access, by the subscriber to the account.

    This attribute takes one of three values. If this attribute is missing from a user entry, the semantics are the same as if the value is active.

    Supported values are:

  • active Account is active. The subscriber may use all accesses granted by inetAuthorizedServices.
  • inactive Account is inactive. The subscriber may not use any services granted by inetAuthorizedServices. Service requests for a user marked as inactive must return transient failures.
  • deleted Account is marked as deleted. The account may remain in this state within the directory pending purging of deleted users. Service requests for a user marked as deleted must return permanent failures.
  • Users marked inactive can be made active, that is, service can be restored by changing the value of this attribute to active. Users marked deleted, may require further actions outside the context of the Directory to re-instate services. For example, if their mailboxes have been archived to tape, or even removed, they might not be available immediately (if at all) if the account is made active.  

    inetMailUser Object Class

    This auxiliary object class is used to overlay LDAP entries defined by inetOrgPerson, and it allows that user to receive and send email. Two other auxiliary object classes are used along with inetMailUser for a user to become a SIMS user: inetMailRouting and inetSubscriber.

    The inetMailUser object class is defined as follows:



    ( 1.3.6.1.4.1.42.2.27.2.2.3
    NAME 'inetMailUser'
    SUP top
    AUXILIARY
    MUST (
    inetMailUserVersion
    )
    MAY (
    datasource $ mailAutoReplyStartDate $
    mailAutoReplyExpirationDate $ mailAutoReplyTimeout $
    mailAutoReplySubject $ mailAutoReplyText $
    mailAutoReplyTextInternal $ mailDeliveryFile $
    mailDeliveryOption $ mailFolderMap $
    mailForwardingAddress $ mailMessageStore $
    mailProgramDeliveryInfo $ mailQuota $ userDefinedAttribute1 $
    userDefinedAttribute2 $ userDefinedAttribute3 $
    userDefinedAttribute4
    )
    )

    TABLE 3-17 shows the optional inetMailUser: Membership attributes.

    TABLE  3-17   Optional inetMailUser: Membership Attributes 
    Attribute
     
    Description
     

    datasource attribute  

    (cis, 0-1, {admin}) Free form text that describes the source or identifier of the provisioning tool.  

    inetMailUserVersion  

    (ces, 1, {admin}) The version tag of this object class. This attribute exists so that LDAP clients supporting Internet email services may retrieve LDAP objects that support a particular revision of schema that they want to support. The starting value of version tags is "1.0", and any change to this object class in the future must increment the inetMailUserVersion attribute value.  

    mailAutoReplyStartDate  

    (generalizedTime, 0-1, {client, mta} Specifies when an MTA should enable automatic replies to incoming email for a user with this attribute set.  

    mailAutoReplyExpirationDate  

    (generalizedTime, 0-1, {client, mta}) Specifies the date on which to disable automatic replies to incoming email for a user with this attribute set.  

    mailAutoReplyTimeout  

    (cis, 0-1, {client, mta}) For a user with mailDeliveryOption set to autorepl, contains the duration, in hours, between successive auto-replies to incoming email from a specific sender. An implementation may choose to treat aliases for the same recipient as distinct (separate) senders. The MTA must not send auto-replies to distribution lists.  

    mailAutoReplySubject  

    (cis, 0-1, {client, mta} The subject line of an auto-reply message. If it contains $SUBJECT then the token is replaced by the subject line of the incoming message.  

    mailAutoReplyText  

    (cis, 0-1, {client, mta} The body of the auto-reply message. If it contains the tokens $SUBJECT or $BODY, then these are replaced by the subject or the body of the inbound message. Use '$' as a line separator.  

    mailAutoReplyTextInternal  

    (cis, 0-1, {client, mta}) The body of the auto-reply message for internal auto-replies. Only those senders within the same domain receive the mailAutoReplyTextInternal. If this attribute contains the tokens $SUBJECT or $BODY, then these are replaced by the subject or the body of the inbound message. Use '$' as a line separator.  

    mailDeliveryFile  

    (ces, 1-many, {mta}) The fully qualified path name of a file to which incoming messages are appended. This file must be accessible for writing from the file system on the user's mail host.  

    mailDeliveryOption  

    (cis, 1-many, {mta}) Specifies one or more delivery options for inbound email to a designated recipient. While inbound messages can be delivered into multiple message stores, message access servers can read messages from only one of them (the mail store from which messages are read is specified using the mailFolderMap attribute).

    The Message Transfer Agent uses this attribute to determine the targets of message delivery for all messages submitted to this individual recipient. The attribute is also used by the inetMailGroup object class.

    The value of this attribute can take one of a specified set of options; the subset valid for individual recipients are described as follows:

  • mailbox - Deliver mail to a vendor specific/high performance Message Store mailbox. The mailFolderMap attribute specifies the mail store from which a Message Access agent would retrieve delivered mail. For example, in the unbundled Sun Internet email product, provisioning a user to read messages from the Sun Message Store would require setting the mailDeliveryOption to mailbox, and the associated mailFolderMap attribute to Sun-MS.
  • shared - Applies only to the inetMailGroup object class.
  • native - Deliver mail to a local sendmail-style file system mailbox (also known as the /var/mail box). If mailDeliveryOption is set to native, then the mailFolderMap attribute must be set to UNIX V7 for the user to read messages from the native message store using the Sun Internet email product's message access services.
  • autoreply - Deliver mail to an auto-reply facility. When this value is set the behavior of the autoreply feature of the MTA will be controlled by the following inetMailUser attributes: mailAutoReplyStartDate, mailAutoReplyExpirationDate, mailAutoReplyTimeout, mailAutoReplySubject, mailAutoReplyText, and mailAutoReplyTextInternal.
  • program - Deliver mail to another program.
  • forward - Forward incoming mail to another RFC-822 compliant address. Refer to the mailForwardingAddress for related information.
  • MTAs must be able to parse options other than those above, although a particular MTA may not be able to support such options. This is so that vendors can use attribute values other than those specified above. In such cases, it is recommended that the name be prefixed with a vendor-specific name, such as a stock symbol.

  • hold - By setting hold, all other mail delivery options are overridden. All incoming messages for this user are sent to the hold channel.
  •  

    mailFolderMap  

    (cis, 0-1, {msma, admin}) The message store for a user's mail folders. Message access servers (imap server, pop server, and so on) use this attribute to determine a user's primary mailbox. An MTA may deliver a message into multiple locations and message access servers have to be told the default mailbox of the user. Supported values in the unbundled Sun Internet email product are:

  • UNIX V7 - sendmail-style mail store. Also known as the Berkeley style /var/mail message store.
  • Sun-MS - Sun Message Store. A high performance message store accessed via POP or IMAP protocols.
  •  

    mailForwardingAddress  

    (cis, 0-many, {mta, admin}) Specifies that the MTA should forward email to the specified Internet email address (RFC822 format). For the MTA to forward the email to these addresses, the mailDeliveryOption attribute should include the value forward in addition to any other delivery options.

    For example, if a user wants to forward mail to another address, then the directory entry for the user has the first block of values for mailForwardingAddress and mailDeliveryOption. However if the user wants to continue receiving mail on their default server and forward a copy of every message to another address then the directory entry would have the second block of values. Example:

    mailDeliveryOption: forward
    mailFolderMap: Sun-MS
    mailForwardingAddress: <RFC-822 address>

    mailDeliveryOption: forward
    mailDeliveryOption: mailbox
    mailFolderMap: Sun-MS
    mailForwardingAddress: <RFC-822 address>
     

    mailMessageStore  

    (ces, 0-1, {mta, admin}) The file system location for a user's INBOX. This applies only when a mailDeliveryOption is set to native. The MTA will deliver incoming messages to this file. The file system location is in the context of the mail host. If this value is missing and the user's mailDeliveryOption is set to native, then a default of /var/mail is used by the server. This attribute specifies only the name of the directory; to derive the full name of the INBOX, the value of the uid attribute is appended to the directory name.  

    mailProgramDeliveryInfo  

    (ces, 0-many, {mta, admin}) Specifies one or more named commands to use in email delivery. The valid named commands must be defined by the MTA for secure operation. These named commands are defined by system administrators of the mail server and are mapped to an executable (with zero or more options) which processes the messages addressed to the user. These programs are installed on the mail server and the MTA must check that the program listed in the user's entry is on the approved list before it starts the program.  

    mailQuota  

    (cis, 0-1, {mta, msma, admin}) Specifies the maximum size (in bytes) of a user's message store. Note that this includes the Inbox and all other mailboxes or folders which the user may have in the message store. A value of minus one (-1) or a missing value denotes no limit on the cumulative size of messages in a user's INBOX and/or folder collection.

    A value of minus two (-2) implies that the system or domain default is used. The default unit of bytes may be overridden by using one of the tags listed below prefixed by the size:

  • <size>K - size is specified in kilo bytes
  • <size>M - size is specified in mega bytes
  • <size>G - size is specified in giga bytes
  • <size>T - size is specified in tera bytes
  •  

    userDefinedAttribute1  

    (cis, 0-many, {}) May be used by the user.  

    userDefinedAttribute2  

    (cis, 0-many, {}) May be used by the user.  

    userDefinedAttribute3  

    (cis, 0-many, {}) May be used by the user.  

    userDefinedAttribute4  

    (cis, 0-many, {}) May be used by the user.  


    inetAdministrator Object Class

    The inetAdministrator object class is used to tag inetSubscribers who have administrative capabilities. The object class name itself serves as the tag, and the inetAdministeredServices attribute is used to identify the type of service and the management scope for when administrative privileges are granted.



    OID - TBD
    Name `inetAdministrator'
    SUP top
    AUXILIARY
    MAY (
    inetAdministeredServices
    )

    TABLE 3-18 shows the optional inetAdministrator attributes.

    TABLE  3-18   Optional inetAdministrator Attributes
    Attribute
     
    Description
     

    inetAdministeredServices  

    (cis, 0-many, {sia,ma,spm,admin}) A multi-valued attribute enumerating the services that a particular administrator is authorized to administer. This attribute is checked by a component before granting administrative access to that component.  


    imCalendarUser Object Class

    Use the imCalendarUser object class to define the calendar server attributes for an inetSubscriber. Use in conjunction with inetorgperson and inetSubscriber.

    (OID -- TBD
    NAME 'imCalendarUser'
    AUXILIARY
    MUST (
    uid $ userPassword $ imCalendarHost $ imCalendarUserVersion
    )
    MAY (
    imCalendarName
    )
    )

    This object class promotes uid (alias userid) and userPassword to required attributes. These attributes are previously defined in inetOrgPerson and person object classes respectively.

    TABLE 3-19 shows the required imCalendarUser attributes.

    TABLE  3-19   Required imCalendarUser Attributes  
    Attribute
     
    Description
     

    uid  

    (cis, 0 - 1, {mta, ma, admin, calendar}) The login identifier of the user. The naming context within which this is required to be unique is the naming context associated with containing DNS domain.  

    userPassword  

    (protected/sunds, 0 - many, {admin, imta, ms, ftp, calendar}) Encrypted string representing the users password. In Sun Directory Server, the supported encryption scheme used is crypt or sunds. For CRAM-MD5 support the encryption scheme used in the SunDS 3.1 should be sunds.  

    imCalendarHost  

    (cis, 0 - 1, {admin, calendar}) Fully qualified host name of the calendar server. This calendar server provides access to the users calendar.  

    imCalendarUserVersion  

    (ces, 0 - 1, {admin}) Version tag of this object class. This is a new attribute added to the object classes. The starting value of version tags is 2.0 and provisioning tools should set this attributes value to 2.0.  

    TABLE 3-20 shows the optional imCalendarUser attributes.

    TABLE  3-20   Optional imCalendarUser Attributes
    Attribute
     
    Description
     

    imCalendarName  

    (cis, 0 - 1, {admin, calendar}) Name of the calendar object associated with the subscriber. This calendar object resides on the calendar server called out in imCalendarHost attribute.  


    Internet Mail Distribution List Object Classes

    Distribution lists are of groups of users and groups to which message can be sent. An email distribution list is represented by an entry in the directory. An entry, which stores distribution list information, consists of attributes drawn from these object classes:

    groupOfUniqueNames - Attributes for describing a collection of user objects. Inherits from top and is a structural object class. All SIMS email distribution lists are provisioned using this object class and the auxiliary object classes inetMailRouting and inetMailGroup.
    inetMailGroup - Attributes for describing an email distribution list. All distribution lists are provisioned using auxiliary object classes and is required for defining a SIMS distribution list.

    A distribution lists entry is extensible and may contain attributes from additional object classes once such object classes have been defined in the directory schema.

    URL for Attributes Containing Addresses
    Several inetMailGroup attributes contain either RFC-822 style mail addresses or 
    distinguished names (DN) of LDAP entries. This is permitted because 
    inetMailGroup is both an LDAP and email entity, and it is appropriate to allow both 
    types of addresses. The attributes errorsTo, moderator, authorizedSubmitter, 
    unauthorizedSubmitter, use URL's [URL] to allow this dual use. When preceded 
    by ldap:/// the entry is used as an LDAP entry with the remaining value treated as the 
    distinguished name of the entry. When preceded by mailto: the entry is interpreted as 
    an RFC-822 address.
    

    A missing prefix of ldap:/// or mailto: for the entry is assumed to be an RFC-822 address.

    The URL has the form:

    ldap:///[<server>[:<port>]]/<baseDN>?[<attrs>]?<scope>?<filter>

    attrs is not applicable for this use and is ignored.
    Default value for server:port is the LDAP server being used by the MTA.
    The baseDN specifies the base for the search; if not present, the default is the baseDN used by the MTA.
    scope defines levels of the directory tree to be searched relative to the specified search base; its default value is base.
    The default for filter is (mail=*), because you want to include only entities in the distribution list that can accept mail.

    groupOfUniqueNames Object Class

    The groupOfUniqueNames object class contains attributes for describing a collection of directory entries (namely users and other groups). This object class inherits from top and is a structural object class. This structural class is used along with inetMailGroup and inetMailRouting to provision Sun Internet Mail Server distribution lists.

    (OID -- 2.5.6.17
    NAME 'groupOfUniqueNames'
    SUPERIOR 'top'
    MUST (
    commonname $ uniqueMember
    )
    MAY (
    businessCategory $ description $ organizationName $
    organizationalUnitName $ owner $ seeAlso
    )
    )

    TABLE 3-21 shows the required groupOfUniqueNames attributes.

    TABLE  3-21   Required groupOfUniqueNames Attributes
    Attribute
     
    Description
     

    commonname  

    (cis, 1 - many, {mta, admin}) A distribution lists common name. This names is used for display only.  

    uniqueMember  

    (dn, 0 - many, {mta, ma, admin}) Distinguished names of members of this list. These users have to be defined in the directory for them to receive email messages sent to the list.  

    owner  

    (dn, 0 - many, {admin,spm}) Distinguished name of the owner(s) of this group. Owners have the rights to modify the group membership.  

    TABLE 3-22 shows the optional groupOfUniqueNames attributes.

    TABLE  3-22   Optional groupOfUniqueNames Attributes 
    Attribute
     
    Description
     

    businessCategory  

    (cis, 0 - many, {}) Business classification for the group.  

    description  

    (cis, 0 - many, { }) Description of the group.  

    organizationName  

    (cis, 0 - many, { }) Name of the organization associated with this group.  

    organizationUnitName  

    (cis, 0 - many, { }) Name of the organizational unit associated with this group.  

    seeAlso  

    (dn, 0 - many, {}) Distinguished name of an entry to consult for further information about the group.  


    inetMailGroup Object Class

    The inetMailGroup object class contains attributes useful for describing an email 
    distribution list. SIMS requires this object class for defining a distribution list. All 
    distribution lists are provisioned using this auxiliary object class, the 
    inetMailRouting auxiliary object class, and the structural object class 
    groupOfUniqueNames. These object classes are overlayed on entries created with the 
    groupofUniqueNames object class. This object class is defined as follows.
    

    ( 1.3.6.1.4.1.42.2.27.2.2.2
    NAME 'inetMailGroup'
    SUP top
    AUXILIARY
    MUST (
    inetMailGroupVersion
    )
    MAY (
    errorsTo $ joinable $ moderator $ multiLineDescription $
    requestsTo $ seeAlso $ suppressEmailError $ userPassword $
    authorizedDomain $ authorizedSubmitter $ dataSource $
    inetGroupStatus $ expandable $ mailDeliveryFile $
    mailDeliveryOption $ mailProgramDeliveryInfo $
    rfc822Mailmember $
    unauthorizedDomain $ unauthorizedSubmitter $ membershipFilter
    )
    )

    The inetMailGroup object class attributes are grouped into the following categories.

    Mail Processing Attributes

    Several inetMailGroup attributes are key to determining how the mail is processed by the MTAs. Additionally, inetMailRouting determines how messages are routed through the mail system. One attribute indicates the version of the object class itself.

    TABLE 3-23 shows the required inetMailGroup attributes.

    TABLE  3-23   Required inetMailGroup Attributes
    Attribute
     
    Description
     

    inetMailGroupVersion  

    (ces, 0-1, {admin}) Version tag of this object class. This attribute must be set when an entry is created using this object class. The starting (current) value of version tag is 1.0.  

    TABLE 3-24 shows the optional inetMailGroup attributes.

    TABLE  3-24   Optional inetMailGroup Attributes  
    Attribute
     
    Description
     

    errorsTo  

    (ces, 0-1, {admin, MTA}) Indicates the address to which list errors are sent. When a list is expanded, the original return address in the envelope is replaced by this address. The intent is for lists errors to be sent to the owner of the list, rather than the message originator, who generally has no control over the contents of the list.

    The Requirements for Internet Hosts [RFC1123] specify that all MTAs should support a mechanism where a list is expanded, but with the original return address preserved. This is referred to by the RFC as "aliasing." This can be achieved by omitting the errorsTo attribute. This is different from the rfc822MailAlias attribute, which is an alternative name for a single user or list, and does not cause any kind of address list expansion.  

    requestsTo  

    (ces, 0-many, {mta, admin}) Distribution list addresses are specified using the mail and rfc822MailAlias attributes of the inetMailRouting object class. Addresses of this form may be represented as <addr_local_part>@<domain_part>.

    Messages sent to an address constructed by adding "-request" to the <addr_local_part> of the distribution list address will be delivered (forwarded) to the address(es) specified in the requestsTo attribute.

    For example, a distribution list with the following addresses:

    mail: football@sun.com

    rfc822MailAlias: football-fans@sun.com

    requestsTo: mailto:john.doe@isp.net

    would forward messages addressed to football-request@sun.com and football-fans-request@sun.com to john.doe@isp.net.  

    suppressEmailError  

    (cis, 0-1, {mta, admin}) Suppress delivery of error messages to senders. If missing or FALSE, errors are sent back to the sender. If TRUE then errors are not sent back to the sender or to the address specified in errorsTo.  

    mailDeliveryFile  

    (ces, 0-many, {mta, admin}) Fully qualified path of a file name to which all messages submitted to this distribution list are appended. This path is on the local file system of the mailHost of this distribution list.  

    mailDeliveryOption  

    (cis, 0-many, {mta, admin}) Specifies one or more delivery options for inbound email to a designated recipient. While inbound messages can be delivered into multiple message stores, message access servers can read messages from only one of them (the mail store from which messages are read is specified using the mailFolderMap attribute).

    The Message Transfer Agent uses this attribute to determine the targets of message delivery for all messages submitted to this distribution list. The attribute is also used by the inetMailUser object class. The value of this attribute can take one of a specified set of options; the subset valid for distribution lists are described as follows:

  • mailbox - Applies only to the inetMailUser object class.
  • shared - Deliver mail to a shared mailbox in the Sun Message Store. This is used for setting up a shared mailbox for a distribution list. Access to the shared mailbox is enabled for those distribution list members whose mailhost attribute is the same as the mailhost attribute of the list. All other members of the list receive a copy of the submitted messages in their incoming mailbox.
  • native - Applies only to the inetMailUser object class.
  • autoreply - Applies only to the inetMailUser object class.
  • program - Deliver mail to a program. For security reasons, the value of this attribute is restricted to authorized programs. The list of such authorized programs may only be modified by the email system administrator; values are specified via the mailDeliveryProgramInfo attribute. The program option is also valid for the inetMailUser object class.
  • forward - Applies only to the inetMailUser object class.
  • file - Append incoming mail to a file. For this option to have any effect, mailDeliveryFile must point to a valid file, accessible from the local machine, for which the message transfer agent has write privileges. The file option is also valid for the inetMailUser object class.
  • MTAs must be able to parse options other than those above, although a particular MTA may not be able to support such options. This is so that vendors may use attribute values other than those specified above. In such cases, it is recommended that the name be prefixed with a vendor-specific name, such as a stock symbol.  

    mailProgramDeliveryInfo  

    (ces, 0-many, {mta, admin}) Specifies one or more programs to which inbound messages will be delivered if the mailDeliveryOption contains a value of program. If the mailDeliveryOption does not contain a value of program, this attribute is ignored. Valid program names are defined as part of MTA configuration and the programs are installed on the server by the system administrator(s).  

    Mail List Administration Attributes

    The following defines the distribution lists attributes used by administration programs.

    TABLE 3-25 shows the optional inetMailGroup: Mail List Administration attributes.

    TABLE  3-25   Optional inetMailGroup: Mail List Administration Attributes  
    Attribute
     
    Description
     

    joinable  

    (cis, 0-1, {admin}) Used by administrative applications to permit members to add themselves as a member of the distribution list. Accepted values are TRUE and FALSE. Missing attribute/value pair is functionally equal to joinable=FALSE.  

    multiLineDescription  

    (cis, 0-many, {admin, client}) Multi-line description of the distribution list.  

    seeAlso  

    (dn, 0-many, {admin, client}) Distinguished name of an entry to consult for further information.  

    expandable  

    (cis, 0-1, {mta, admin}) Determines whether the distribution list is expandable or not, that is, if somebody can list the addresses of the members of the distribution list. For example, if set to TRUE, the SMTP command expn <dl_name> returns the RFC-822 address of the members of this distribution list. When expandable=TRUE, the list must be expanded on the MTA only on the mail server specified in the mailHost attribute.  

    datasource  

    (cis, 0-1, {admin}) Free-form text that describes the original source or identifier of the provisioning tool.  

    inetMailGroupStatus  

    cis, 0-1, {client, mta, msma, admin}) Specifies the status of a distribution list. The intent of this attribute is to allow the Internet Service Provider to temporarily suspend and re-enable the distribution list. This attribute takes one of three values. If this attribute is missing from a group entry, the semantics are the same as if the value is active.

    Supported values are:

  • active
  • inactive
  • deleted
  •  

    Mail Restriction Attributes

    Several inetMailGroup attributes are key to determining who can submit messages to the distribution list. This proposal allows restrictions based on domains and addresses. One may call out the list of authorized domains/submitters or unauthorized domains/submitters.

    Attributes that restrict who can submit messages to the list fall in two categories:
    
    authorized - Users/domains who are explicitly allowed to submit messages to the distribution list.
    unauthorized - Users/domains who are explicitly disallowed to submit messages to the distribution list.
    Additionally, by specifying a moderator, the MTA can be directed to deliver submitted 
    messages only to the moderators, unless the message is submitted by one of the 
    moderators, in which case it is delivered to all distribution list members.
    
    A distribution list that does not have authorizedDomain, unauthorizedDomain, 
    authorizedSubmitter, and unauthorizedSubmitter attributes in the LDAP 
    entry for the distribution list is treated as an unrestricted list and anybody can submit 
    messages to this list.
    
    If any of the authorizedDomain, unauthorizedDomain, 
    authorizedSubmitter, and unauthorizedSubmitter attributes appear in the 
    distribution list LDAP entry, the list is considered a restricted distribution list.
    
    The following precedence rules are followed by the MTA when deciding whether it 
    should accept the message for further processing or not (From: address is used in all 
    the rules when looking for match):
    
    if unauthorizedDomain exists in the LDAP entry, then sender's domain must not match the domain(s) listed in the unauthorizedDomain attribute.
    if authorizedDomain attribute exists in the LDAP entry, then sender's domain must match the domain(s) listed in the authorizedDomain attribute.
    if unauthorizedSubmitter attribute exists in the LDAP entry, the sender's address must not match either the mail attribute or rfc822MailAlias attribute of any DN listed in the form of an ldap:///<DN> address and must not match the RFC-822 address listed in the form of a mailto:<RFC-822> address.
    if authorizedSubmitter attribute exists in the LDAP entry, the sender's address must match either the mail attribute or rfc822MailAlias attribute of any DN listed in the form of an ldap:///<DN> address and must not match the RFC-822 address listed in the form of a mailto:<RFC-822> address.

    TABLE 3-26 shows the optional inetMailGroup: Mail Restriction attributes.

    TABLE  3-26   Optional inetMailGroup: Mail Restriction Attributes  
    Attribute
     
    Description
     

    moderator  

    (ces, 0-many, {mta, admin}) Address of the moderator(s) of this distribution list. All messages submitted to this distribution list are delivered to the moderator(s) listed in directory entry. The moderator(s) then resubmits messages to the list for them to be delivered to the list members. The From: header of the resubmitted message must contain one of the addresses listed in the moderator(s) list. If the listed moderator is a distinguished name then the From: address must match the value of mail or rfc822MailAlias attribute of the LDAP entry specified by the DN.  

    authorizedDomain  

    (cis, 0-many, {mta, admin} Domain name from which users are authorized to post to the distribution list. The wildcard character is "*". The value of this attribute should conform to RFC-822 specification. Using the wildcard character one may optionally replace a sub-domain to authorize the entire DNS hierarchy below a given top or sub-domain.

    A distribution list entry with an empty authorizedDomain allows senders from all domains to post messages to the list, except if they are called out in the following attributes: unauthorizedDomain, authorizedSubmitter, or unauthorizedSubmitter.  

    authorizedSubmitter  

    (ces, 0-many, {mta, admin}) List of all addresses authorized to submit messages to this distribution list. An open list does not restrict submissions to the list and does not contain a list of authorized/unauthorized submitters or a list of authorized/unauthorized domains. This attribute specifies the list of addresses permitted to submit messages to the distribution list. The address in From: header must match one of the addresses listed here before the MTA will deliver the message to a list of members.  

    unauthorizedDomain  

    (cis, 0-many, {mta, admin}) This attribute may be used in conjunction with unauthorizedSubmitter to specify sender restrictions. The domain of the sender's address is compared against those in this attribute. If there are no entries in this attribute, then all domains are allowed. However, if authorizedDomain has a list of domains then messages from all domains other than those in the authorizedDomain list are rejected.

    The value should conform to RFC-822 specification. The wildcard character for any field in the address is "*".  

    unauthorizedSubmitter  

    (ces, 0-many, {mta, admin}) Specified using the notation developed in section 4.1. Addresses of users not permitted to post messages to the list. This attribute may be used in conjunction with authorizedSubmitter to specify sender restrictions. The sender's address is compared against those in this attribute. If there is a match then the message is rejected. If there are no entries in this attribute then all senders are allowed. However, if authorizedSubmitter has a list of addresses, then messages from those senders are accepted.  

    Membership Attributes

    Several inetMailGroup attributes are key to determining who can submit messages to the distribution list. This proposal allows restrictions based on domains and addresses. One may call out the list of authorized domains/submitters or unauthorized domains/submitters. Additionally, the distribution list may be marked as moderated by specifying a moderator for the distribution list.

    The members of an alias or distribution list are made up of the union of the users specified in the uniqueMember attribute of the groupOfUniqueNames object class as well as the rfc822MailMember and membershipFilter attributes of the inetMailGroup object class.

    TABLE 3-27 shows the optional inetMailGroup: Membership attributes.

    TABLE  3-27   Optional inetMailGroup: Membership Attributes
    Attribute
     
    Description
     

    rfc822MailMember  

    (cis, 0-many, {mta, admin}) Membership of distribution list may be specified using the uniqueMember attribute of the object class groupOfUniqueNames. However, since the syntax of the uniqueMember attribute is Distinguished Name, only users who are defined in the directory would be supported. The rfc822MailMember attribute is used to define members of a distribution list that do not have LDAP entries in the directory.  

    membershipFilter  

    (ces, 0-many, {mta, admin}) This attribute allows us to specify membership in the group using an LDAP search URL. This allows the creation of a group based on search of the directory for entries that match the given filter, rather than explicitly calling out each member individually.  


    Internet Mail Routing Object Classes

    To avoid duplicating information, the inetMailRouting object class contains the required routing information common to all Internet email recipients. This class is required for entries describing either email users (inetMailUser) or email groups (inetMailGroup).

    Note the distinction between a relay Message Transfer Agent (MTA) that relays a message and a destination MTA responsible for the final delivery of a message. A relaying MTA only needs to examine the mailHost attribute to determine the destination MTA. A destination MTA examines the mail and rfc822MailAlias attributes to determine the INBOX to which the message should be delivered.


    inetMailRouting Object Class

    The inetMailRouting object class is used to describe the mail sorting properties of mail recipients. This is used for both user and distribution lists. The object class is defined as follows.

    ( 1.3.6.1.4.1.42.2.27.2.2.1
    NAME 'inetMailRouting'
    SUP top
    AUXILIARY
    MUST (
    mail $ mailHost
    )
    MAY (
    rfc822MailAlias
    )
    )

    TABLE 3-28 shows the required inetMailGroupRouting attributes.

    TABLE  3-28   Required inetMailRouting Attributes  
    Attribute
     
    Description
     

    mail  

    (cis, 1, {mta, client, admin}) The user or group's advertised email address in form specified by RFC-822's addr-speck syntax [RFC822]. The user or group may have additional mail aliases listed in the rfc822MailAlias attribute. The value in this attribute must be unique for all mail and rfc822MailAlias attributes in a domain.  

    mailHost  

    (cis, 0-1, {mta, msma, client, admin}) Host name of the user's mail server. This is the fully qualified official host name of the mail server where a user's official Inbox is located. In the case of a distribution list, this is the fully qualified host name of the MTA where the distribution list is expanded.  

    rfc822MailAlias  

    (cis, 0-many, {mta, msma, client, admin) Stores alternate email aliases (RFC-822 format), if any, defined for the user or distribution list. Mail to any of the listed rfc822MailAlias attributes of an LDAP entry will be delivered to the user or group associated with that entry. The value in this attribute must be unique for all mail and rfc822MailAlias attributes in a domain.  


    Object Classes for Services

    SIMS services are represented in the directory by a entry defined with an inetService object class.

    The algorithm for determining the distinguished name of this entry is to begin with an empty distinguished name (DN) and then attach Relative Distinguished Names (RDN) for each component of the domain, most significant first. Each of these RDNs is a single AttributeTypeAndValue, where the type is the attribute DC and the value is an IA5 string containing the domain name component. Finally, the DN gets the root suffix of the DC tree as a suffix. For example, if the root suffix of the DC tree is o=internet and the fully qualified DNS name of the mail server is mail.isp.net, the DN of the entry is dc=mail,dc=isp,dc=net,o=internet.

    inetService - attributes for describing a SIMS service. Entries with these attributes are created under the ou=Service container of either the DC tree or OSI tree. The naming attribute of an inetService node is the version of the service.

    inetService Object Class

    The inetService object class is used to represent state information for and about specific services. There may also be service entries under the Service subnode of any SIMS domain node.

    The naming attribute for this object class is inetVersion. Nodes created with this object class are defined under the ou=<service_tag>,ou=Service, container of the domain node.

    The following service_tag values are supported in this release:

    imta - Message Transfer Agent service
    msma - Message Access and message store
    admin - Administrative server
    spm - Security Policy Manager
    provisioning - Subscriber provisioning
    SUNWftp - File Transfer Protocol
    SUNWsws - Sun Web Server


    (OID -- TBD
    NAME 'inetService'
    SUPERIOR 'top'
    STRUCTURAL
    MUST (
    commonname $ inetVersion
    )
    MAY (
    inetPrivateData $ mail $ userPassword
    )
    )

    TABLE 3-29 shows the required inetService attributes.

    TABLE  3-29   Required inetService Attributes 
    Attribute
     
    Description
     

    commonName  

    (cis, 1-many) The name of the service.  

    inetVersion  

    (ces, 1) The version of the named service represented by this entry. This is the naming attribute for this object class.  

    inetPrivateData  

    (ces, 1) Reserved for use by the Sun Internet Administrator to store password data for the service represented by the entry.  

    mail  

    (cis, 0 - many) Specifies the email address, in RFC 822 format, to be used for status messages from this service. (Alias: preferredRfc822Originator).  

    userPassword  

    (protected, 0 - many) The password for the entry represented by this object class  




    Copyright© 1999 Sun Microsystems, Inc. All Rights Reserved.