- Evolution of Directory Services
- Active Directory Development
- Active Directory Structure
- Active Directory Components
- Domain Trusts
- Organizational Units
- Groups in an Active Directory Environment
- Active Directory Replication
- DNS in Active Directory
- Active Directory Security
- Active Directory Changes in Windows .NET Server 2003
- Summary
- Best Practices
Active Directory Components
The main components of Active Directory were designed to be highly configurable and secure. Active Directory and all it contains are physically located in a database file but are composed of a wide assortment of objects and their attributes. Many of these characteristics are familiar to those acquainted with other directory services products, but there are some new additions as well.
Active Directory Loosely Based on X.500
Active Directory loosely follows, but does not exactly conform to, the X.500 directory services information model. In a nutshell, X.500 defines a directory service through a distributed approach defined by a Directory Information Tree (DIT). This logically divides a directory service structure into the now familiar servername.subdomainname.domainname.com layout. In X.500, directory information is stored across the hierarchical layout in what are called Directory System Agents (DSAs). Microsoft designed Active Directory around many of the basic principles of the X.500 definition, but AD itself is not compatible with X.500 implementations, as X.500 follows an OSI model that is inefficient under the TCP/IP implementation that Active Directory follows.
Schema
The Active Directory schema is a set of definitions for all object types in the directory and their related attributes. The schema determines the way that all user, computer, and other object data are stored in AD and configured to be standard across the entire Active Directory structure. Secured by the use of Discretionary Access Control Lists (DACLs), the schema controls the possible attributes to each object within Active Directory. In a nutshell, the schema is the basic definition of the directory itself and is central to the functionality of your domain environment. Care should be taken to delegate schema control to a highly selective group of administrators because schema modification affects the entire AD environment.
Schema Objects
Objects within the Active Directory structure such as Users, Printers, Computers, and Sites are defined in the schema as objects. Each object has a list of attributes that define it and that can be used to search for that object. For example, a User object for the employee named Weyland Wong will have a FirstName attribute of Weyland and a LastName attribute of Wong. In addition, there may be other attributes assigned, such as departmental name, e-mail address, and an entire range of possibilities. Users looking up information in Active Directory can make queries based on this information, for example, searching for all users in the Sales department. To give you an idea how many attributes Active Directory has, a fresh install will assign more than 1,000 attributes per object.
Extending the Schema
One of the major advantages to the Active Directory structure is the ability to directly modify and extend the schema to provide for custom attributes. A common attribute extension occurs with the installation of the latest version of Microsoft Exchange, which extends the schema, effectively doubling it in size. An upgrade from Windows 2000 Active Directory to Windows .NET Active Directory also extends the schema to include attributes specific to Windows .NET.
Schema Modification with Active Directory Service Interfaces
An interesting method of actually viewing the nuts and bolts of the Active Directory schema is by using the Active Directory Service Interfaces (ADSI) utility. This utility was developed to simplify access to the Active Directory and can also view any compatible foreign LDAP directory. The ADSI utility, shown in Figure 4.4, enables you to view, delete, and modify schema attributes. Great care should be taken before schema modifications are undertaken because problems in the schema can be difficult to fix.
Figure 4.4 Viewing and editing the Active Directory schema using the ADSI edit utility.Lightweight Directory Access Protocol
The Directory Service Protocol that is utilized by Active Directory is based on the Internet-standard Lightweight Directory Access Protocol defined by RFC-1777. LDAP allows queries and updates to take place in Active Directory. Objects in an LDAP-compliant directory must be uniquely identified by a naming path to the object. These naming paths take two forms: distinguished names and relative distinguished names.
Distinguished Names
The distinguished name of an object in Active Directory is represented by the entire naming path that the object occupies in Active Directory. For example, the user named Gene Bondoc can be represented by the following distinguished name:
The CN component of the distinguished name is the common name, which defines an object within the directory. The OU portion is the organizational unit in which the object belongs. The DC components define the DNS name of the Active Directory domain.
Relative Distinguished Names
The relative distinguished name of an object is basically a truncated distinguished name that defines the object's place within a set container. For example, take a look at the following object:
This object would have a relative distinguished name of OU=Marketing. The relative distinguished name in this case defines itself as an organizational unit within its current domain container.
Multi-Master Replication with Domain Controllers
As in NT 4.0, Active Directory uses domain controllers (DCs) to authenticate users. However, the primary domain controllers and backup domain controllers (BDCs) have been replaced with the concept of multiple domain controllers that each contain a master read/write copy of domain information. Changes that are made on any domain controller within the environment are replicated to all other domain controllers in what is known as multi-master replication.
Global Catalog and Global Catalog Servers
The global catalog is an index of the Active Directory database that contains a partial copy of its contents. All objects within the AD tree are referenced within the global catalog, which allows users to search for objects located in other domains. Not every attribute of each object is replicated to the global catalogs, only those attributes that are commonly used in search operations, such as first name, last name, and so on.
Global catalog servers, commonly referred to as GCs or GC/DCs, are Active Directory domain controllers that contain a copy of the global catalog. It is wise to locate a minimum of one global catalog server in each physical location because the global catalog must be referenced often by clients, and the traffic across slower WAN links would limit this traffic. In addition, technologies such as Exchange 2000 need fast access to global catalog servers for all user transactions, making it very important to have a global catalog server nearby.
Often, a larger organization will employ the use of multiple domain controllers and multiple global catalog servers in each large location, which distributes load, provides redundancy, and locates resources where they are needed. Choosing the right blend of global catalog servers and domain controllers is vital to the proper functionality of your Active Directory environment.
Operations Master Roles
Most domain controller functionality in Windows 2000 and Windows .NET Server 2003 was designed to be distributed, multimaster-based. This effectively eliminated the single point of failure that was present with Windows NT PDCs. However, five functions still require the use of a single server because their functionality makes it impossible to follow a distributed approach. These Operations Master (OM, or also known as Flexible Single Master Operations, or FSMO) roles are outlined as follows:
Schema MasterThere is only one writeable master copy of the AD schema in a single AD forest. It was deliberately designed this way to limit access to the schema and to minimize potential replication conflicts. There can be only one schema master in the entire Active Directory forest.
Domain Naming MasterThe domain naming master is responsible for the addition of domains into the Active Directory forest. This OM role must be placed on a global catalog server because it must have a record of all domains and objects to perform its function. There can be only one domain naming master in a forest.
PDC EmulatorThe PDC Emulator does exactly what its name implies: It handles down-level clients by performing functionality previously handled by the NT primary domain controller. This functionality is not necessary when operating in Windows 2000 or Windows .NETonly modes (native modes). It is important to note that if the server running the PDC Emulator goes down, any down-level clients will have trouble with domain functions (just as though an NT PDC went down). There is one PDC Emulator FSMO role per Active Directory domain.
RID MasterAll objects within Active Directory that can be assigned permissions are uniquely identified through the use of a Security ID (SID). Each SID is composed of a domain SID, which is the same for each object in a single domain, and a Relative ID (RID), which is unique for each object within that domain. When assigning SIDs, a domain controller must be able to assign a corresponding RID from a pool that it obtains from the RID master. When that pool is exhausted, it requests another pool from the RID master. If the RID master is down, you may not be able to create new objects in your domain if a specific domain controller runs out of its allocated pool of RIDs. There is one RID master per Active Directory domain.
Infrastructure MasterThe infrastructure master manages references to domain objects not within its own domain. In other words, a DC in one domain contains a list of all objects within its own domain, plus a list of references to other objects in other domains in the forest. If a referenced object changes, the infrastructure master handles this change. Because it deals with only referenced objects and not copies of the object itself, the infrastructure master must not reside on a global catalog server in multiple domain environments. The only exceptions to this are if every domain controller in your domain is a global catalog server or if you are in a single-domain environment. In the first case, there is no need to reference objects in other domains because full copies are available. In the second case, the infrastructure master role is not utilized because all copies of objects are local to the domain.
NOTE
It is always good practice to locate your infrastructure master OM role on a domain controller without a copy of the global catalog, regardless of whether you are a single domain or not. This best practice stems from the fact that it is always a possibility that additional domains will be added to a forest, and setting this role up properly will help to eliminate confusion if this situation occurs. In addition, this will clear up some rather ominous-looking event errors that reappear often if the infrastructure master role is on a GC.
Transfer of an OM role to another domain controller, whether in a disaster recovery situation or simply for design purposes, is accomplished through two methods. The first involves using the Change Schema Master function of the Active Directory schema snap-in. In disaster recovery situations in which the schema master, domain naming master, or RID master has gone down and no backup is available, however, the OM roles can be seized through the use of a command-line tool called ntdsutil, shown in Figure 4.5. Keep in mind that you should use this utility only in emergency situations and should never bring the old OM server back online into the domain at risk of some serious system conflicts. Domain maintenance and recovery are covered in Chapters 22, "Windows .NET Server 2003 Management and Maintenance Practices," and 33, "Recovering from a Disaster."
Figure 4.5 The ntdsutil utility for Active Directory management.