Understanding Active Directory, Part II
The two primary Active Directory components are its logical and physical structures, which respectively involve the organization and communication of objects. A third component, known as the schema, defines objects that make up the Active Directory. The discussion of the schema is included in the logical structure section for the sake of convenience.
Logical Structure
The base logical components of the Active Directory are objects and their associated attributes. Object classes are merely definitions of the object types that can be created in the Active Directory. The schema is the Active Directory mechanism for storing object classes. It also permits the addition of other object classes and associated attributes.
Active Directory objects are organized around a hierarchical domain model. This model is a design facility that permits the logical arrangement of objects within administrative, security, and organizational boundaries. Each domain has its own security permissions and unique security relationships with other domains. The Active Directory utilizes multi-master replication to communicate information and changes between domains.
The following sections provide an overview of domain model building blocks: domains, domain trees, forests, organizational units, and the schema.
Domains
The Active Directory manages a hierarchical infrastructure of networked computers with the domain as the foundation. A domain comprises computer systems and network resources that share a common logical security boundary. It can store more than 17 terabytes within the Active Directory database store. Although a domain can cross physical locations, all domains maintain their own security policies and security relationships with other domains. They are sometimes created to define functional boundaries such as an administrative unit (for example, marketing versus engineering). They are also viewed as groupings of resources or servers that utilize a common domain name, known as a namespace. For example, all servers or resources in the EntCert.com namespace belong to a single domain.
In very simple terms, every domain controller has the following information as part of its Active Directory:
Data on every object and container object within the particular domain
Metadata about other domains in the tree (or forest) to provide directory service location
Listing of all domains in the tree and forest
Location of the server with the Global Catalog
Domain Trees
When multiple domains share a common schema, security trust relationships, and a Global Catalog, a domain tree is createddefined by a common and contiguous namespace. Thus, for example, all domains with the ending namespace of EntCert.com belong to the EntCert domain tree. A domain tree is formed through the expansion of child domains such as Sales.EntCert.com or Research.EntCert.com. In this example, the root domain is EntCert.com.
The first created domain, known as the root domain, contains the configuration and schema data for the tree and (as we shall see) the forest. A tree structure is formed by adding child domains. There are a number of reasons for creating multiple domains in a treefor example, some are the following:
Discretely managing different organizations or providing unit identities
Enforcing different security boundaries and password policies
Requiring a better method of controlling Active Directory replication
Better handling of a very large number of managed objects
Decentralizing administration
A single domain contains a complete Active Directory partition for all of its objects. It is also, by definition, a complete domain tree. As child domains are added to the domain tree, Active Directory partitions are replicated to one or more domain controllers within each of the domains.
Domain Forests
Trust relationships can be formed between domain trees with different namespaces. When this occurs, a domain forest is created, which allows the enterprise to have different domain names, such as "entcert.com" and "unint.com."
All trees within the forest share a number of common attributes, including a Global Catalog, configuration, and schema. A forest is simply a reference point between trees, and does not have its own name. Forests utilize the Kerberos security technology to create transitive trust relationships between trees.
Organizational Units
Domains and child domains can be internally divided into administrative substructures known as organizational units (OUs), each of which can compartmentalize more than 10 million objects. As container objects, OUs can be nested within other OUs. For example, the marketing division may be defined as an organizational unit, and product groups within this division may be defined as suborganizational units. A domain usually comprises one or more organizational units arranged hierarchically. Objects can be organized within organizational units for administrative purposes. The OU acts as a container that lists the object contents, including users, computer systems, and devices such as printers.
An organizational unit is a logical subset defined by security or administrative parameters. In this administrative arrangement, the specific functions of the system administrator can also be easily segmented or delegated with the organizational unit level. From a system administrator's vantage point, this is very important to understand. It is possible to delegate system management responsibility solely to certain activities within a domain, OU, or child subsidiary OU. For example, a person within an organizational unit can be granted authority to manage print and file server functions, but be denied authority to add, modify, or delete user accounts.
Organizational units are subunits with a domain or child domain.
Trees and Forest Scaling and Extensibility
The Active Directory scales across environments ranging from a single server to a domain of one million users or more. The basis of this scaling is the peer-to-peer directory service relationship that is established between domains. Every domain server (known as a domain controller) is provided updated information on Active Directory objects. Consistency across domains is ensured through the automatic replication services. To avoid extremely large and unwieldy directories, the Active Directory creates tree partitions that comprise small portions of the entire enterprise directory. However, every directory tree has sufficient information to locate other objects in the enterprise. In addition to greater efficiency, objects that are more frequently used are placed in the local store for more rapid access. A trust relationship is automatically established between the domains in the same tree, so it is possible to transparently locate resources anywhere in the tree or forest enterprise where the Active Directory resides.
Schema
The schema is simply a framework of definitions that establishes the type of objects available to the Active Directory. These definitions are divided into object classes, and the information that describes the object is known as its attributes. There are two types of attributes: those that must exist and those that may exist. For example, the schema defines a user object class as having the user's name as a required attribute; the user's physical location or job description is optional. Attributes are used to further help distinguish one object from another. They include Object Name, Object Identifier (OID), Syntax, and Optional Information.
The schema is stored within the Active Directory database file Ntds.dit. Object definitions are stored as individual objects, so the Directory can treat schema definitions in the same way it treats other objects. The default schema is created with the first installation of the Active Directory. It contains common objects and properties for items such as users, groups, computers, printers, and network devices. It also establishes the default Active Directory structure that is used internally.
As an extensible component, new object classes may be dynamically added to the current schema, and old object classes can be modified. It is not possible to modify or deactivate system classes and attributes.
NOTE
Schema data should not be confused with configuration data, which provides the structural information for the Active Directory. The schema provides information about what objects and attributes are available to the Directory. Configuration information maintains the Directory structure that represents the relationship between the actual objects, and indicates how to replicate this structure between domain controllers.
The schema is accessible only to the Administrators and Schema Admins user groups by default. It is managed through the Active Directory Schema snap-in tool. (The Active Directory Schema snap-in becomes available only after the adminpak application is installed from the Windows 2000 Server CD within the I386 folder.) Active Directory schema elements are dynamic and available to applications after the initial startup of the system. New attributes and classes can be added to the schema to provide dynamic extensibility to the Active Directory.
The schema object container attaches definitions to the directory tree. It is typically represented as a child of the directory root. In turn, each instance has its own individual schema.
The schema operations master domain controller manages the structure and content of the schema. It replicates schema information to the other domain controllers in the forest. Every domain controller loads a copy of the schema in a RAM-based cache, ensuring rapid access to currently used object and attribute definitions. If changes occur in the schema, the cache is refreshed.
In the third article of this series, we examine the physical structure of active directory.