|
||
|
|
This chapter provides an overview of some of the basic concepts of the directory schema, and lists the files in which the schema is described. It describes object classes, attributes and object identifiers (OIDs), and briefly discusses extending server schema and schema checking.
This chapter contains the following sections:
- Schema Definition
![]()
- Schema Supported by Directory Server 6.x
![]()
- Object Identifiers (OIDs)
![]()
- Extending Server Schema
![]()
- Schema Checking
![]()
The directory schema is a set of rules that defines how the data can be stored in the directory. The data is stored in the form of directory entries. Each entry is a set of attributes and their values. Each entry must have an object class. The object class specifies the kind of object the entry describes and defines the set of attributes it contains. The schema defines the type of entries allowed, their attribute structure and the syntax of the attributes.The schema can be modified and extended if it does not meet your required needs.
To find detailed information about object classes, attributes, and how the Netscape Directory Server (Directory Server) uses the schema, refer to the Netscape Directory Server Deployment Guide.
In LDAP, an object class defines the set of attributes that can be used to define an entry. The LDAP standard provides some basic types of object classes, including:
- Groups, including unordered lists of individual objects or groups of objects.
![]()
- Locations, such as the country name and description.
![]()
- Organizations.
![]()
- People.
![]()
- Devices.
![]()
Required and Allowed Attributes
Every object class includes a number of required attributes and of allowed attributes. Required attributes include the attributes that must be present in entries using the object class. All entries require the
objectClassattribute, which defines the object classes assigned to the entry.Allowed attributes include the attributes that may be present in entries using the object class.
Example: Object Class = person
An entry can have more than one object class. For example, the entry for a person is defined by the person object class, but may also be defined by attributes in the
inetOrgPerson,groupOfNames, andorganizationobject classes.The server's object class structure determines the list of required and allowed attributes for a particular entry. For example, a person entry is usually defined with the following object class structure:
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgpersonIn this structure, the
inetOrgpersoninherits from theorganizationalPersonand person object classes. Therefore, when you assign theinetOrgpersonobject class to an entry, it automatically inherits the required and allowed attributes from the superior object class.Directory data is represented as attribute-value pairs. Any piece of information in the directory is associated with a descriptive attribute.
For instance, the
commonName, orcn, attribute is used to store a person's name. A person named Jonas Salk can be represented in the directory asEach person entered in the directory can be defined by the collection of attributes in the
inetorgpersonobject class. Other attributes used to define this entry could include:givenname: Jonas
surname: Salk
mail: jonass@example.comEach attribute has a syntax definition that describes the type of information provided by the attribute.
Attribute syntax is used by the Directory Server to perform sorting and pattern matching.
Table 1-1 lists the different syntax methods that can be applied to attributes, and gives an OID and a definition for each syntax method.
Single-Valued and Multi-Valued Attributes
By default, most attributes are multi-valued. This means that an entry can contain the same attribute with multiple values. For example,
cn,telandobject classare all attributes that can have more than one value. Attributes that are single-valuedthat is, only one instance of the attribute can be specifiedare noted as such. For example,uidNumbercan only have one possible value.Schema Supported by Directory Server 6.x
The schema provided with Directory Server 6.x is described in a set of files stored in the serverRoot/slapd-serverID/config/schema directory.
You can modify the schema by creating new object classes and attributes. These modifications are stored in a separate file called
99user.ldif. You should not modify the standard files provided with the Directory Server, because you incur the risk of breaking compatibility with other Netscape products, or of causing interoperability problems with directory servers from vendors other than Netscape Communications Corporation.For more information about how the Directory Server stores information and suggestions for planning directory schema, refer to the Netscape Directory Server Deployment Guide.
The following tables list the schema files that are provided with Directory Server. Table 1-2 lists the schema files that are used by the Directory Server. Table 1-3 lists the schema files that are used by other Netscape products.
Table 1-2 Schema Files used by Directory Server
Table 1-3 Schema Files used by other Netscape Products
Schema for Netscape Mission Control Desktop - Configuration.
Schema for Netscape Mission Control Desktop - Location Independence.
Object identifiers (OIDs) are assigned to all attributes and object classes to conform to the LDAP and X.500 standards. An OID is a sequence of integers, typically written as a dot-separated string. When no OID is specified, the Directory Server automatically uses ObjectClass_name-oid and attribute_name-oid.
The base OID for the Directory Server is
All Netscape-defined attributes have the base OID of
All Netscape-defined object classes have the base OID of
For more information about OIDs or to request a prefix for your enterprise, please go to the Internet Assigned Number Authority (IANA) web site at
http://www.iana.org/.
The Directory Server schema includes hundreds of object classes and attributes that can be used to meet most of your requirements. This schema can be extended with new object classes and attributes that meet evolving requirements for the directory service in the enterprise.
When adding new attributes to the schema, a new object class should be created to contain them (adding a new attribute to an existing object class can compromise the Directory Server's compatibility with existing LDAP clients that rely on the standard LDAP schema and may cause difficulties when upgrading the server).
For more information about extending server schema, refer to the Netscape Directory Server Deployment Guide.
You should run Directory Server with schema checking turned on.
The schema checking capability of Directory Server checks entries when you add them to the directory or when you modify them, to verify that:
- Object classes and attributes used in the entry are defined in the directory schema
![]()
- Attributes required for an object class are contained in the entry
![]()
- Only attributes allowed by the object class are contained in the entry
![]()
Schema checking also occurs when importing a database using LDIF. For more information, refer to the Netscape Directory Server Administrator's Guide.
© 2001 Sun Microsystems, Inc. Portions copyright 1999, 2002-2003 Netscape Communications Corporation. All rights reserved.
Read the Full Copyright and Thrid-Party Acknowledgments.
Last Updated October 30, 2003