Windows 2000 provides new mechanisms for keeping track of users and groups. But the familiar rules for managing them still apply.

Group Think

Windows 2000 provides new mechanisms for keeping track of users and groups. But the familiar rules for managing them still apply.

As I’ve mentioned before, Windows 2000 brings many new concepts to the table while still maintaining plenty of the core technologies and practices of Windows NT 4.0. This is also true in the area of User Management and the application of permissions to resources. You might think that the Active Directory (AD) changes how permissions are applied to users, but for the most part this isn’t the case. Rather than change the whole ballgame, Microsoft added functionality to what existed before.

The Use of User Management

The main reason we even need to focus on managing users is that there are security concerns with virtually any network. The nature of business information demands that we have discretionary control over which user has access to what resource or information. But before we get too deep into the technological aspects of managing users with the new tools available in Win2K, let’s make clear the first rule of user management: The procedural aspects are as important as the technical ones. Planning thus rises to the top of the list for long-term manageability. Of course, the nature of any procedural planning depends upon the underlying technical foundation of AD.

Group Name Type of Group
Account operators local
Administrators local
Backup operators local
Guests local
Print operators local
Replicator local
Server operators local
Users local
Cert publishers global
Domain admins global
Domain computers global
Domain controllers global
Domain guests global
Domain users global
Enterprise admins universal
Group policy admins global
Scheme admins universal
Table 1. The groups that are built into the system when Active Directory gets set up.

Organizational Units (OUs) and groups are completely different components of Win2K. OUs are getting most of the attention because of their central role in AD. However, groups still play a major part in user management, particularly in their role of applying permissions to resources. For now, I’m going to focus on the role of security groups and leave OUs and distribution groups for future discussion.

With security in mind, let’s look at how to manage users and permissions in Win2K. The most fundamental characteristic to remember is that a Win2K user, as well any group, is really a Security Identifier (SID), just as with NT 4.0. This central fact hasn’t changed. If you’re new to NT, SIDs are automatically generated unique numbers that identify a user. The SID number is based upon and identifies the domain the user is created in; if a user is deleted, that SID cannot be re-created.

Organizational Units Aren’t What You Think

If you were ready to use OUs as the objects to grant permissions, take another look. Despite all the fanfare and expectations that AD will solve all problems large and small, OUs aren’t used as security principals. While you can use OUs to delegate administrative privileges, you can’t use them to pass out user permissions to access resource objects. As such, groups are still necessary to give permissions to objects.

This is a major difference between AD and NetWare NDS. NDS users are security equivalent to their OU, so it’s common to grant access to the OU in NetWare. The Microsoft reasoning, rather, is that it’s easier to assign permissions to groups, which can easily span OUs. It’s debatable whether this is the only approach that would be useful—the marketplace will determine if the lack of OU-based resource access is a good idea. I think it would be nice if both options were available to the administrator (but then I wasn’t consulted).

Resource objects are associated with a Security Descriptor (SD) that contains a Discretionary Access Control List (DACL), which is simply a list of SIDs that are permitted access, and a System Access Control List (SACL) that controls auditing to keep track of which SIDs are accessing the object. In addition, a permissions mask controls the granularity of access permitted, such as Read, Write, or Change. So far, so good; all this is familiar to the NT 4.0 engineer. Now comes a little expansion to the system and our thinking.

One would also think that the flat namespace is completely dead now that we have the new and wonderful hierarchical Active Directory. However, in the quest to maintain a simple logon and prevent a deep restructuring of the core Win2K system code, you still need to keep a flat namespace in mind when designing your naming conventions.

Also keep in mind that with AD, you now have different types of usernames, each with different characteristics that relate directly to groups. First, there’s the User Principal Name (UPN). It can contain up to 64 characters and must be unique within the AD forest, as we would expect. The UPN is a concatenated name that can be well served by following the DNS name or email address. It’s used to log on to the AD for authentication. [email protected] would be an example of a UPN.

The User Account Full Name must be unique within the Domain or OU where it exists. Also referred to as the display name, it shows up as the main label in the directory. This name can contain a virtually unlimited number of characters.

The down-level Name is the traditional Domain\Mchacon SAM account name used for logging onto an NT 4.0 network. This name must be unique within the domain, and the user name part is limited to 20 characters. This name is also necessary only when you have a mixed NT 4.0 and Win2K environment—another reason to go all Win2K as soon as possible. If you have a mixed NT 4.0 and Win2K environment, it’s a good idea to match this name to the first part of the UPN so logon is consistent across platforms.

There are, of course, other names stored in the AD, including Distinguished Name (DN), Relatively Distinguished Name (RDN), and the Global Unique Identifier (GUID) number, but these don’t relate to groups. I’ll cover them later.

Naming Conventions

Before you even add a name to the AD database, sit down with your support group and some sort of business practice group and come up with a naming convention that will be meaningful to both the technical support staff and the user community. This convention discussion between the technical and the business process should go beyond just the naming conventions for logon and security purposes. The directory also presents opportunities to store a virtually unlimited amount of other information about the user. The key word is virtual. The amount of data you add here will have a direct impact on replication traffic across your physical network, as well as with directory-enabled applications.

It will also have support consequences. You can retrieve useful information only if it has been entered in the first place. This can be tedious, as most detailed database massaging is; but it’s also extremely important as the unfolding of directory-enabled applications enter the scene and take on a more important role. Make sure that the information you plan to collect in the AD is useful and not gratuitous. Finally, ensure that the naming convention supports the flat characteristic that groups in Win2K inherently require.

After you’ve agreed upon user naming and organizational conventions for users, you need to turn your attention to how you will give users permission to the various objects on the network. As with NT 4.0, the best way to accomplish this with manageability in mind is through the proper use of the different types of groups. Giving permissions to individual users is not only problematic when widespread changes are necessary; it also overloads the ACLs with unnecessary entries. Groups are the only realistic approach to providing scalable access to resources.

Group Thinking

As you may recall, the recommended way to apply permissions in NT 4.0 is to assign them to a Local Group (LG) that exists in the SAM where the resource resides. You then add all of the users to a Global Group (GG) that exists in the domain where the users reside. Placing the GGs into the LGs then controls permissions to the resources. Even though there are several other ways to accomplish the same task, this method proves the most flexible. Regardless of the approach you’ve implemented, consistency is the watchword in manageability and scalability. See Figure 1.

Figure 1. The recommended way to apply permissions in NT 4.0.

The first thing to take notice of with Win2K is that even with the AD, the SAM doesn’t fade away. It’s alive and well on each machine as a repository for the SID-based accounts and groups on Win2K Professional and Win2K standalone and member servers. All of the other groups in the AD are stored by default in %systemroot%\ntds\ntds.dit on the domain controllers.

So which groups do we now use? And when do we use them? First, let’s explore an overview of the groups that exist in Win2K and where they’ve changed from NT 4.0.

The nesting of groups is a powerful feature of Win2K, which simplifies the application of permissions. Nesting is the ability of groups to be placed into other groups of the same or different type. This is available only with Win2K, as NT 4.0 down-level clients don’t recognize nesting. Nesting helps make up for the flat characteristic of groups. For example, you could create groups based upon OU membership and then place the different OU-based groups into a domain-wide group. Removing or placing the OU-based group into the domain-wide group would be a way to assign permissions to resources by OU. However, as with all “powerful” features, it can cause complex headaches if not used appropriately.

The new Universal Group (UG) exists across the entire AD forest of domains. It can contain other UGs, GGs, and individual user accounts. A key characteristic of the UG is that the group and its members are automatically listed in the Global Catalog (GC). This can have strong implications for replication and search time; the GC will exist on every site within the forest and will grow as you add members to the UGs. UGs are only available in native mode, and therefore NT 4.0 clients can’t view them.

As mentioned previously, GGs are similar to the NT 4.0 variety and contain users that exist in the same domain in which the GG was created. However, in Win2K they can also contain other GGs from the same domain. While GGs are listed in the GC, the members of the GGs aren’t. LGs exist on machines in the domain they’re created in and can contain users, GGs, and UGs from any other domain in the AD domain forest. Since all domains in a forest use the Kerberos transitive trust relationships, all existing groups in the forest are always available to the LG without having to build trust relationships manually. Nesting GGs is only available in native mode; therefore, NT 4.0 clients don’t see or acknowledge any nested GGs.

Several strategies exist for the creation and application of groups. In a mixed environment it’s rather straightforward, since you follow the permissions on LGs: users in GGs, and GGs placed in LGs.

In native mode or in a complete Win2K enterprise, you have more options. You can use only UGs and apply permissions directly to them. You use nesting with smaller UGs to control which users are gaining any particular permission. This has profound implications on bandwidth because, as you recall, all members of UGs are also included in the GC. See Figure 2.

Figure 2. The all-universal group strategy in Windows 2000.

Recommendations have surfaced that small installations can use universal groups exclusively and not concern themselves with global and local groups. However, we saw this type of recommendation in the early days of NT 4.0, and it caused problems for many companies. Networks have one common characteristic: They grow. I think using all UGs can create some confusion in regards to which groups have permissions directly applied and which UGs are for nesting purposes only.

A close cousin to the all-UG strategy is to use UGs only as containers, similar to using GGs in NT 4.0, and placing UGs in LGs that have permissions directly applied. The benefit of this strategy is that you always know that LGs have permissions and no users, and UGs have users and no directly applied permissions. This still has the drawback of having users listed directly in the GC. See Figure 3.

Figure 3. The use of universal groups as containers (similar to the use of global groups in NT 4.0).

Another model that appears complex but has an organized elegance is the following: Use GGs to contain the users from the domain using nesting on the OU level or where appropriate. Place these GGs into UGs that are forest-wide. Give permissions to LGs where the resources reside and place the UGs in the LGs. The benefits? LGs always have the permissions, GGs always contain OU users, and UGs always contain groups defined in domains. This also minimizes the changes of group membership in the GC to help control replication traffic. See Figure 4.

Figure 4. An elegant approach uses global groups to contain users and universal groups to contain groups defined in domains.

No Right Method

The bottom line: There is no “right” method for creating and applying groups. There’s only a method that makes sense for your network, users, and support staff. I’m sure it will be some time before issues such as these are generally settled. If you have any doubts, just recall the proliferation of domains in early NT 4.0 networks. The only thing I would argue in the “right” department is that you should apply a method in a documented and consistent manner. Other than that, experiment, test, and then let everyone else know what you find out as we finally start implementing Win2K in production networks.

As always, conventions translate to navigational understanding by the user and supportability by the administrator. This was true with NT 4.0 and remains true with Win2K.

The other areas that impact user management in Win2K are Group Policies, and, of course, OU structure. I’ll cover these aspects of Win2K in a future column.

Featured