11 April,19 at 11:50 AM
Introduction
Centrify provides a portfolio of software products one of which, the Centrify Server Suite (CSS), lets you manage UNIX/Linux user accounts using Active Directory (AD). One advantage for IT administrators is centralized management of user identities (e.g., create, delete or disable user accounts or identities) from a single platform (i.e., AD) across their entire infrastructure (e.g., Windows, UNIX/Linux, mobile devices and the Cloud). One benefit to end users is a single identity and password to remember across all environments.
In these posts I will describe a script that I wrote, mkComputerRoles.tcl, that enables the quick deployment of CSS. The script uses ADEdit, which is a Centrify Tool command language (Tcl) application that enables creation of scripts that modify data in AD directly from UNIX/Linux.
Where to store UNIX/Linux data in Active Directory (AD)
Centrify stores UNIX/Linux data in AD, consequently one of the first major task in deploying Centrify is to decide where in AD to store this data. Centrify has developed a best practice for where to store UNIX/Linux data in AD. It is to create a single Organizational Unit (OU) at the root of the AD domain in which to store UNIX/Linux data. Centrify provides a PowerShell script that can be used to create this structure. It also creates a few AD security groups and delegates to them the minimum AD rights needed to manage UNIX data only in this OU. These groups can be used to implement separation of administrative duties. In this example, the OU is named Centrify and looks like this:
where,
and,
Note: See the Centrify Deployment and Planning Guide for the complete list of AD privileges that is required to manage UNIX/Linux data in AD.
The Computer Roles Spreadsheet
After the OU structure has been created as described above we can turn our attention to the issue of Centrify Zones. To join a UNIX/Linux computer to AD using Centrify requires the creation of a Centrify Zone. A Centrify Zone is a collection of users and computers that need to share a set of polices and access controls. Because, a computer can be joined to only one Zone, Zones may not provide the flexibility needed to manage access controls on a granular basis.
Centrify provides another means of managing access control called a Computer Role. Computer Roles are logical groupings of computers to which users or groups can be assigned specific roles. In terms of granularity, a Computer Role can apply to a single user and a single server, or to a large group of users and computers and it can span Zone boundaries and hierarchies. A computer can be a member of more than one Computer Roles thereby providing an extremely flexible way to provision system access. It can be used to effect Role Based Access Control (RBAC).
The mkComputerRoles.tcl script can be used to create Computer Roles, add computers to Computer Roles and assign roles to groups of users on those computers. The script requires a CSV file that defines the Computer Roles and related information. A template for the CSV can be created from the sample Excel spreadsheet that is provided with the script. It has formulas to make completing the spreadsheet easier. An example of the spreadsheet is:
where,
The first row in the spreadsheet is the header and the second row can be read as follows:
The net result is that when AD users (or groups of AD users) are added to the AD group cfyUC_UNIX Login_Engineering Servers, those users will have the UNIX Login role (i.e., can access) all the computers that are in the AD group cfyC_Engineering Servers. The AD users must also have a complete UNIX/Linux profile in the Zone to access the UNXI/Linux computers with their AD credentials.
In the part 2, I will describe how to execute the mkComputerRoles.tcl script and review the AD objects it creates and explain how those objects relate to the UNIX/Linux environment.