Active Directory
2807
226050316
2008-07-16T16:36:50Z
ClueBot
4928500
Reverting possible vandalism by [[Special:Contributions/62.56.90.131|62.56.90.131]] to version by Reedy. False positive? [[User:ClueBot/FalsePositives|Report it]]. Thanks, [[User:ClueBot]]. (441602) (Bot)
[[Image:ActiveDirectoryMMC.png|thumb|right|Typically Active Directory is managed using the graphical [[Microsoft Management Console]].]]
'''Active Directory''' ('''AD''') is a technology created by [[Microsoft]] that provides a variety of network services, including:
* [[Lightweight Directory Access Protocol|LDAP]]-like<ref>[http://www.novell.com/collateral/4621396/4621396.pdf eDirectory vs Active Directory]</ref><ref>[http://www.symas.com/documents/Adam-Eval1-0.pdf ADAM vs LDAP]</ref> [[directory service]]s
* [[Kerberos (protocol)|Kerberos]] based [[authentication]]
* [[Domain Name System|DNS]] based naming and other network information
using the same database, for use primarily in [[Microsoft Windows|Windows]] environments. Active Directory also allows administrators to assign policies, deploy software, and apply critical updates to an organization. Active Directory stores information and settings in a central database. Active Directory networks can vary from a small installation with a few hundred objects, to a large installation with millions of objects (though not easily <ref>[http://marc.info/?t=120406613100002&r=1&w=2 Flaws in AD Design]</ref>).
Active Directory was previewed in 1996, released first with [[Windows 2000]] Server edition, and revised to extend functionality and improve administration in [[Windows Server 2003]]. Additional improvements were made in both [[Windows Server 2003#Windows Server 2003 R2|Windows Server 2003 R2]] and [[Windows Server 2008#Active Directory roles|Windows Server 2008]].
Active Directory was called '''NTDS''' ([[Windows NT|NT]] Directory Service) in older Microsoft documents. This name can still be seen in some AD [[Executable|binaries]].
There is a common misconception that Active Directory provides software distribution. Software distribution is run by a separate service that uses additional proprietary schema attributes that work in conjunction with the [[Lightweight Directory Access Protocol|LDAP protocol]]. Active Directory does not automate software distribution, but provides a mechanism by which other services can provide software distribution.
==Structure==
===Objects===
'''Active Directory''' is a <nowiki>directory service</nowiki> used to store information about the network resources across a [[Windows Server domain|domain]] and also centralize the network.
An ''''Active Directory'''' (AD) structure is a '''hierarchical framework''' of [[Object (computing)|objects]]. The objects fall into three broad categories: resources (e.g., [[Computer printer|printers]]), services (e.g., [[email]]), and users (user accounts and groups). The AD provides information on the objects, organizes the objects, controls access and sets security.
Each object represents a single entity — whether a user, a computer, a printer, or a group — and its attributes. Certain objects can also be containers of other objects. An object is uniquely identified by its name and has a set of attributes — the characteristics and information that the object can contain — defined by a schema, which also determines the kind of objects that can be stored in the AD.
Each attribute object can be used in several different schema class objects. These schema objects exist to allow the schema to be extended or modified when necessary. However, because each schema object is integral to the definition of AD objects, deactivating or changing these objects can have serious consequences because it will fundamentally change the structure of AD itself. A schema object, when altered, will automatically propagate through Active Directory and once it is created it can only be deactivated — not deleted. Changing the schema usually requires a fair amount of planning.<ref>{{cite book|title=Windows Server 2003: Active Directory Infrastructure|year=2003|publisher=Microsoft Press|pages=1-8 – 1-9|id=ISBN 0-7356-1438-5}}</ref>
===Forests, trees, and domains===
The framework that holds the objects is viewed at a number of levels. '''At the top of the structure is the Forest - the collection of every object, its attributes, and rules (attribute syntax) in the AD.''' The forest holds one or more transitive, trust-linked Trees. A tree holds one or more Domains and domain trees, again linked in a transitive trust hierarchy. Domains are identified by their [[Domain Name System|DNS]] name structure, the namespace.
The objects held within a domain can be grouped into containers called [[Organizational Unit]]s (OUs). OUs give a domain a hierarchy, ease its administration, and can give a semblance of the structure of the AD's company in organizational or geographical terms. OUs can contain OUs - indeed, domains are containers in this sense - and can hold multiple nested OUs. Microsoft recommends as few domains as possible in AD and a reliance on OUs to produce structure and improve the implementation of policies and administration. The OU is the common level at which to apply [[group policies]], which are AD objects themselves called Group Policy Objects (GPOs), although policies can also be applied to domains or sites (see below). The OU is the level at which administrative powers are commonly delegated, but granular delegation can be performed on individual objects or attributes as well.
AD also supports the creation of ''Sites'', which are physical, rather than logical, groupings defined by one or more IP subnets. Sites distinguish between locations connected by low-speed (e.g., [[Wide area network|WAN]], [[Virtual private network|VPN]]) and high-speed (e.g., [[local area network|LAN]]) connections. Sites are independent of the domain and OU structure and are common across the entire forest. Sites are used to control network traffic generated by replication and also to refer clients to the nearest domain controllers. [[Microsoft Exchange Server|Exchange 2007]] also uses the site topology for mail routing. Policies can also be applied at the site level.
The actual division of the company's information infrastructure into a hierarchy of one or more domains and top-level OUs is a key decision. Common models are by business unit, by geographical location, by IT Service, or by object type. These models are also often used in combination. OUs should be structured primarily to facilitate administrative delegation, and secondarily, to facilitate group policy application. Although OUs form an administrative boundary, the only true security boundary is the forest itself and an administrator of any domain in the forest must be trusted across all domains in the forest.
Physically the Active Directory information is held on one or more equal peer [[domain controller]]s (DCs), replacing the [[Windows NT|NT]] [[Primary Domain Controller|PDC]]/[[Backup Domain Controller|BDC]] model. Each DC has a copy of the AD; changes on one computer being synchronized (converged) between all the DC computers by ''[[multi-master replication]]''. Servers joined in to AD, which are not domain controllers, are called Member Servers.
The AD database is split into different stores or ''partitions''. Microsoft often refers to these partitions as 'naming contexts'. The 'Schema' partition contains the definition of object classes and attributes within the Forest. The 'Configuration' partition, contains information on the physical structure and configuration of the forest (such as the site topology). The 'Domain' partition holds all objects created in that domain. The first two partitions replicate to all domain controllers in the Forest. The Domain partition replicates only to Domain Controllers within its domain. A subset of objects in the domain partition are also replicated to domain controllers that are configured as global catalogs.
Unlike earlier versions of Windows which used [[NetBIOS]] to communicate, Active Directory is fully integrated with DNS and [[TCPIP|TCP/IP]] — indeed DNS is ''required''. To be fully functional, the DNS server must support [[SRV record|SRV resource records]] or service records.
AD replication is 'pull' rather than 'push'. The ''Knowledge Consistency Checker'' (KCC) creates a replication topology of ''site links'' using the defined ''sites'' to manage traffic. Intrasite replication is frequent and automatic as a result of change notification, which triggers peers to begin a pull replication cycle. Intersite replication intervals are less frequent and do not use change notification by default, although this is configurable and can be made identical to intrasite replication. A different 'cost' can be given to each link (e.g., [[DS3]], [[Digital Signal 1|T1]], [[ISDN]] etc.) and the site link topology will be altered accordingly by the KCC. Replication between domain controllers may occur transitively through several site links on same-protocol ''site link bridges'', if the 'cost' is low, although KCC automatically costs a direct site-to-site link lower than transitive connections. Site-to-site replication can be configured to occur between a ''bridgehead server'' in each site, which then replicates the changes to other DCs within the site.
In a multi-domain forest the AD database becomes partitioned. That is, each domain maintains a list of only those objects that belong in that domain. So, for example, a user created in Domain A would be listed only in Domain A's domain controllers. Global catalog (GC) servers are used to provide a global listing of all objects in the Forest. The Global catalog is held on domain controllers configured as global [[catalog server]]s. Global Catalog servers replicate to themselves all objects from all domains and hence, provide a global listing of objects in the forest. However, in order to minimize replication traffic and to keep the GC's database small, only selected attributes of each object are replicated. This is called the partial attribute set (PAS). The PAS can be modified by modifying the schema and marking attributes for replication to the GC.
Replication of Active Directory uses [[Remote Procedure Call]]s (RPC over IP [RPC/IP]). Between Sites you can also choose to use [[SMTP]] for replication, but only for changes in the Schema or Configuration. SMTP cannot be used for replicating the Domain partition. In other words, if a domain exists on both sides of a WAN connection, you must use RPCs for replication.
The AD [[database]], the ''directory store'', in Windows 2000 uses the [[Microsoft JET Blue|JET Blue-based]] [[Extensible Storage Engine]] (ESE98), limited to 16 terabytes and 1 billion objects in each domain controller's database. Microsoft has created NTDS databases with more than 2 billion objects.{{Fact|date=January 2008}} (NT4's [[Security Account Manager]] could support no more than 40,000 objects). Called NTDS.DIT, it has two main tables: the ''data table'' and the ''link table''. In Windows 2003 a third main table was added for security descriptor single instancing.<ref>[http://blogs.technet.com/efleis/archive/2006/06/08/434255.aspx Large AD database? Probably not this large...]</ref>
Active Directory is a necessary component for many Windows services in an organization such as Exchange.
==FSMO Roles==
'''[[FSMO|Flexible Single Master Operations]] (FSMO, sometimes pronounced "fizz-mo")''' roles are also known as operations master roles. Although the AD domain controllers operate in a multi-master model, i.e. updates can occur in multiple places at once, there are several roles that are necessarily single instance:
{| class="wikitable"
|-
! Role Name
! Scope
! Description
|-
| Schema Master
| 1 per forest
| Controls updates to the Schema
|-
| Domain Naming Master
| 1 per forest
| Controls the addition and removal of domains from the forest
|-
| PDC Emulator
| 1 per domain
| Provides backwards compatibility for NT4 clients for PDC operations (like password changes). The PDCs also run domain specific processes such as the Security Descriptor Propagator (SDPROP), and is the master time server within the domain.
|-
| RID Master
| 1 per domain
| Allocates pools of unique identifier to domain controllers for use when creating objects
|-
| Infrastructure Master
| 1 per domain
| Synchronizes cross-domain group membership changes. The infrastructure master cannot run on a global catalog server (unless all DCs are also GCs.)
|}
==Naming==
AD supports [[Universal Naming Convention|UNC]] (\), [[Uniform resource locator|URL]] (/), and [[Lightweight Directory Access Protocol|LDAP]] URL names for object access. AD internally uses the LDAP version of the [[X.500]] naming structure.
Every object has a '''''Distinguished name''''' (DN), so a printer object called ''HPLaser3'' in the OU ''Marketing'' and the domain ''foo.org'', would have the DN: ''CN=HPLaser3,OU=Marketing,DC=foo,DC=org'' where ''CN'' is common name and ''DC'' is domain object class, DNs can have many more than four parts. The object can also have a '''''Canonical name''''', essentially the DN in reverse, without identifiers, and using slashes: ''foo.org/Marketing/HPLaser3''. To identify the object within its container the '''''Relative distinguished name''''' (RDN) is used: ''CN=HPLaser3''. Each object also has a [[Globally Unique Identifier]] (GUID), a unique and unchanging 128-bit string which is used by AD for search and replication. Certain objects also have a '''''User principal name''''' (UPN), an ''objectname''@''domain name'' form.
<!-- Trust doesn't belong in the middle of the chapter about Structure. This is temporary here. !!! I Disagree, trusts form the external connections to the forest-->
==Trust==
<div id="trust"> </div>To allow users in one domain to access resources in another, AD uses trusts. Trusts inside a forest are automatically created when domains are created. The forest sets the default boundaries of trust, not the domain, and implicit, transitive trust is automatic for all domains within a forest. As well as two-way transitive trust, AD trusts can be ''shortcut'' (joins two domains in different trees, transitive, one- or two-way), ''forest'' (transitive, one- or two-way), ''realm'' (transitive or nontransitive, one- or two-way), or ''external'' (nontransitive, one- or two-way) in order to connect to other forests or non-AD domains.
===Trusts in Windows 2000 (native mode)===
* '''One-way trust''' - When one domain allows access to users on another domain, but the other domain does not allow access to users on the first domain.
* '''Two-way trust''' - When two domains allow access to users on the other domain.
* '''Trusting domain''' - The domain that allows access to users from a trusted domain.
* '''Trusted domain''' - The domain that is trusted; whose users have access to the trusting domain.
* '''Transitive trust''' - A trust that can extend beyond two domains to other trusted domains in the tree.
* '''Intransitive trust''' - A one way trust that does not extend beyond two domains.
* '''Explicit trust''' - A trust that an admin creates. It is not transitive and is one way only.
* '''Cross-link trust''' - An explicit trust between domains in different trees or in the same tree when a descendant/ancestor (child/parent) relationship does not exist between the two domains.
Windows 2000 - supports the following types of trusts:
* Two-way transitive trusts.
* One-way intransitive trusts.
Additional trusts can be created by administrators. These trusts can be:
* Shortcut
Windows 2003 offers a new trust type - the forest root trust. This type of trust can be used to connect Windows 2003 forests if they are operating at the 2003 forest functional level. Authentication across this type of trust is [[Kerberos (protocol)|Kerberos]] based (as opposed to [[NTLM]]). Forest trusts are also transitive for all the domains in the forests that are trusted.
==ADAM/AD LDS==
'''Active Directory Application Mode''' (ADAM) is a light-weight implementation of Active Directory. ADAM is capable of running as a [[Windows service|service]], on computers running Microsoft [[Windows Server 2003]] or [[Windows XP|Windows XP Professional]]. ADAM shares the code base with Active Directory and provides the same functionality as Active Directory, including an identical [[API]], but does not require the creation of domains or domain controllers.
Like Active Directory, ADAM provides a ''Data Store'', which is a hierarchical datastore for storage of directory data, a ''[[Directory (database)|Directory Service]]'' with an LDAP ''Directory Service Interface''. Unlike Active Directory, however, multiple ADAM instances can be run on the same server, with each instance having its own and required by applications making use of the ADAM directory service.
In [[Windows Server 2008#Active Directory roles|Windows Server 2008]], ADAM has been renamed AD LDS (Lightweight Directory Services).
==Integrating Unix into Active Directory==
Recent versions of Linux and Unix operating systems provide varying levels of interoperability with Active Directory but lack advanced Active Directory capabilities such as [[Group Policy]] and support for one-way trusts.
There are also third-party vendors who offer Active Directory integration for Unix platforms (including UNIX, Linux, Mac OS X, and a number of Java- and UNIX-based applications). Some of these vendors include Thursby Software Systems (ADmitMac), Quest Software (Vintela Authentication Services), Centrify (DirectControl), and Likewise Software (Likewise Open and Likewise Enterprise). Microsoft is also in this market with their free [[Microsoft Windows Services for UNIX]] product.
The schema additions shipped with [[Windows_Server_2003#Windows_Server_2003_R2|Windows Server 2003 release 2]] include attributes that map closely enough to RFC 2307 to be generally usable. The reference implementation of RFC 2307, nss_ldap and pam_ldap provided by PADL.com, contains support for using these attributes directly, provided they have been populated. The default Active Directory schema for group membership complies with the proposed extension, [http://www.padl.com/~lukeh/rfc2307bis.txt RFC 2307bis]. RFC2307bis specifies storing Unix group membership using LDAP member attributes as opposed to the base RFC 2307 which specified storing group membership as a comma-separate list of user IDs (as was done in the Unix group file). Windows 2003R2 includes an [[Microsoft_Management_Console|MMC]] snap-in that creates and edits the attributes.
An alternate option is to use another directory service such as [[Fedora Directory Server]] (formerly Netscape Directory Server) or Sun Microsystems [[Sun Java System Directory Server]], which can perform a two-way synchronization with Active Directory and thus provide a "deflected" integration with Active Directory as Unix and Linux clients will authenticate to FDS and Windows Clients will authenticate to Active Directory. Another option is to use [[OpenLDAP]] with its translucent overlay, which can extend entries in any remote LDAP server with additional attributes stored in a local database. Clients pointed at the local database will see entries containing both the remote and local attributes, while the remote database remains completely untouched.
[[Samba (software)|Samba]] 4, still in testing state in June 2008, plans to include an Active Directory compatible server.
==See also==
*[[Active Directory Explorer]]
*[[Directory Services Restore Mode]]
*[[Flexible single master operation]]
*[[List of LDAP software]]
==Notes==
<!--See http://en.wikipedia.org/wiki/Wikipedia:Footnotes for an explanation of how to generate footnotes using the <ref(erences/)> tags-->
<div class="references-small">
<references />
</div>
== External links ==
* [http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/ Microsoft's Active Directory Page]
* [http://technet2.microsoft.com/windowsserver/en/library/6a4ae393-17e9-425d-b619-969dab507a6d1033.mspx?mfr=true Active Directory Application Mode (ADAM)]
* [http://download.sysinternals.com/Files/AdExplorer.zip Active Directory Explorer]
{{Microsoft products}}
{{Windows Components}}
[[Category:Active Directory]]
[[Category:Identity management systems]]
[[Category:Microsoft server technology]]
[[Category:Windows components]]
[[cs:Active Directory]]
[[da:Active Directory]]
[[de:Active Directory]]
[[es:Active Directory]]
[[fr:Active Directory]]
[[ko:액티브 디렉터리]]
[[id:Active Directory]]
[[it:Active Directory]]
[[he:Active directory]]
[[hu:Active Directory]]
[[nl:Active Directory]]
[[ja:Active Directory]]
[[no:Active Directory]]
[[pl:Active Directory]]
[[pt:Active Directory]]
[[ro:Active Directory]]
[[ru:Active Directory]]
[[sk:Active Directory]]
[[fi:Active Directory]]
[[sv:Active Directory]]
[[tr:Active Directory]]
[[zh:活动目录]]