Centrify Server Suite 2016 Planning and Deployment Guide April 2016 Centrify Corporation Legal notice This document and the software described in this document are furnished under and are subject to the terms of a license agreement or a non-disclosure agreement. Except as expressly set forth in such license agreement or non-disclosure agreement, Centrify Corporation provides this document and the software described in this document “as is” without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose. Some states do not allow disclaimers of express or implied warranties in certain transactions; therefore, this statement may not apply to you. This document and the software described in this document may not be lent, sold, or given away without the prior written permission of Centrify Corporation, except as otherwise permitted by law. Except as expressly set forth in such license agreement or non-disclosure agreement, no part of this document or the software described in this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, or otherwise, without the prior written consent of Centrify Corporation. Some companies, names, and data in this document are used for illustration purposes and may not represent real companies, individuals, or data. This document could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein. These changes may be incorporated in new editions of this document. Centrify Corporation may make improvements in or changes to the software described in this document at any time. © 2004-2016 Centrify Corporation. All rights reserved. Portions of Centrify software are derived from third party or open source software. Copyright and legal notices for these sources are listed separately in the Acknowledgements.txt file included with the software. U.S. Government Restricted Rights: If the software and documentation are being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), in accordance with 48 C.F.R. 227.7202-4 (for Department of Defense (DOD) acquisitions) and 48 C.F.R. 2.101 and 12.212 (for non-DOD acquisitions), the government’s rights in the software and documentation, including its rights to use, modify, reproduce, release, perform, display or disclose the software or documentation, will be subject in all respects to the commercial license rights and restrictions provided in the license agreement. Centrify, DirectControl, DirectAuthorize, DirectAudit, DirectSecure, DirectControl Express, Centrify User Suite, and Centrify Server Suite are registered trademarks and Centrify for Mobile, Centrify for SaaS, Centrify for Mac, DirectManage, Centrify Express, DirectManage Express, Centrify Identity Platform, Centrify Identity Service, and Centrify Privilege Service are trademarks of Centrify Corporation in the United States and other countries. Microsoft, Active Directory, Windows, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. Centrify software is protected by U.S. Patents 7,591,005; 8,024,360; 8,321,523; 9,015,103 B2; 9,112,846; 9,197,670; and 9,378,391. The names of any other companies and products mentioned in this document may be the trademarks or registered trademarks of their respective owners. Unless otherwise noted, all of the names used as examples of companies, organizations, domain names, people and events herein are fictitious. No association with any real company, organization, domain name, person, or event is intended or should be inferred. Contents About this guide 8 Intended audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Using this guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Conventions used in this guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Finding information about Centrify products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Contacting Centrify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Getting customer support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Chapter 1 Introduction to planning deployment for an enterprise 12 What you should know before planning a deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Why planning a deployment is important . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 About the deployment life cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Preparing a deployment team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Preparing training, testing, and deployment documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Common factors that affect deployment decisions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Chapter 2 Architecture and basic operations 19 Centrify software consists of platform-specific components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Storing Centrify-specific properties in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Using Access Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Core agent components and services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 What happens during the typical log-on process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 How the Centrify agent handles failover and disconnected operation . . . . . . . . . . . . . . . . . . . . . . . 31 Chapter 3 Deployment process overview 34 What’s involved in a typical deployment project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 How deployment tasks differ from ongoing administrative tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 What happens after deployment? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Sample work flow for making deployment decisions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Chapter 4 Planning Active Directory organizational units and security groups 46 Identifying stakeholders and business processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3 Designing organizational units for Centrify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Selecting the Active Directory location for the top-level OU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Creating recommended organizational units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Security groups to manage Centrify information. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Planning for data storage in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Viewing and manipulating data in Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Chapter 5 Installing Centrify DirectManage Access 61 Preparing for installation on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Installing DirectManage Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Installing Zone Provisioning Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Installing Deployment Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Running Access Manager for the first time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Chapter 6 Installing agents on computers to be managed 76 About the deployment process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 About using Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Select a target set of computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Build an inventory of computers in the target group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Download Analysis Tools and Centrify agent software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Performing a risk assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Analyze target computers for potential issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Deploy agents on computers identified as Ready . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Configuring a sudoers file for use with Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Other options for deploying Centrify agent packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 About the files and directories installed on the agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Joining an Active Directory domain at a later time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Chapter 7 Planning to use Centrify zones 105 Why use zones?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Deploying to a single Auto Zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Classic and hierarchical zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 How many zones do you need? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 A closer look at using zones in a hierarchical model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Planning and Deployment Guide 4 Chapter 8 Preparing the environment for migration of existing users and groups 116 Collecting and analyzing users and groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Collecting information from other departments in your organization. . . . . . . . . . . . . . . . . . . . . . . 116 Using Deployment Manager to retrieve users and groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Identifying accounts that should not be migrated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Analyze user profiles for conflicting attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Analyze group profiles for conflicting attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Create a working set of user and group profiles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 How migration affects the zone design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Creating the first zone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Create a top-level parent zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Create one or more child zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Creating computer objects for the target set of computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Chapter 9 Migrating an existing user population to hierarchical zones 132 Importing group profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Importing user profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Assigning roles to existing users and groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Verifying effective users on each zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Adding existing users and groups to Provisioning Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Chapter 10 Joining computers to a domain and zone 143 Using Deployment Manager to join the domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Using adjoin instead of Deployment Manager on new computers . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Verify authentication after joining the domain by logging on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Chapter 11 Provisioning new user and group profiles after migration 148 Integrating with existing provisioning processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Defining the business rules for new groups in the parent zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Defining the business rules for new users in the parent zone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 How hierarchical zones affect provisioning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Adding new users to a provisioning group and a role group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Adding a new UNIX group profile to all zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Using the zoneupdate program for controlled automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Using any Active Directory attribute in a profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Provisioning users when across trusted domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Contents 5 Monitoring provisioning events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Adding new profiles manually . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Chapter 12 Validating operations after deploying 168 Understanding testing as part of deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Validating basic authentication and password policy operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Running commands on the UNIX computer to verify operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Resolving issues in the pilot deployment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 Preparing training and documentation for administrators and users . . . . . . . . . . . . . . . . . . . . . . . 172 Deploying to the production environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Chapter 13 Defining role-based access controls for users and computers 177 Addressing the business problem of role-based security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Creating a root-equivalent role definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Creating a restricted role for a shared service account . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Creating a role definition for temporary root access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Creating a role definition with specific privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Creating a role definition with rescue rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Creating additional custom roles and role assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Working with computer roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Chapter 14 Migrating and managing service accounts after deployment 195 Why migrate service accounts?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Identifying service accounts to migrate to Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Mapping a service account to an Active Directory user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Creating a service account role in a zone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 Chapter 15 Planning to deploy in a demilitarized zone (DMZ) 205 Identifying the computers to protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Creating a forest and trusts for a DMZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 Defining zones for computers in the DMZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 How to join a domain with a read-only domain controller (RODC) . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Enabling NTLM authentication through a firewall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Chapter 16 Managing and evolving operations after deployment 211 Understanding how Centrify software affects operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Troubleshooting logon failures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Planning and Deployment Guide 6 Evaluating additional services and integrations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 Getting assistance from Centrify Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Chapter 17 Templates and sample forms 225 Simplified environment analysis and zone design template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Change control request form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Test case matrix sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 Preliminary software delivery notification email template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 Department-specific announcement and instructions email template . . . . . . . . . . . . . . . . . . . . . . 229 General announcement and deployment schedule email template. . . . . . . . . . . . . . . . . . . . . . . . . 230 Deployment team task checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Chapter 18 Active Directory permissions required for administrative tasks 234 Understanding how permissions are set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Understanding permissions for the Setup Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Understanding tasks for the Enterprise Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Understanding permissions for the Zone Delegation Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 About the required parent containers in the Active Directory forest . . . . . . . . . . . . . . . . . . . . . . . . 247 Setting rights to create and modify zones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 Setting rights to join or leave the domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Setting rights to work with computer accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Setting rights to work with user accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 Setting rights to work with group accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Setting rights to work with license keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Setting rights to work with NIS maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Setting permissions for password synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Setting permissions for rights and roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 Setting permissions for the Zone Provisioning Agent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Index Contents 281 7 About this guide The Centrify Server Suite Planning and Deployment Guide provides conceptual and technical information to help you plan and manage the initial deployment of Centrify software to provide secure authentication, authorization, and configuration services through Microsoft Active Directory. It includes instructions and best practices for planning a deployment, installing the software, migrating existing accounts, and developing a basic set of roles. This guide addresses common factors that a cross-functional project team is likely to face when tasked with extending Microsoft Active Directory identity, access control, and policy management services to UNIX, Linux and Mac OS X computers. It includes recommendations and examples to help you plan, install, verify, operate, and extend a deployment to suit the needs of your organization. Intended audience This guide is intended for security and IT architects, project managers, UNIX and Windows administrators, and other IT decision-makers who are responsible for planning and deploying authentication and authorization services across the enterprise. It provides a basic framework for planning a successful deployment and installing Centrify software in a phased rollout from a pilot program with a subset of target computers to a full production environment. This guide assumes that you are familiar with Windows and the UNIX, Linux, or Mac OS X operating environments you support and that you can perform basic administrative tasks in these environments. This guide also assumes you understand the basic principles of information security, and the terminologies, technologies, and techniques that are used in the operating environments you support. Using this guide Most large-scale deployments rely on a project team to design and articulate a project plan, and team members take on specific roles and responsibilities. Depending on your role and responsibilities, you may want to read portions of this guide selectively. Note Most of the information in this guide applies to all platforms. However, there are some deployment scenarios and tasks that are unique to Mac OS X computers. If you manage Mac OS X computers and users, refer to the Administrator’s Guide for Mac OS X for additional information. 8 Using this guide The guide provides the following information: Chapter 1, “Introduction to planning deployment for an enterprise,” provides an overview of key concepts and the deployment lifecycle, including suggestions for who should participate in the planning process and factors to consider that will affect your deployment strategy. About this guide Chapter 2, “Architecture and basic operations,” describes the key components of the Centrify software architecture and how the components work together to provide authentication and authorization services. Chapter 3, “Deployment process overview,” provides an overview of the steps involved in a deployment project and a preview of the tasks you can expect to complete. Chapter 4, “Planning Active Directory organizational units and security groups,” discusses the Active Directory objects and organizational model that Centrify recommends to ensure a separation of duties for UNIX administrators. Chapter 5, “Installing Centrify DirectManage Access,” provides step-by-step instructions for installing and configuring Centrify software components on Windows computers. Chapter 6, “Installing agents on computers to be managed,” describes the installation options available and provides instructions for installing Centrify software components on UNIX and Linux computers. Chapter 7, “Planning to use Centrify zones,” describes the importance of zones and how you can use classic and hierarchical zone for identity management, access control, and delegated administration. Chapter 8, “Preparing the environment for migration of existing users and groups,” describes the steps to take to prepare for migrating existing users and groups, including collecting and analyzing existing profile information and creating the first zone. Chapter 9, “Migrating an existing user population to hierarchical zones,” describes how to import and migrate an existing user population into hierarchical zones and enable authentication using Active Directory and Centrify software. Chapter 10, “Joining computers to a domain and zone,” describes how to complete the initial migration by joining the Active Directory domain and a Centrify zone. Chapter 11, “Provisioning new user and group profiles after migration,” describes how to use the Zone Provisioning Agent and Active Directory groups to automate provisioning of new users and groups. Chapter 12, “Validating operations after deploying,” provides suggestions for formal testing and validation activities you can perform to move from a pilot deployment to a production environment. Chapter 13, “Defining role-based access controls for users and computers,” describes the most common roles that organizations create to complete the initial deployment and how to configure the appropriate rights and assign the roles to appropriate groups. 9 Conventions used in this guide Chapter 14, “Migrating and managing service accounts after deployment,” describes the strategies you can use if you want to migrate local service accounts to Active Directory to improve security for those accounts. Chapter 15, “Planning to deploy in a demilitarized zone (DMZ),” describes how to deploy Centrify components to allow communication between a perimeter (DMZ) zone and an internal zone. Chapter 16, “Managing and evolving operations after deployment,” describes management activity for operations staff and additional services you may want to implement after deployment as you evolve the Centrify software solution. Chapter 17, “Templates and sample forms,” provides examples of common documents and notification messages that you can customize and use throughout the deployment process. Chapter 18, “Active Directory permissions required for administrative tasks,” provides information about the specific Active Directory permissions required to perform administrative tasks on Centrify-specific objects. In addition to these chapters, an index is provided for your reference. Conventions used in this guide The following conventions are used in this guide: Fixed-width font is used for sample code, program names, program output, file names, and commands that you type at the command line. When italicized, the fixed-width font is used to indicate variables. In addition, in command line reference information, square brackets ([ ]) indicate optional arguments. Bold text is used to emphasize commands, buttons, or user interface text, and to introduce new terms. Italics are used for book titles and to emphasize specific words or terms. For simplicity, UNIX is used generally in this guide to refer to all supported versions of the UNIX, Linux, and Mac OS X operating systems unless otherwise noted. Finding information about Centrify products Centrify includes extensive documentation targeted for specific audiences, functional roles, or topics of interest. If you want to learn more about Centrify and Centrify products and features, start by visiting the Centrify website. From the Centrify website, you can download data sheets and evaluation software, view video demonstrations and technical presentations about Centrify products, and get the latest news about upcoming events and webinars. Planning and Deployment Guide 10 Contacting Centrify Contacting Centrify You can contact Centrify by visiting our website, www.centrify.com. On the website, you can find information about Centrify office locations worldwide, email and phone numbers for contacting Centrify sales, and links for following Centrify on social media. If you have questions or comments, we look forward to hearing from you. Getting customer support If you have a Centrify account, click Support on the Centrify website to log on and access the Centrify Customer Support Portal. From the support portal, you can to search knowledge base articles, open and view support cases, connect with other Centrify users on customer forums, and access additional resources—such as online training, how-to videos, and diagnostic tools. About this guide 11 Chapter 1 Introduction to planning deployment for an enterprise This section provides a brief review of the information you should have to begin planning a successful enterprise deployment of Centrify Server Suite. It includes an overview of the deployment life cycle, roles and responsibilities to consider in assembling a deployment team, and the factors you should consider during the planning phase that will affect how you deploy Centrify software. The following topics are covered: What you should know before planning a deployment Why planning a deployment is important About the deployment life cycle Preparing a deployment team Preparing training, testing, and deployment documentation Common factors that affect deployment decisions For an overview of Centrify software and an introduction to basic tasks, see the Evaluation Guide for Linux and UNIX. For a general introduction to identity, access, and configuration management or more detailed information about performing administrative tasks, see the Administrator’s Guide for Linux and UNIX. What you should know before planning a deployment Before you begin planning a full scale deployment of Centrify software, you should be familiar with key concepts, terminology, and components for Centrify Server Suite and Active Directory. You should also have information about your existing environment. Before you continue with planning the deployment, verify you have information about: How Active Directory is used to store user, group, and computer information in your organization and the Active Directory schema you currently have deployed. How you currently manage services and provision users for both Windows and non-Windows computers. How the core Centrify agent installed on a UNIX, Linux, or Mac OS X computer makes that computer part of an Active Directory domain. How zones enable you to manage user profiles, control access to computer and application resources, and delegate administrative tasks. If you are not familiar with Centrify architecture and the components that make up the Centrify Server Suite, see Chapter 2, “Architecture and basic operations” to be sure you 12 Why planning a deployment is important understand the concepts, core components, and operations that enable Active Directory users to log on UNIX, Linux, and Mac OS X computers. This guide assumes you also have access to the Administrator’s Guide for Linux and UNIX and can refer to it, as needed, for additional details. Why planning a deployment is important Because Centrify software becomes a critical part of your IT infrastructure once deployed, it is important that you plan and test your deployment strategy and validate the results you expect before placing Centrify components into a production environment. After you deploy Centrify software in a production environment, the rights and roles you define will control whether users can log on and what they can do on specific computers if they are allowed to log on. Because preventing users from accessing critical resources or services can affect business operations, you should analyze the requirements of your environment as thoroughly as possible before moving from a pilot deployment into production. The deployment process described in this guide is intended to help you to migrate existing users and groups to Active Directory with minimal disruption to end-user activity and ongoing business services. The recommendations presented are designed to give you flexibility and provide you with a framework for deploying that minimizes the effect of the deployment on the existing user population. Planning is important regardless of whether you are deploying on Windows, UNIX, Linux, or Mac computers. However, some deployment steps can be skipped if you are only deploying on Windows computers or if you aren’t migrating any local users or groups. For more information about deploying only on Windows computers, see the Administrator’s Guide for Windows. For information that is specifically about deploying on Mac computers, see the Administrator’s Guide for Mac OS X. Note About the deployment life cycle In most organizations, a deployment takes place in the following stages: A primary senior analyst or small group installs the software in an isolated test environment. The main goal of this stage is to learn basic concepts, terminology, and operations and validate any specific functionality that is critical to the organization adopting the software. The lab environment also allows you to test the planned changes to system and user management processes without affecting user access. This proof-of-concept stage often takes place before the decision to purchase the software or with the decision to purchase a small number of licenses for extended testing. Evaluation During this stage, a planning team does deeper analysis into the goals and requirements of the organization, the current state of the environment, and the deployment Analysis and Design Chapter 1 • Introduction to planning deployment for an enterprise 13 Preparing a deployment team and management options that best suit the organization. The main goal of this stage is to design how you will use zones, import user account information, and assign rights and roles through a combination of Active Directory groups and zone definitions. Most of the information in this guide is intended to help you make those decisions and validate them in a pilot deployment. The pilot deployment is intended to be more robust than the evaluation stage. The pilot deployment is typically 10 to 20 computers, often with a common administrative owner or administrative group. The main goal of this stage is to verify your analysis accurately described your environment and to uncover any gaps that may have been missed or special circumstances that require adjustment to the design planned for zones, user account information, or rights and roles. You can include more than 20 computers in the pilot deployment, but limiting the number makes the initial migration of the user population more manageable while you become familiar with the process. Pilot Deployment After deploying the software, most organizations perform at least some formal testing of specific scenarios to ensure the authentication and authorization rules they have defined operate as expected and users are not locked out of computers they need access to but are prevented from logging on where they don’t have access rights. The main goal of this stage is to execute a test plan that exercises software operations in a number of different use cases. Testing and Validation After sufficient testing and verification of the pilot deployment, the deployment team can use Centrify DirectManage Deployment Manager or another software delivery method to install Centrify agent packages on remote computers and join an Active Directory domain. Typically, the roll-out is done in phases, so that Centrify software is deployed on a set of computers in one subnet, IP range, or administrative domain, then later deployed on another set of computers on a different subnet, with a different IP range, or in a different administrative domain. The goal of this stage is to deploy in a controlled manner, so that any issues can be resolved before they affect additional users or computers. Roll-out Deployment On-going Management and Evolution As your environment changes and evolves, it is likely that you will want to refine, customize, and extend your deployment and your authentication, authorization, computer, and user management policies. You may also develop or enhance scripts that automate provisioning and decommissioning of accounts, or update business processes to take advantage of additional functionality, such as integration with Splunk to capture Centrify data or configuring database applications to use PAM-based authentication. The goal of this stage is continuous improvement to streamline business processes and operational efficiency. Preparing a deployment team In large organizations, the network architecture and Active Directory infrastructure is often highly complex and sophisticated. Adding UNIX, Linux, and Mac OS X computers and Planning and Deployment Guide 14 Preparing a deployment team users to this infrastructure requires careful planning and is handled best with a clearly documented deployment plan. This guide is intended to help you develop such a plan and to suggest the issues you should consider in designing a deployment that suites your organization. For an example of what a deployment plan might look like, see “Simplified environment analysis and zone design template” on page 225. Depending on the size of your organization, you may want to assemble a cross-functional deployment team to plan and implement a deployment strategy, set up and test a pilot deployment program, and refine, document, and roll-out operations across the organization. In addition, a deployment team may include project leads and IT staff members who will be responsible for maintaining and managing Centrify Server Suite and Active Directory on an ongoing basis after deployment or developers who will extend or integrate applications to work with Centrify Server Suite and Active Directory. A typical deployment team might consist of members in the following roles: Know the structure and trust relationships of one or more Active Directory forests, including the topology of the Active Directory site and the roles of the domain controllers. These administrators may also be responsible for provisioning and decommissioning accounts or maintaining the tools for these business processes. Active Directory Enterprise Administrators or Domain Administrators Manage access for all or specific groups of UNIX, Linux, or Mac OS X computers. These administrators may be responsible for specific resources, such as the servers that host mission-critical applications or a web farm, or have specific domain knowledge, such Oracle database administration or AIX administrative tools. UNIX Administrators and Administrators with Domain Expertise Establish security policies and audit trails and define the procedures for securing computer resources and user account information. These administrators may also define the provisioning rules for the organization or have detailed knowledge of the existing provisioning process. Security Administrators IT or Network Architects Understand the overall layout of the organization’s network, including internal connectivity and access to the Internet, firewalls, port usage, bandwidth and latency issues. Write programs that require authentication and authorization services. Application developers may also include UNIX programmers who will be responsible for writing scripts to automate administrative tasks, such as creating zones or adding new users to a zone. Application Developers Functional Testers Develop test cases for the user scenarios the deployment team wants to validate. Centrify Administrative Operators Use Access Manager and other consoles on Windows, UNIX command line programs, ADEdit library, or PowerShell scripts to manage users, groups, computers, or zones. These operators may be delegated administrators for specific zones Chapter 1 • Introduction to planning deployment for an enterprise 15 Preparing training, testing, and deployment documentation after deployment or existing Active Directory administrators who add and remove users from groups or manage Active Directory containers. Install and manage database instances and control access to database records. If you are planning a deployment that includes auditing user activity, the deployment team should include at least one database administrator to plan for and create the databases that will store captured sessions and audit meta-data. A database administrator can also provide procedures and guidance for backing up, archiving, and removing historical data as appropriate for your organization’s record retention policies. Database administrators Understand regulatory compliance requirements for the organization and industry. Auditors typically know the type of information they need and can define the reports that will satisfy their needs. Internal or External Auditors Assembling a cross-functional team with members who have expertise in working with Active Directory and Windows architecture and members who have expertise in managing UNIX, Linux, or Mac OS X servers and workstations is often a key component of a successful deployment. Preparing training, testing, and deployment documentation In addition to deploying the software, the deployment team should prepare materials that document the solutions they are deploying and the processes and procedures to assist others in migrating. In general, members of the deployment team should focus on the following activities to prepare for a roll-out of Centrify Server Suite to a production environment: Document the configuration settings you plan to use and update the documentation as needed based on the pilot experience. For example, during the planning phase you may have drafted a plan for user and group filtering or access controls that in practice you find must be adjusted. The pilot deployment gives you the opportunity to implement your planned solution but change it, if needed. Document and prototype any deployment scripts that you intend to use and any processes or policy decisions that impact using those scripts. For example, you may want to automate the join process or how new users are added to a zone or modify existing scripts that provision users. Document issues that require troubleshooting during the pilot deployment and the resolution for each issue. You can collect this information as an organization-specific operations manual for IT staff. Prepare training materials for testers, operations personnel, and end-users based on the experience gained in the pilot deployment and tailored to your organization’s specific needs and internal policies. Planning and Deployment Guide 16 Common factors that affect deployment decisions Prepare test plans that sufficiently cover the types of scenarios that are specific to your organization’s needs and internal policies. For example, if you plan to use group policies, your test plans should include scenarios for testing the group policies you plan to implement. Update planning documents, such as the zone structure or role definitions that you developed during the planning phase in response to the practical experience gained in the pilot deployment. Create checklists or instructions that are specific to your organization’s deployment. For example, you may want to create a “site preparation checklist” that covers specific steps administrators should take before deploying, a “deployment checklist” that includes site-specific naming conventions and migration instructions, and a “handoff to operations checklist” to ensure a smooth hand-over to data center staff after deployment is complete. Common factors that affect deployment decisions One of the first tasks of the deployment team should be to define the goals you want to achieve and the criteria you will use to measure whether you have met those goals. As part of this process, you should define: The primary reason for deploying Centrify Server Suite in your organization. For example, if providing centralized directory service or a single point of account administration is your most important goal, you may make different deployment decisions than if auditing and restricting user access to specific computers is your primary goal. That is, you want to be sure the deployment addresses your most pressing concerns first. Priorities for any additional goals you want to set for the deployment. For example, you may want to transition to a rationalized namespace over time, but this may be a lower priority for your organization than moving from decentralized computer administration to delegated administration of the tasks users can perform on specific computers. Any specific auditing requirements or security requirements that are unique to your organization or industry. For example, the way you organize computers into groups may be determined by specific reports you need to produce. Internal policies for how you update and distribute software. For example, you should define how frequently you apply operating system patches and whether you automate software distribution. Internal policies for how you assign UNIX attributes and Active Directory account information. For example, you should identify how you have assigned UIDs, Chapter 1 • Introduction to planning deployment for an enterprise 17 Common factors that affect deployment decisions GIDs, and other UNIX-specific attributes and whether there are existing naming conventions for Active Directory users and groups. Plans for who will manage UNIX profiles after deployment. For example, you should identify the group or groups that will manage which UNIX users and computers and whether there will be separate UNIX and Active Directory administrators with shared responsibilities or a clearly defined division of responsibilities. In most cases, Centrify recommends a separation of duties model that enables UNIX administrators to manage zones and Active Directory administrators to manages user objects and group membership. Planning and Deployment Guide 18 Chapter 2 Architecture and basic operations This chapter provides an overview of the Centrify architecture and the components for Windows and non-Windows computers. It also describes the basic flow of operation when users log in or access applications, and what happens when an Active Directory domain controller goes down. The following topics are covered: Centrify software consists of platform-specific components Storing Centrify-specific properties in Active Directory Using Access Manager Core agent components and services What happens during the typical log-on process How the Centrify agent handles failover and disconnected operation The information in this section is not required for planning a deployment. It is intended as background information that can help you understand the authentication and authorization process in some detail. If you want to proceed directly to planning the deployment, you can skip this section. Centrify software consists of platform-specific components Centrify Server Suite provides an integration layer between Active Directory in a Windows environment and computers running other operating systems or application environments. Because of this, Centrify includes components for managing Active Directory-based objects in the Windows environment and agents that run on each server or workstation to be integrated into Active Directory. Centrify DirectManage components for Windows On Windows, Centrify includes several consoles and components to simplify the management of UNIX data and integration of UNIX computers and users into Active Directory. The key components for Windows that you use in deployment are: DirectManage Access Manager console DirectManage Deployment Manager Centrify Zone Provisioning Agent 19 Centrify software consists of platform-specific components There are several additional Windows components available for you to use, depending on the version of Centrify software you install and the requirements of your environment. For example, Centrify Server Suite Standard Edition also provides extensions for working with NIS maps and Active Directory group policies, and Enterprise Edition, includes a multi-tier architecture for auditing activity in user sessions and the Centrify Network Information Service for agentless authentication service. Components installed on Centrify managed computers On non-Windows computers, Centrify software consists of the core Centrify agent (adclient), related libraries, and optional tools. The Centrify agent enables the local host computer to join an Active Directory domain. Once the agent is deployed on a server or workstation, that computer is considered a managed computer and it can join any Active Directory domain you choose. When a Centrify-managed computer joins an Active Directory domain, it essentially becomes an Active Directory client and relies on Active Directory to provide authentication, authorization, policy management, and directory services. The interaction between the agent on the local computer and Active Directory is similar to the interaction between a Windows XP client and its Active Directory domain controller, including failover to a backup domain controller if the managed computer is unable to connect to its primary domain controller. The following figure provides a simplified view of the integration between Windows and non-Windows computers through Centrify software. To use Microsoft Active Directory to centrally manage access across different platforms, you need to do the following: Prepare the Active Directory environment by installing the DirectManage Access Manager console on at least one Windows computer and using the Setup Wizard to update the Active Directory forest. Planning and Deployment Guide 20 Storing Centrify-specific properties in Active Directory Ensure each UNIX, Linux, or Mac OS X computer can communicate with an appropriate Active Directory domain controller through DNS. Install the agent (adclient) on the UNIX, Linux, or Mac OS X computers that will be joining an Active Directory domain. Run the join command and specify the Active Directory domain on each UNIX, Linux, or Mac OS X computers that needs to join an Active Directory domain. Use Active Directory Users and Computers or the Access Manager console to authorize access to the UNIX, Linux, and Mac OS X computers for specific users and groups. The next sections provide a more detailed discussion of the Centrify architecture and a summary of what happens when a user logs on to a UNIX computer that has joined the Active Directory domain. Storing Centrify-specific properties in Active Directory The Active Directory schema defines the object classes that can be stored in Active Directory, and the attributes that each object class must have, plus any additional attributes it can have, and the object class that can be its parent. Schema definitions are also stored as objects in Active Directory. To store UNIX-specific attributes within the Active Directory schema, the schema must be able to include the properties that are associated with a UNIX user or group. For example, for a UNIX user, the schema needs to accommodate the following information fields: UNIX user name Password hash (optional) Numeric user identifier (UID) Primary group identifier (GID) General information (GECOS) Home directory Default shell Some of these information fields are similar to standard user class attributes in Active Directory. For example, the Active Directory Display Name (displayName) attribute typically stores a user’s full name—the same information typically stored in the GECOS field in an /etc/passwd file on a UNIX computer, so the displayName is used to define the contents of the GECOS field in a user’s UNIX profile. Depending on the Active Directory schema you have installed, some of the information fields required for logging on to UNIX computers may not have an equivalent Active Directory attribute. If you are using the default Active Directory schema, Centrify stores UNIX-specific attributes in an Active Directory class under its own parent container for zones. Centrify Chapter 2 • Architecture and basic operations 21 Using Access Manager then organizes the information about individual UNIX computers, users, and groups by zone. If your organization has already deployed Microsoft-supported UNIX schema extensions, such as the UNIX extensions included with Windows Services for UNIX (SFU) schema extension, you can store UNIX attributes in the fields defined by that schema in addition to or as an alternative to using the zones container. If you have deployed the RFC 2307-compliant Active Directory schema, you can store UNIX attributes in the fields defined by that schema and organized into RFC 2307compliant zones. After you have installed Centrify components on a Windows computer, the first time you open the Access Manager administrative console, a Setup Wizard updates the Active Directory forest to include the Centrify properties for UNIX attributes. You can then use Access Manager or the Active Directory Users and Computers MMC snap-in to view and modify the UNIX properties for any user, group, or computer. For RFC 2307-compliant zones, the group name and UNIX name are stored in the same CN attribute. Therefore, if you change a group’s name with its Active Directory Users and Computers’ property page, the UNIX name is changed in Access Manager as well. Note Using Access Manager The Access Manager console is the primary tool for managing all of the Centrify-specific information stored in Active Directory. With Access Manager, you can: Manage access to all of your UNIX, Linux, and Mac OS X computers. Set and modify user and group properties for all of your UNIX, Linux, and Mac OS X users and groups. Create and manage zones and zone properties to simplify the process of giving users access to specific computers and migrating UNIX user accounts to Active Directory. Add Active Directory users and groups to zones. Import user and group information from local password and groups files or from NIS and NIS+ servers and domains. Import and maintain network information from NIS maps such as netgroup, auto.master, and automount or create custom NIS maps. Generate and view reports describing the users, groups, computers, and applications you are managing and which users and groups have access to which computers. View and manage licenses for servers and workstations. You can also add other snap-ins to Access Manager or add the Access Manager console to another management snap-in. For example, you can add the Active Directory Sites and Planning and Deployment Guide 22 Core agent components and services Services and Active Directory Domains and Trusts snap-ins to Access Manager to consolidate management activity. Core agent components and services The Centrify agent makes a UNIX, Linux, or Mac OS X computer look and behave like a Windows computer to Active Directory. Once installed, the agent performs the following key tasks: Joins UNIX, Linux, or Mac OS X computers to an Active Directory domain. Communicates with Active Directory to authenticate users logging on to the UNIX, Linux, or Mac OS X computers, and caches credentials for offline access. Enforces Active Directory authentication and password policies. Extends Active Directory group policies to manage the configuration of UNIX users and computers. Provides a Kerberos environment so that existing Kerberos applications automatically work transparently with Active Directory. Individual agents are platform-specific, but provide an integrated a suite of services to extend Active Directory authentication, authorization, and directory service to Centrify-managed computers. The following figure provides a closer look at the services provided through the Centrify agent: As this figure suggests, the agent typically includes the following core components: The core component of the agent is the adclient process that handles all of the direct communication with Active Directory. The agent contacts Active Directory when there are requests for authentication, authorization, directory assistance, or policy updates Chapter 2 • Architecture and basic operations 23 Core agent components and services then passes valid credentials or other requested information along to the programs or applications that need this information. The Centrify Pluggable Authentication Module, pam_centrifydc, enables any PAM-enabled program, such as ftpd, telnetd, login, and sshd, to authenticate using Active Directory. For AIX and Mac OS X, the implementation is slightly different. For example, the agent for AIX can use PAM interfaces if you have configured the computer to use PAM modules or the interfaces in the Loadable Authentication Module (LAM) to handle behavior that on other platforms is done through PAM or NSS. Similarly, the agent for Mac OS X uses native interfaces where appropriate to provide services from Active Directory to the local computer. The Centrify NSS module is added to the nsswitch.conf so that system look-up requests use the agent to look up and validate information using Active Directory through LDAP. Note The ADEdit Tcl application and procedure library and individual UNIX command line programs enable you to perform common administrative tasks, such as join and leave the Active Directory domain or change user passwords for Active Directory accounts interactively or within scripts to automate tasks. The Centrify-managed Kerberos environment generates a Kerberos configuration file (etc/krb5.conf) and a default key table (krb5.keytab) file to enable your Kerberos-enabled applications to authenticate through Active Directory. These files are maintained by the agent and are updated to reflect any changes in the Active Directory forest configuration. The Centrify local cache stores user credentials and other information for offline access and network efficiency. In addition to these core components, the agent can also be extended with the additional software packages, including modified versions of programs such as Kerberos command line tools, OpenSSH, OpenLDAP, and PuTTY utilities. Centrify-enabled versions of these programs allow you to use Active Directory accounts and Kerberos credentials for authentication, authorization, and policy enforcement services. Centrify also provides authentication modules that enable you to configure single sign-on for web and database applications, and specialized extensions such as the adnisd Network Information Service, which enables you to publish information stored in Active Directory to NIS clients. Key operations handled by the adclient process The most important element in the agent is the adclient process. The adclient process runs as a single trusted service. This process is automatically added as a boot service and is started whenever you reboot a managed computer. The adclient process handles all of the Planning and Deployment Guide 24 Core agent components and services direct communication with Active Directory and manages all of the operations provided through the other services. The adclient process performs the following key tasks on managed computers: Locates the appropriate domain controllers for the local computer based on the Active Directory forest and site topology published by the Windows DNS server. If a domain controller becomes unavailable, the adclient process automatically locates the next available domain controller to ensure uninterrupted service. Provides Active Directory with credentials for the local computer account to verify the computer is a valid member of the domain. Delivers and stores user credentials so that users can be authenticated by Active Directory and, once authenticated successfully, can sign on even if the computer is disconnected from the network for mobile access or if Active Directory is unavailable. Caches query responses and other information, including positive and negative search results, to reduce network traffic and the number of connections to Active Directory and to ensure users can work uninterrupted and start new application sessions using their existing login credentials. All communication with Active Directory is encrypted to ensure security, and you can manage the cache through configuration parameters or group policy. Creates and maintains the Kerberos configuration and service ticket files to allow existing Kerberos-enabled applications to work with Active Directory without any manual configuration. Synchronizes the local computer’s time with the clock maintained by Active Directory to ensure the timestamp on Kerberos tickets issued by the KDC are within a valid range. Resets the password for the local computer account in Active Directory at a regular interval to maintain security for the account’s credentials. Provides all the authentication, authorization, and directory look-up services retrieved from Active Directory to the other Centrify agent services, such as the PAM service or the Apache authentication module. How the Centrify agent interacts with PAM applications Pluggable Authentication Modules (PAM) are a common mechanism for configuring authentication and authorization used by many UNIX programs and applications. If a program or application uses PAM for authentication and authorization, the rules for authenticating the user are configured in either the PAM configuration file, /etc/pam.conf or in application-specific files in the /etc/pam.d directory. The Centrify UNIX agent includes its own Pluggable Authentication Module (pam_centrifydc) that enables any application that uses PAM, such as ftpd, telnetd, login, and Apache, to authenticate users through Active Directory. When you join a Chapter 2 • Architecture and basic operations 25 Core agent components and services domain, the pam_centrifydc module is automatically placed first in the PAM stack in system-auth, so that it takes precedence over other authentication modules. The pam_centrifydc module is configured to work with adclient to provide a number of services, such as checking for password expiration, filtering for users and groups, and creating the local home directory and default user profile files for new users. The services provided through the pam_centrifydc module can be customized locally on a computer, modified through Active Directory group policy, or configured through a combination of local and Active Directory settings. Working in conjunction with the adclient process, the pam_centrifydc module provides the following services for PAM-enabled programs and applications: Requests the PAM-enabled application to prompt for a password when appropriate and verifies whether the application-provided user name and password are valid in Active Directory. Checks whether the user’s password has expired in Active Directory. If the password has expired, the pam_centrifydc module prompts the user to change the password, and forwards the new password to the adclient process, which communicates the change to Active Directory. Queries the adclient process to determine whether any access control policies are applied. For example, the pam_centrifydc module uses the information in the centrifydc.conf file to determine whether a local user attempting to log on is mapped to an Active Directory account, whether specific users or groups have been granted or denied permission to log on to the local computer, or whether Active Directory authentication should be ignored for a specific user or group. Creates the local home directory and default user profile files for new users. The pam_centrifydc module uses skeleton files to set up the user environment when new Active Directory users log on to a managed computer for the first time. Most of these tasks are performed during a user login session as a series of requests and replies from the pam_centrifydc module to Active Directory through the adclient process for those programs and applications that are configured to use PAM. Because PAM is the most common authentication service used by UNIX programs and applications, the pam_centrifydc module is the most commonly used for a typical log-on session. For a more detailed description of a typical log-on process, see “What happens during the typical log-on process” on page 28. The order in which identity stores are listed in the nsswitch.conf file does not influence authentication. Authentication and authorization services are provided by Active Directory through the Centrify agent and its PAM component, and by default, Active Directory is always tried before any other sources. The order in which sources are checked is controlled through the PAM configuration settings, for example, the lines defined in the pam.conf file. In general, you should not modify the PAM configuration because Note Planning and Deployment Guide 26 Core agent components and services making changes to these settings can compromise security or produce unexpected and undesirable results. How the Centrify agent modifies the operation of NSS The Name Service Switch (NSS) provides a mechanism for identifying sources of network information a computer should use, such as local password and group files, NIS maps, NIS+ tables, LDAP, and DNS, and the order in which these sources should be consulted when looking up users, groups, host names, and other information. When you join a domain, the NSS configuration file, nsswitch.conf, is automatically updated to use the Centrify agent’s NSS module first. Using the adclient process and the service library, the Centrify NSS module accesses network information that’s stored in Active Directory through LDAP. When a UNIX program or application needs to look up information, it checks the file and is directed to use the nss_centrifydc module. The nss_centrifydc module directs the request to Active Directory through the adclient process. The adclient process provides the information retrieved from Active Directory, then caches the information locally to ensure faster performance, reduce network traffic, and allow for disconnected operation. nsswitch.conf The order in which identity stores are listed in the nsswitch.conf file does not influence authentication. Authentication and authorization services are provided by Active Directory through the Centrify agent and its PAM service, so Active Directory is always tried before any other sources, regardless of what you have specified in the nsswitch.conf file. Instead, the nsswitch.conf file determines the sources to use in responding to NSS queries such as getpwnam. In general, you should not modify this file because modifying the file can compromise security and complicate auditing activity. In addition, you should not specify ldap as a source in any nsswitch.conf file where you have installed the Centrify agent. Specifying ldap in the nsswitch.conf file can cause the system to crash. Note How the Centrify agent manages Kerberos files Kerberos is a network authentication protocol for client/server applications that uses encrypted tickets passed through a central Key Distribution Center to verify the identity of a user or service requesting access. Because Kerberos is an industry standard and a secure network authentication mechanism, you may already have UNIX programs and services that are configured to use it. To allow those existing Kerberized applications to work with Active Directory without manual configuration, the adclient process automatically creates and maintains the Kerberos configuration file, krb5.conf, and the krb5.keytab service ticket file to point Kerberos-enabled services and applications to the Key Distribution Center (KDC) in Active Directory when you join a domain. The configuration file is initially created using information collected by probing DNS and Active Directory with the default domain set to the domain that the computer has joined. Whenever a logon or ticket validation is performed with a domain that is not in the Chapter 2 • Architecture and basic operations 27 What happens during the typical log-on process configuration file, the configuration file is updated so that it includes the new domain. Although the adclient process can automatically update the file as needed, it does not destroy existing configuration entries that you may have added by hand. Because of this, Centrify agents work seamlessly with existing Kerberos-enabled applications. What happens during the typical log-on process The core Centrify UNIX agent components work together to identify and authenticate the user any time a user logs on to a computer using any UNIX command that requires the user to enter credentials. The following steps summarize the interaction to help you understand the process for a typical log on request. The process is similar, though not identical, for UNIX commands that need to get information about the current user or group. The following steps focus on the operation of the agent rather than the interaction between the agent and Active Directory. In addition, these steps are intended to provide a general understanding of the operations performed through the agent and do not provide a detailed analysis of a typical log on session. Note When a user starts the UNIX computer, the following takes place: 1 A login process starts and prompts the user to supply a user name. 2 The user responds by entering a valid local or Active Directory user name. 3 The login process, which is a PAM-enabled program, then reads the PAM configuration file, /etc/pam.conf, and determines that it should use the Centrify PAM service, pam_centrifydc, for identification. 4 The login process passes the login request and the user name to the Centrify PAM service for processing. 5 The pam_centrifydc service checks the pam.allow.override parameter in the Centrify agent configuration file to see if the user name entered is an account that should be authenticated locally. If the user should be authenticated locally, the pam_centrifydc service passes the login request to the next PAM module specified in the PAM configuration file, for example, to the local configuration file /etc/passwd. If the user is not listed as an override account, the pam_centrifydc service continues with the login request and checks to see if the adclient process is running, then passes the login request and user name to adclient. 6 The adclient process connects to Active Directory and queries the Active Directory domain controller to determine whether the user name included in the request is a user who has access to computers in the current computer’s zone. If the adclient process is unable to connect to Active Directory, it queries the local cache to determine whether the user name has been successfully authenticated before. Planning and Deployment Guide 28 What happens during the typical log-on process If the user account does not have access to computers in the current zone or can’t be found in Active Directory or the local cache, the adclient process checks the Centrify agent configuration file to see if the user name is mapped to a different Active Directory user account with the adclient.mapuser.username parameter. If the user name is mapped to another Active Directory account in the configuration file, the adclient process queries the Active Directory domain controller or local cache to determine whether the mapped user name has access to computers in the current computer’s zone. 7 If the user has a UNIX profile for the current zone, the adclient process receives the zone-specific information for the user, such as the user’s UID, the user’s local UNIX name, the user’s global Active Directory user name, the groups of which the user is a member, the user’s home directory, and the user’s default shell. 8 The adclient process checks for NSS override settings (nss.group.override and nss.user.override) to determine whether there are any changes to the user profile or additional restrictions that should override the profile retrieved or prevent the user from logging on. 9 The adclient process queries through the nss_centrifydc service to determine whether there’s another user currently logged in with same UID. If there is a potential conflict between local user account and the UNIX profile for an Active Directory account, the adclient process notifies the pam_centrifydc service of the potential conflict. The pam_centrifydc service checks the Centrify agent configuration file to determine to issue a warning, ignore the conflict, or prevent the user from logging on. If the login continues, the pam_centrifydc service asks the login process for a password. 10 The login process prompts the user to provide a password and returns the password entered to the pam_centrifydc service. 11 The pam_centrifydc service checks the pam.allow.users and pam.deny.users parameters in the Centrify agent configuration file to see if any user filtering has been specified to allow or deny access to specific user accounts. If any user filtering has been specified, the current user is either allowed to continue with the login process or denied access. 12 The pam_centrifydc service checks the pam.allow.groups and pam.deny.groups parameters in the agent configuration file to see if any group filtering has been specified to allow or deny access to members of specific groups. If any group filtering has been specified, the current user is either allowed to continue with the login process or denied access based on group membership. Chapter 2 • Architecture and basic operations 29 What happens during the typical log-on process 13 If the current user account is not prevented from logging on by user or group filtering, the pam_centrifydc service queries the adclient process to see if the user is authorized to log on. 14 The adclient process queries the Active Directory domain controller through Kerberos to determine whether the user is authorized to log on to the current computer at the current time. 15 The adclient process receives the results of its authorization request from Active Directory and passes the reply to the pam_centrifydc service. 16 The pam_centrifydc service does one of the following depending on the content of the authorization reply: If the user is not authorized to use the current computer or to log in at the current time, the pam_centrifydc service denies the user’s request to log on through the UNIX login process. If the user’s password has expired, the pam_centrifydc service sends a request through the UNIX login process asking the user to change the password. After the user supplies the password, the login process completes successfully. If the user’s password is about to expire, the pam_centrifydc service notifies the user of impending expiration through the login process. If the user is authorized to log on and has a current password, the login process completes successfully. If this is the first time the user has logged on to the computer through the Centrify agent, the pam_centrifydc service creates a new home directory on the computer in the location specified in the agent configuration file by the parameter pam.homeskel.dir. The following figure provides a simplified view of a typical log-on process when using the Centrify agent. Planning and Deployment Guide 30 How the Centrify agent handles failover and disconnected operation How the Centrify agent handles failover and disconnected operation The Centrify agent caches data from Active Directory so that users can log on and perform tasks even if the network or Active Directory server is unavailable, whether because of unexpected connectivity problems, scheduled maintenance, or offline operation of a portable computer. There are several configuration parameters that manage how the agent determines its connectivity to Active Directory, the domain controllers it should attempt to connect to, and the operation of the agent if it is unable to connect to any domain controller. In most cases, you can set the values for this configuration parameters through Centrify group policies or by editing the /etc/centrifydc/centrifydc.conf configuration file on individual computers. The next sections provide an overview of how the agent determines the connection status and locates a domain controller to use. Establishing a connection to DNS and Active Directory With each request to Active Directory, the Centrify agent determines its connection status based on upon the availability of DNS and Active Directory. If a DNS request for a host name takes longer than the number of seconds specified by the adclient.dns.response.maxtime parameter, the agent assumes DNS is down and switches to disconnected mode. While running in the disconnected mode, the agent does not attempt any more synchronous network communications. Instead, it runs a background thread every 30 seconds to determine when DNS becomes available. The default value for the adclient.dns.response.maxtime is 10 seconds, but this value can be changed by group policy or by editing the /etc/centrifydc/centrifydc.conf file. If the network is disconnected for a short period of time, but during that time no data is needed from Active Directory, the agent does not switch into disconnected mode. The status only changes if a connection attempt to DNS or to Active Directory through LDAP fails. Note If the initial DNS request for a host name is successful, the Centrify agent attempts to connect to the appropriate Domain Controller and Global Catalog for its joined domain using the site information found in DNS. Site information is configured using Active Directory Sites and Services and is defined by subnet. Using the site information, the agent queries DNS for a list of the domain controllers in its site and attempts to connect to the nearest domain controller. It will continue trying to connect to each of the domain controllers in its site based on proximity until it finds a server available. If the agent is unable to connect to any of the domain controllers in its site or if no site information is available, the agent tries to connect to any remaining domain controllers listed in DNS. The adclient.ldap.socket.timeout parameter determines the maximum number of seconds the Centrify UNIX agent will wait for a socket connection timeout while binding to the LDAP server. The default value is 5 seconds. Chapter 2 • Architecture and basic operations 31 How the Centrify agent handles failover and disconnected operation Restricting the domain controllers contacted If you have a large Active Directory infrastructure or some unreliable subnets, you may want to restrict the domain controllers the agent should attempt to connect to if its primary domain controller becomes unavailable. You can limit the list of domain controllers the agent should attempt to connect to by setting the following property in the centrifydc.conf file: dns.dc.domain_name: hostname [hostname] ... where the domain_name is the Active Directory domain name and the hostname is a fullyqualified host name that can be resolved using DNS or the /etc/hosts file. You can also limit the list of Global Catalog domain controllers the agent should attempt to connect to by setting the following property in the centrifydc.conf file: dns.gc.forest_name: hostname [hostname] ... where the forest_name is the forest root domain and the hostname is a fully-qualified host name that can be resolved using DNS or the /etc/hosts file. Alternatively, you can use the adclient.server.try.max parameter or Maximum Server Connection Attempts group policy to limit the number of domain controllers the agent will attempt to connect to before switching to disconnected mode, eliminating the need to explicitly list the domain controllers using the dns.dc.domain_name and dns.gc.forest_name parameters. For example, to have the agent try a maximum of three domain controllers, you can set the following property in the centrifydc.conf file: adclient.server.try.max: 3 Because Global Catalog and domain controller connections are handled independently, Centrify agent can still provide authentication services if the Global Catalog domain controllers is disconnected, as long as another domain controller is available. Determining when a specific domain controller is unavailable Once a connection to a domain controller is established, each subsequent request for information from Active Directory checks the connection status. If a request is made to Active Directory and a response is not received within the number of seconds specified by the adclient.ldap.timeout parameter, that request is retried once. For the second request, the agent will wait up to twice as long for a response. If the second request is not answered within that amount of time, the connection to that specific domain controller is considered disconnected. Once a connection to a specific domain controller is in disconnected mode, a background thread will attempt to reconnect to that domain approximately every 30 seconds. By default, the agent waits 7 seconds for a response to the first request. If the request isn’t answered, it retries the request and waits up to another 14 seconds for a response before switching to disconnected mode. The adclient.ldap.timeout parameter specifies the maximum number of seconds to wait for Active Directory fetch, update, and delete requests to improve the response time when an initial connection attempt fails. A separate parameter, adclient.ldap.timeout.search, specifies the maximum time to wait for search requests. If the search timeout value is not Planning and Deployment Guide 32 How the Centrify agent handles failover and disconnected operation specified, the default is double the adclient.ldap.timeout value. By default, therefore, the agent waits a maximum of 14 seconds for search requests. The values for these parameters can be adjusted for high load or latency networks by configuring group policies or by editing the /etc/centrifydc/centrifydc.conf file. Responding to DNS configuration changes The DNS information collected when the agent starts and connects to a domain controller is not cached, and idle connections to Active Directory are dropped after 5 minutes by default. If you make changes in the DNS configuration, those changes are detected the next time the agent needs to reconnect, either because an idle connection has been dropped, or the currently connected domain controller suddenly becoming unavailable. Connecting to external forests and trusted domains If the Centrify agent establishes a successful connection to the joined domain, it also generates or updates the /etc/krb5.conf file using the domain trust information from the Global Catalog, and attempts to connect to the trusted domains or to external forests to find all of the domains that are trusted. Depending on the trust relationships you have defined, network topology, or firewall requirements, querying external trusted forests can have a significant, negative impact on network performance. You can control whether trusted domains and external forests are queried to establish transitive trusts and cross-forest authentication with the adclient.ldap.trust.enabled parameter. Setting the adclient.ldap.trust.enabled parameter to true indicates that you want the Centrify agent to query trusted domains and forests. Setting this parameter to false disables this feature so that the agent does not connect to external forests and domains. If you set the adclient.ldap.trust.enabled parameter to true, you can control the maximum number of seconds to wait when searching for trust information in external forests and other trusted domains with the adclient.ldap.trust.timeout parameter. By default, the agent waits 10 seconds. The search operation is not retried if the request times out, but the request is regenerated approximately once an hour. If your trusted domains and forests are widely distributed, have slow or unreliable network connections, or are protected by firewalls, you may want to increase the value for this parameter to allow time for the Centrify agent to collect information from external domains and forests. Chapter 2 • Architecture and basic operations 33 Chapter 3 Deployment process overview This chapter summarizes what’s involved in deploying Centrify software. It includes simplified diagrams that highlight the steps involved and describes the tasks that are done only once, the tasks that are repeated to complete a deployment, and the tasks that may be part of the deployment project or ongoing administration after deployment. What’s involved in a typical deployment project The following illustration provides a visual summary of the deployment process and highlights the keys to success. 34 What’s involved in a typical deployment project The next sections provide additional details about what’s involved in each phase or the decisions you will need to make, such as who should be part of the deployment team, where to install the software, and who has permission to do what. Plan During the first phase of the deployment, you should collect and analyze details about your organization’s requirements and goals. You can then make preliminary decisions about sizing, network communication, and what your zone structure should look like. Here are the key steps involved: Assemble a deployment team with Active Directory and UNIX expertise. The team might also include specialists, such as database administrators, network architects, or application owners. For more information about assembling a deployment team, see “Preparing a deployment team” on page 14. Provide basic training so that members of the deployment team are familiar with Centrify concepts and terminology and know where to go for more information. Analyze the existing environment to determine your goals and requirements and identify target computers on which you plan to install Centrify components. This step is essential for designing the zone structure if you are migrating any local accounts or legacy profiles. It is also critical if you are deploying the auditing infrastructure. For more information about the questions to answer and factors that affect deployment, see “Common factors that affect deployment decisions” on page 17. Design a basic zone structure that suits your organization. Chapter 3 • Deployment process overview 35 What’s involved in a typical deployment project The zone structure depends primarily on how you want to use zones. For more information about deciding how to use zones, see “Why use zones?” on page 105. Identify a target set of computers for deployment and check that required ports are open. Default ports for network traffic and communication To help you plan for network traffic, the following ports are used in the initial set of network transactions when a user logs on and the agent connects to Active Directory: Directory Service - Global Catalog lookup request on port 3268. Authentication Services - LDAP sealed request on port 389. Kerberos – Ticket Granting Ticket (TGT) request on port 88. Network Time Protocol (NTP) Server – Time synchronized for Kerberos on port 123. Domain Name Service (DNS) – Host (A), Pointer (PTR), Service Location (SRV) records on port 53. Depending on the specific components you deploy and operations performed, you might need to open additional ports. The following table summarizes the ports used for different editions of Centrify software. This port Is used for Centrify software and operation requiring this port 389 Encrypted TCP/UDP communication Standard edition, Active Directory authentication and client LDAP service. 3268 Encrypted TCP communication Standard edition, Active Directory authentication and LDAP global catalog updates. 88 Encrypted UDP communication Standard edition, Kerberos ticket validation and authentication, agents, Centrify PuTTY 464 Encrypted TCP/UDP communication for Kerberos password changes Standard edition, Kerberos ticket validation and authentication for agents, Centrify PuTTY, adpasswd, and passwd. 53 TCP/UDP communication Standard edition, clients use the Active Directory DNS server for DNS lookup requests. 445 Encrypted TCP/UDP communication for delivery of group policies Standard edition, adclient and adgpupdate use Samba (SMB) and Windows file sharing to download and update group policies, if applicable. 123 UDP communication for simple network time Standard edition, keeps time synchronized between protocol (NTP) clients and Active Directory for Kerberos ticketing. 22 Encrypted TCP communication for OpenSSH connections Standard edition, Deployment Manager for secure shell connections on remote clients. You can change the default port for secure shell connections by setting an option in Deployment Manager. For more information about setting this option, see the Deployment Manager User’s Guide. Planning and Deployment Guide 36 What’s involved in a typical deployment project This port Is used for Centrify software and operation requiring this port 23 TCP communication for Telnet connections Standard edition, Deployment Manager for telnet connections on remote clients if you cannot use secure shell (ssh). By default, telnet connections are not allowed because passwords are transferred over the network as plain text. If you configure Deployment Manager to allow telnet connections, this port is used if an attempt to use a secure shell connection fails. none ICMP (ping) connections Standard edition, Deployment Manager to determine whether if a remote computer is reachable. 1433 Encrypted TCP communication for the collector connection to Microsoft SQL Server Enterprise edition, collector service sends audited activity to the database. 5063 Encrypted TCP/RPC communication for the agent connection to collectors Enterprise edition, auditing service records user activity on an audited computer. 443 Cloud proxy server to Centrify cloud service Centrify for mobile device management. 4500 Internet Key Exchange (IKE) for NAT-T Platinum edition, DirectSecure to protect data-in-motion. 500 Internet Key Exchange (IKE) for UDP Platinum edition, DirectSecure to protect data-in-motion. Network connections and database management for auditing If you are planning a deployment with both access management and auditing, you must plan for reliable, high-speed network connections between components that collect and transfer audit data and how network traffic will be affected. You must also plan how you will create and manage the databases that store and retrieve audit data, your data archiving and retention policies, auditor permissions, and other details. For more information about planning and sizing for auditing, see the Auditing with Centrify Server Suite Administrator’s Guide. Chapter 3 • Deployment process overview 37 What’s involved in a typical deployment project Prepare After you have analyzed the environment, you should prepare the Active Directory organizational units and groups to use. You can then install administrative consoles and prepare initial zones. Here are the key steps involved: Create organizational units or containers to define a scope of authority. For example, if you want to organize all of the UNIX-related information together for your organization, you can create one top-level container for the enterprise, such as Centrify UNIX. If you want to define the scope of authority at a regional or business unit level, you might have separate top-level containers for the different regions or business units, for example, UNIX NA-SA, UNIX EMEA, UNIX PACIFIC or UNIX-Federal, UNIXConsumer, UNIX-Industrial. The deployment project team should consult with the Active Directory enterprise administrator to determine the appropriate top-level containers or organizational units and who should be responsible for managing and delegating administrative tasks for the objects in those top-level containers. For more information about creating organizational units or containers in Active Directory, see “Designing organizational units for Centrify” on page 47. Create the appropriate Active Directory security groups for your organization. Planning and Deployment Guide 38 What’s involved in a typical deployment project Groups can simplify permission management and the separation of duties security model. For more information about using groups, see “Security groups to manage Centrify information” on page 55. Select at least one administrative Windows computer and install Centrify components Access Manager and Deployment Manager. This step is not strictly required if you only use existing processes or scripts to perform administrative tasks, but Centrify recommends you have at least one computer where you can use the graphical user interface to perform common tasks. If you are deploying the auditing infrastructure, you should also install Audit Manager and Audit Analyzer. For more information about installing Centrify software on Windows, see “Installing Centrify DirectManage Access” on page 61. Start the Access Manager console to run the Setup Wizard for the Active Directory domain. Create a parent zone and the appropriate child zones as identified in your basic zone design. The hierarchical zone structure you use depends primarily on how you want to use inheritance and overrides. For more information about creating parent and child zones, see “Creating the first zone” on page 122. Start Deployment Manager and discover a target set of computers. Analyze discovered computers for issues. Fix errors found and fix or ignore warnings, then reanalyze computers. Deploy After you have prepared Active Directory, installed administrative consoles on at least one computer, and created at least one zone, you are ready to deploy on the computers to be managed. Here are the key steps involved: Chapter 3 • Deployment process overview 39 What’s involved in a typical deployment project Download agent software from the Centrify Download Center or a network location. Deploy the agent software on discovered computers that are ready for installation. Determine whether there are any local accounts to migrate. Right-click discovered computers, then click Export Users and Groups to generate a text file containing information about local accounts. Review the text file to determine whether there are any local accounts to migrate to Active Directory. If there are local accounts that must be able to log on to the discovered computer, import the groups, then users and assign them the default UNIX Login role. For more information about migrating local accounts, see“Migrating an existing user population to hierarchical zones” on page 132. Join the domain using Deployment Manager or the adjoin command. Prepare basic group policies. The most common Windows computer configuration policies to deploy are: Interactive Logon: Message text for users attempting to log on:—Enable and type a message that instructs the user to log on with an Active Directory user name and password. Global Configuration Settings - MaxPollInterval:—Enable and set an interval if you are using Active Directory and the Centrify network time provider. Disable if you are using a native UNIX NTP daemon. Enable Windows NTP Client—Enable if you are using Active Directory and the Centrify network time provider. Disable if you are using a native UNIX NTP daemon. The most common Centrify computer configuration policies to deploy are: Set login password prompt—Enable and type a message that instructs the user to log on with an Active Directory user name and password. Copy files—Enable to copy configuration files such as those required by autofs or sshd from the SYSVOL folder to managed computers. Generate forwardable tickets—Disable to prevent logon tickets from being sent from one computer to another. Planning and Deployment Guide 40 What’s involved in a typical deployment project Validate After you have deployed agents on target computers, you should test and verify operations before deploying on the additional computers. Here are the key steps involved: Log on to a target computer using an Active Directory user account and password to verify Active Directory authentication. Test password policy enforcement by attempting to change to a password that violates password complexity rules. Test account lockout and reset. Chapter 3 • Deployment process overview 41 How deployment tasks differ from ongoing administrative tasks Manage After you have verified the successful deployment on target computers, there are many ways you can refine, manage, and enhance on-going operations. Here are a few of the key ways you can add value after deployment: Add custom roles and role assignments for users, groups, and computers. Import custom permissions from sudoers configuration files. Deploy group policies on the appropriate organizational units. Add the auditing infrastructure and add auditing to custom roles. Integrate Centrify software and Active Directory authentication and authorization services with database or web applications. How deployment tasks differ from ongoing administrative tasks For most deployments, there are tasks that you only perform once for an entire organization, tasks that are repeated until the deployment in complete, and tasks that are essential to deployment, but are also administrative tasks that you perform infrequently or periodically after deployment. Steps you only take once In most organizations, you only perform the following tasks once in preparation for the deployment: Assemble a deployment team with Active Directory, UNIX, and other expertise. Provide basic training covering Centrify architecture, concepts, and terminology. Analyze the existing environment: Planning and Deployment Guide 42 How deployment tasks differ from ongoing administrative tasks Find a target set of computers that share a common attribute, such as the same operating system or a similar user population. Plan for permissions and the appropriate separation of duties for your organization. Review network connections, ports, firewall configuration. Identify computers for administration. Basic deployment—Access Manager and Deployment Manager Auditing—Audit Manager and Audit Analyzer consoles, collectors, audit databases and servers, and the installation management server Provisioning service—Zone Provisioning Agent and configuration tool Design a basic zone structure that suits your organization. Single or multiple top-level parents. Initial child zones, for example separate zones for Red Hat Linux and Mac OS X or different functional departments. Create organizational units or containers to define a scope of authority within Active Directory. Create Active Directory security groups for the UNIX Login role and the listed role. Create an Active Directory distribution group for provisioning groups and an Active Directory distribution group for provisioning users if using the provisioning service. Install Access Manager on at least one administrative Windows computer. Open Access Manager for the first time to run the Setup Wizard for the Active Directory domain. Create a parent zone and the appropriate child zones as identified in your basic zone design. Creating additional zones is an infrequent administrative task that is performed when the need arises. The basic zone design should be sufficient for the scope of your initial deployment. Prepare group policies to be applied. Steps you take more than once during deployment In most organizations, you use Deployment Manager repeatedly to discover and deploy the agent on one target set of computers at a time. During deployment, you perform the following tasks multiple times until you have rolled out the agent to all of the target computers that are in scope for the deployment: Start Deployment Manager and discover a target set of computers. Analyze discovered computers for issues. Fix errors found and fix or ignore warnings, then reanalyze computers. Download agent software from the Centrify Download Center or a network location. Deploy the agent software on discovered computers that are ready for installation. Chapter 3 • Deployment process overview 43 What happens after deployment? Right-click discovered computer, then click Export Users and Groups to generate a text file containing information about local accounts. Review the text file to determine whether there are any local accounts to migrate to Active Directory. If there are local accounts to migrate that must be able to log on to the discovered computer: Import the groups, then users. Map groups, then users to the appropriate Active Directory groups and users. Assign migrated accounts the default UNIX Login role. Join the domain using Deployment Manager or the adjoin command. Verify Active Directory authentication and validate other operations. After deployment, discovering new computers and deploying new or updated agents is an ongoing administrative task that should be performed on a regular basis unless you have change control issues that prevent software updates, do not allow Internet connections from the computer where Deployment Manager is installed, or do not want to deploy the agent on computers added to your network. Steps you take after deployment to begin managing zones effectively After you have migrated existing user populations, deployed the agent, and joined a domain, there are additional tasks you perform to complete the deployment and transition into effective zone administration. The following tasks are optional but illustrate common administrative tasks that are often part of the deployment process to prepare for ongoing administration and improvements to operational security and efficiency: Create custom roles for accounts that have permission to run privileged commands. Create computer roles to link groups of computers with specific user role assignments. Map service accounts to Active Directory accounts. Deploy the basic set of group policies for computers and users. What happens after deployment? After deployment, ongoing management of UNIX computers, users, and groups is often handed off to Active Directory or Windows administrators or an internal service desk provisioning team to align with previously established processes and procedures for Windows servers and workstations. This is entirely a matter of organizational policy. However, in many cases UNIX administrators must continue to work with their Windows counterparts to ensure the appropriate rights and roles are assigned and the appropriate group policies are deployed. Planning and Deployment Guide 44 Sample work flow for making deployment decisions Sample work flow for making deployment decisions Centrify software solutions are extremely flexible so that they can be adapted to a wide variety of organizational requirements. All of this flexibility, however, can make deployment decisions difficult, especially in large scale or complex environments. To help you sort out the questions to ask, use the following workflow and responsibilities diagram as a guide. This sample workflow diagram is only intended as a visual guide to the key design decisions you need to make. Many of these topics are covered in more detail in other chapters in this guide. For many organizations, however, the best guidance comes from an on-site Centrify Professional Services consultant or a Centrify partner with experience designing deployment solutions tailored to your organization’s business requirements. For customized help and advice, contact your Centrify sales representative. Chapter 3 • Deployment process overview 45 Chapter 4 Planning Active Directory organizational units and security groups One of the important steps in planning a successful deployment of Centrify Server Suite is to consider how the software fits into your Active Directory infrastructure. This section describes the issues you should consider in the planning phase that affect how Active Directory and Centrify-specific objects are organized and suggests an organizational model you can use to successfully deploy Centrify within an existing Active Directory infrastructure. The following topics are covered: Identifying stakeholders and business processes Designing organizational units for Centrify Selecting the Active Directory location for the top-level OU Creating recommended organizational units Security groups to manage Centrify information Planning for data storage in Active Directory Viewing and manipulating data in Active Directory If you are planning a deployment for managing and monitoring access to Windows computers, only “Licenses and Zones parent containers” on page 54 is applicable and you can skip the other topics in this section. If you are planning a deployment that includes a mix of different platforms, however, you should review the recommendations for using organizational units (OUs) and groups. If you plan to audit activity on any platform, Centrify recommends creating separate Active Directory security groups for auditors, administrators, and the computers that make up the auditing infrastructure. Planning a deployment that includes the auditing infrastructure requires additional resources and expertise. For more information about deploying auditing components, see the Auditing with Centrify Server Suite guide. Identifying stakeholders and business processes Deploying Centrify Server Suite requires you to add objects to the Active Directory forest and, in most cases, update business processes for provisioning and removing users. It is important to identify who will be affected, which processes will be updated, how planned changes affect different parts of the business, and when you plan to deploy as early as possible in the planning stage. It is also important to contact one or more Active Directory administrators to establish who will be creating the necessary objects in Active Directory and communicate the permissions 46 Designing organizational units for Centrify required to create and manage those objects. If internal policies only allow Active Directory administrators to create organizational units (OUs) or security groups, you may need to negotiate when those activities take place and who will own the objects after they are created. Identifying the appropriate people and processes early in the project helps eliminate unnecessary delays to the deployment and adoption of Centrify Server Suite. Communicating how the deployment affects the user and administrative communities helps ensure you can deploy rapidly and complete the project on-time. The single biggest obstacle to storing UNIX data in Active Directory is overcoming internal process issues, such as change control restrictions, naming convention requirements, or proper authorization to perform administrative tasks. If you identify and resolve these challenges at the start of the project, deploying Centrify Server Suite across the enterprise becomes a fairly straightforward and painless task. Note If you are a UNIX administrator, keep in mind that changes to Active Directory often require a formal change request and approval process, which can take time and delay the project. The earlier you begin planning the changes to Active Directory and the appropriate separation of duties for managing UNIX objects before, during, and after migration, the more successful the deployment will be. Designing organizational units for Centrify You can store Centrify-specific objects anywhere in the Active Directory structure if you choose. However, Centrify recommends that you create a single, high-level organizational unit (OU) specifically for Centrify objects at or near the top-level of an Active Directory forest root domain. Using one high-level organizational unit simplifies the management of Centrify containers and UNIX data. Consolidating all UNIX data under a single organizational unit enables you to establish an appropriate separation of duties without affecting any other previously-established OUs or permissions in Active Directory and reduces the need for additional process documentation or training. The disadvantage is that there may be strict authorization policies against setting up new organizational units. Selecting the Active Directory location for the top-level OU If you plan to follow the Centrify recommendation to create a top-level organizational unit for UNIX, this high-level OU should be named so that it is easy to identify. For example, name the OU Centrify or Centrify UNIX. In deciding where this top-level OU should be placed, you should review your current Active Directory infrastructure. There are several common scenarios: Single forest with a single domain Chapter 4 • Planning Active Directory organizational units and security groups 47 Selecting the Active Directory location for the top-level OU Single forest with an empty root domain Single forest with account and resource domains Multiple forests with trust relationships Forests separated by a firewall (DMZ) Single forest with a single domain If you have a single forest with a single Default-First-Site domain, you can create the top-level OU fat the same level as the default containers for Computers, Users, and other top-level objects. This is the simplest implementation of an Active Directory infrastructure. In this scenario, the top-level Centrify OU might look similar to this: Single forest with an empty root domain In this scenario, the forest root domain is used for the DNS namespace with one or more child domains that store information about computers, users, and groups. This is the most common Active Directory implementation. There are two important considerations if this is your Active Directory infrastructure: It is likely you will have a disjointed DNS namespace that you will need to resolve when you join computers to the domain. You might want to use multiple top-level Centrify OUs for the site. For example, assume the empty forest root domain, sidebet.org, contains three child domains: us.sidebet.org europe.sidebet.org asia.sidebet.org In this scenario, you might have a top-level Centrify OU in each child domain that includes UNIX computers to allow for more efficient data management and delegation of administrative tasks. However, if the child domains are centrally managed, you might want to create a single OU for Centrify in the forest root or one of the child domains. In general, you should base your decision on who will be responsible for managing the Centrify objects. If there are separate administrative groups for each child domain, create a top-level Centrify OU in each child domain. Planning and Deployment Guide 48 Selecting the Active Directory location for the top-level OU Single forest with account and resource domains In this scenario, the forest root domain has at least two child domains. One child domain stores computer principals and related information. This domain is the resource domain. Another child domain stores the user and group principals. This domain is the account domain. This scenario requires a trust relationship that allows the computers in the resource domain to trust the users and groups in the account domain. If this is your Active Directory infrastructure, you should store the Centrify data in the resource domain. For example, if the root domain, sidebet.org, contains the child domains accounts.sidebet.org and resources.sidebet.org, you would define the top-level Centrify OU in the resources.sidebet.org (OU=Centrify,DC=resources,DC=sidebet,DC=org). Multiple forests with trust relationships In this scenario, you have more than one forest needing access to Centrify data. If you have multiple forests in your organizations, you should create the top-level OU for Centrify in the forests that have UNIX computers. The forests must also be configured with either a one-way or two-way trust relationship. Cross-forest authentication requires a forest functional level of Windows Server 2003 or later. Trust relationships that involve Windows NT 4.0 domains or Kerberos V5 realms are not supported. Cross-forest authentication for two-way trust relationships For forests that have a two-way trust relationship, users from either forest can be authenticated to log on to the other forest. For example, if you have configured a two-way trust relationship between the forest root domain sidebet.org and youbet.org, and there are both UNIX computers and UNIX users in both forests, you would create one top-level Centrify OU in each forest and users from either forest can be authenticated to the computers in either forest. Cross-forest authentication for one-way trust relationships To allow for cross-forest authentication with a one-way trust, Centrify authenticates users in the trusted “accounts” forest to allow those users to log on to computers in the “resources” forest. Users in the trusting “resources” forest cannot log on to computers in the “accounts” forest. For cross-forest authentication with a one-way trust, when you add the user from the “account” forest to the Centrify zone, the user’s samAccountName attribute is stored in the zone object. Therefore, once the user is added to the zone, their samAccountName cannot change without causing authentication to fail. Analyzing trust relationship to prevent authentication failures If your Active Directory environment does not permit one- or two-way trusts between forests, however, or uses a complex combination of one-way and two-way trust Chapter 4 • Planning Active Directory organizational units and security groups 49 Creating recommended organizational units relationships between forests, users who attempt to log on from a remote forest may be denied access if the forest they are logging on to or the forest they are logging in from do not share a trust relationship. As part of your deployment planning you should review your entire Active Directory infrastructure and determine whether you will be authenticating users from multiple forests and how trust relationships are defined for the forests users need access to. You may want to change the trust relationships you have defined. For information about configuring trust relationships, see your Active Directory documentation. Forests separated by a firewall (DMZ) If you have a firewall between a forest outside of the firewall (the perimeter or DMZ forest) and a protected forest inside the firewall (the internal or corporate forest), the best security practice is to make the DMZ a separate forest with no trust relationship. In this scenario, the top-level Centrify OU is created in the corporate forest protected by the firewall. This configuration ensures that the domain controllers in the perimeter forest cannot compromise the corporate domain controllers or get access to the corporate global catalog (GC), which stores information about all domains in the forest. Although defining no trust relationship between the perimeter forest and the corporate forest is considered the best practice for security reasons, this configuration prevents authentication through the firewall. If you want to enable authentication for users in the corporate forest and allow them to access resources in the perimeter forest, Centrify recommends that you create a separate Active Directory forest for the computers to be placed in the network segment you are going to use as the demilitarized zone. You should then establish a one-way outgoing trust from the internal forest to the DMZ forest. For more information about deploying Centrify in a DMZ, see “Planning to deploy in a demilitarized zone (DMZ)” on page 205. Creating recommended organizational units In addition to the top-level Centrify OU, Centrify recommends you create several additional organizational units for managing UNIX groups, users, and computer accounts and rights and roles. These additional organizational units are intended to help you establish an appropriate separation of duties before, during, and after migration. Centrify recommends the following organizational units as a starting point: Centrify Administration Computer Roles Computers Provisioning Groups Planning and Deployment Guide 50 Creating recommended organizational units Service Accounts UNIX Groups User Roles Using Access Manager to create the organizational units If you want to create the recommended organizational unit structure for Centrify objects during your initial deployment, you can do so automatically using the Access Manager Setup Wizard. The first time you start Access Manager, it opens the Setup Wizard by default. From the Setup Wizard, you can create all of the containers for the recommended deployment structure automatically without any manual configuration. Alternatively, you can create a completely custom deployment structure by first creating a PowerShell script that creates the containers you want to use then running the custom script from within the Setup Wizard. If you use the default script, the wizard adds the recommended organizational units and groups under the top-level Centrify OU and ensures all of the permissions are properly set on the objects within it. You can then select an existing organizational unit or create a new organizational unit for the components of the deployment structure. If you use the default deployment script without modification, it creates a structure like this: If you want to customize the script, you can use the wizard to export it. After exporting the script, you can modify it in a text editor, then restart the wizard to use the modified script. The Setup Wizard will also create the parent container for Licenses and the parent container for Zones in the Active Directory location you select. As you roll-out the deployment, you might find additional OUs are useful. For example, you might create additional OUs because specific permissions must be granted to create, modify, delete, and manage the objects within them. By creating this organizational structure, you can control who has permission to manage the Centrify objects contained in each OU. By using the recommended deployment structure and associated permissions, you will have a solid foundation for deploying Centrify Server Suite across the enterprise without affecting any of your existing Active Directory structure. The recommended deployment structure will also enable you to easily apply group policies and manage user, group, and computer accounts. Chapter 4 • Planning Active Directory organizational units and security groups 51 Creating recommended organizational units For more information about the purpose of the additional organizational units, see the appropriate section. Centrify Administration organizational unit The Centrify Administration OU is intended to store Active Directory security groups that ensure the separation of duties and the segregation of Centrify-related administrative operations in Active Directory. In most cases, you will want to allow your existing Active Directory account fulfillment or provisioning team to edit UNIX groups and, potentially, the user role groups that allow for elevated permissions in UNIX. If users you have identified as Centrify Administrators are stored in the same organizational unit as the rest of the UNIX groups, then members of the fulfillment or provisioning team could grant themselves permissions to create, modify, and delete zones. With these permissions, a disgruntled provisioning staff member could delete one or more zones and prevent access to production computers. To prevent this security risk, Centrify recommends you create a separate Centrify Administration organizational unit and protect access to it. Computer Roles organizational unit The Computer Roles OU is intended to store the computer group accounts that are associated with a specific computer role. For example, if you plan to have a computer role for computers that host Oracle databases and the set of users assigned the database administrator role, you might create an Active Directory security group called Oracle_Production_Computers in this OU for the computers that host Oracle databases. If you were to add a new Oracle database instance, you would add the computer account for that database server to the Oracle_Production_Computers in this OU. In most cases, the computer groups in this organizational unit are associated with the user role groups you add to the User Roles OU. For example, if you have a computer role for computers that host Oracle databases, you might have user role groups for database administrators and another user role group for database users. If you were to change who should be allowed to use the database or perform database administration activities, you would modify the membership of these two user role groups. Computers organizational unit The Servers OU is intended to store new computer principals in Active Directory. This organizational unit enables you to efficiently deliver computer-based group policies from Active Directory. For example, you can use a group policy to turn off SNTP updates from Active Directory for Centrify-managed computers to prevent those computers from having two registered time sources. Having a separate OU also enables you control who has the permissions and authority to create, update, and delete computer objects in the domain. Planning and Deployment Guide 52 Creating recommended organizational units Provisioning Groups organizational unit The Provisioning Groups OU is intended to store Active Directory distribution groups that are used by the Zone Provisioning Agent. The Zone Provisioning Agent is a Windows service that processes the business rules for creating or deleting UNIX profiles in zones. For example, if a new Active Directory user principal is in one of these group principals, and the group is associated with a zone, the user is automatically provisioned with a UID and a GID in that zone. The profile does not allow the user to log on to computers in the zone. Identity management is separate from access management. The user’s role assignments control access. Note During the migration process, users you have identified as Centrify Administrators should have the appropriate permissions and authority to create, delete, and manage the membership of these Active Directory distribution groups. After migration, the team that owns the process for the provisioning UNIX accounts will need the same permissions and authority. For details about the permissions required to perform these tasks, see “Setting rights to work with group accounts” on page 267. Service Accounts organizational unit The Service Accounts OU is intended to store the Windows service account for the Zone Provisioning Agent and any UNIX-specific service accounts that do not correlate to existing Active Directory user accounts. For example, you can use this OU for application service accounts, such as Oracle or MySQL, to enable centralized password management and auditing. By migrating service accounts from UNIX, you can centrally manage the account information, passwords, and privileges for those service accounts and their associated UNIX groups. UNIX Groups organizational unit In this deployment model, the UNIX Groups OU is intended to store Active Directory security groups that are migrated from /etc/group files or NIS group maps that you want to preserve. As part of the initial migration, you should identify one or more users as Centrify Administrators who should be granted the appropriate permissions and the authority to create new Active Directory group principals, and to add Active Directory user principals to the new groups. After the migration is complete, another team might be responsible for managing the UNIX groups migrated into Active Directory. The team that owns the process for adding UNIX users to a UNIX group, removing UNIX users from a UNIX group, or creating new UNIX groups will need the permissions and the authority in Active Directory to create and delete group principals and manage the membership of those group principals in this OU (for Chapter 4 • Planning Active Directory organizational units and security groups 53 Creating recommended organizational units example, ou=unix groups,ou=Centrify). For details about the permissions required to perform these tasks, see “Setting rights to work with group accounts” on page 267. User Roles organizational unit The User Roles OU is intended to store Active Directory security groups that are associated with user role definitions that grant privileges or restrict access. For example, a user role definition might grant permission to execute commands as root or using a service account such as oracle. By associating an Active Directory group with a role definition, you can grant or deny privileges by managing Active Directory group membership. During the migration process, users you have identified as Centrify Administrators should have the permissions and the authority to add users to the appropriate user role groups and to create new Active Directory group objects in the OU (for example, ou=user roles,ou=Centrify). After migration, your organization should decide who should be responsible for creating new user role groups and associating them with zones and who should be able to add and remove users from the User Roles organizational unit. Licenses and Zones parent containers Regardless of whether you choose to create the organizational units for the recommended deployment structure or a custom deployment structure, Centrify requires the following parent containers: Licenses parent container object for license keys. You must have at least one parent container for license keys in the forest. You can create more than one of these container objects to give you more granular control over who has access to which licenses. parent container object for individual zone (ZoneName) objects. You must have at least one parent container for zones. You can create more than one parent Zones container to give you more granularity for delegating administrative tasks. Zones You can select the parent containers for Licenses and Zones when you run the Setup Wizard, when creating a new zone, or when managing licenses in Access Manager. Some organizations prefer to create and manage Active Directory objects manually to ensure tight control over the objects and their attributes. For example, you might want to manually create separate parent containers for different business departments or locations if you want to manually set permissions and refine who has access to them. However, managing permissions manually can be complex and error-prone. In most cases, Centrify recommends that you establish appropriate permissions on the deployment structure and use the Zone Delegation Wizard to manage administrative permissions on individual zones and the objects contained in zones. Planning and Deployment Guide 54 Security groups to manage Centrify information Security groups to manage Centrify information If you use the default recommended deployment script, the script automatically creates the following Active Directory security groups for managing Centrify-related objects: CentrifyAdministrators AuthorizationManagers ComputerManagers UnixDataManagers Each security groups is granted the appropriate permissions to perform specific administrative tasks. For example, users who are members of the Centrify Administrators group should be able to create, modify, and delete zones. If you are not using the recommended deployment script, you should create similar security groups for managing Centrify-related objects. Delegating control for Centrify administrators The CentrifyAdministrators security group is intended for members of the administrative or security team who are responsible for managing all Centrify-related information stored in Active Directory. You should add members to the group to grant specific users the rights required to manage Centrify licenses, zones, user roles, computer roles, provisioning groups, and the user, group, and computer profiles in each zone. Members of the Centrify Administrators security group are responsible for identifying an organization’s zone requirements and creating the zone hierarchy. Centrify Administrators also decide when to create new zones, delete obsolete zones, or consolidate existing zones. In most cases, Centrify Administrators define the basic access rights for zones and delegate administrative tasks to other users and groups on a zone-by-zone basis. Permissions for the Centrify Administrators group are applied at the top-level of the deployment structure—for example, ou=Centrify—and grant privileges on the organizational units, containers, and object within the deployment structure. If you don’t create this group or a similar security group, only members of the Domain Admins group can create new zones. If you are managing security and individual permissions manually for Active Directory objects, see “Active Directory permissions required for administrative tasks” on page 234 for information about the permissions required for individual tasks. Delegating control for authorization managers The AuthorizationManagers security group is intended for members of the security team who are responsible for managing role-based access rights. You should add members to the group to grant specific users the rights required to manage user roles, computer roles, access privileges, and role assignments. Chapter 4 • Planning Active Directory organizational units and security groups 55 Security groups to manage Centrify information You can delegating tasks to the AuthorizationManagers group on the User Roles and Computer Roles organizational units using Active Directory Users and Computers. You can delegating zone administration tasks to the group in Access Manager. Delegating tasks for user role groups In Active Directory Users and Computers, select the User Roles organizational unit, right-click, then select Delegate Control to start the Delegation of Control Wizard. Select the security group you are using for authorization managers and delegate the following tasks: Create, delete and manage groups Modify the membership of a group Delegating tasks for computer role groups In Active Directory Users and Computers, select the User Roles organizational unit, right-click, then select Delegate Control to start the Delegation of Control Wizard. Select the security group you are using for authorization managers and delegate the following tasks: Create, delete and manage groups Modify the membership of a group Delegating zone-specific tasks As a member of the CentrifyAdministrators security group, you can grant zone-specific permissions to the members of the AuthorizationManagers group. After you have created the appropriate zones, you can delegate the following zone administration tasks to authorization managers: Manage roles and rights Manage role assignments Modify computer roles Add computer roles Delegating control for computer managers The ComputerManagers security group is intended for members of the UNIX administration team who are responsible for managing computer accounts. You should add members to this security group to grant specific users the rights required to manage computer objects in the Servers organizational unit in Active Directory. As a member of the CentrifyAdministrators security group, you can also grant zone-specific permissions to the members of the ComputerManagers group. After you have created the appropriate zones, you can delegate the following zone administration tasks to computer managers: Planning and Deployment Guide 56 Security groups to manage Centrify information Join computers to the zone Remove computers from the zone If you are managing security and individual permissions manually for Active Directory objects, see “Active Directory permissions required for administrative tasks” on page 234 for information about the permissions required for individual tasks. Delegating control for UNIX data managers The UnixDataManagers security group is intended for members of the UNIX administration team who are responsible for managing computer accounts. You should add members to this security group to grant specific users the rights required to manage UNIX users and groups objects in the UNIX groups and Service Accounts organizational units in Active Directory. You can delegate tasks to the UnixDataManagers group on the UNIX Groups and Service Accounts organizational units using Active Directory Users and Computers. You can delegating zone administration tasks to the group in Access Manager. Delegating tasks for UNIX groups In Active Directory Users and Computers, select the UNIX Groups organizational unit, right-click, then select Delegate Control to start the Delegation of Control Wizard. Select the security group you are using for UNIX data managers and delegate the following tasks: Create, delete, and manage groups Modify the membership of a group Delegating tasks for service accounts In Active Directory Users and Computers, select the Service Accounts organizational unit, right-click, then select Delegate Control to start the Delegation of Control Wizard. Select the security group you are using for UNIX data managers and delegate the following tasks: Create, delete, and manage user accounts Reset user passwords and force password change at next logon Delegating zone-specific tasks As a member of the CentrifyAdministrators security group, you can also grant zone-specific permissions to the members of the UnixDataManagers group. After you have created the appropriate zones, you can delegate the following zone administration tasks to UNIX data managers: Add users Add groups Remove users Chapter 4 • Planning Active Directory organizational units and security groups 57 Planning for data storage in Active Directory Remove groups Modify user profiles Modify group profiles Planning for data storage in Active Directory Centrify stores all of the UNIX attributes required for users, groups, and computers in Active Directory, so that this information can be centrally managed. It stores these attributes without requiring you to make any modifications to the Active Directory schema you choose to use. Changing the zone type If you create a new zone using the default zone options, the new zone is created as a hierarchical zone that uses the Active Directory RFC2307-compatible schema attributes for user and group profiles. If you deselect the Use the default zone type option, you can choose to create either a hierarchical zone or a classic zone and how you want zone information stored in the Active Directory schema. If you are not using the default zone type and storage model, you have the following options: A Standard zone stores user and group attributes in the keywords attribute of the serviceConnectionPoint object for the user or group rather than in the user or group object. An RFC2307-compatible zone stores user and group attributes in the attributes that are defined in the RFC2307-compatble schema for user and group objects. An SFU zone stores user and group attributes in the Services for UNIX (SFU) schema attributes for the user or group object. It is worth noting that in the default zone storage model—which uses the default Active Directory RFC2307-compatible schema—some schema attributes are not indexed. For example, in the default Active Directory RFC2307-compatible schema, the uid attribute is not an indexed attribute. Because of this limitation, queries that use this attribute might take longer than expected. Modifying indexed attributes for zones Depending on the requirements of your organization, you might see improved performance either by creating standard Centrify zones rather than RFC2307-compatible zones or by indexing the uid attribute in default zones. Before selecting a strategy for all or selected zones, however, you should consider that indexing the uid attribute requires you to modify the Active Directory schema. Planning and Deployment Guide 58 Viewing and manipulating data in Active Directory Modifying the Active Directory schema is an advanced operation that should only be performed by experienced administrators. In addition, you must be a member of the Domain Admins group or the Enterprise Admins group in Active Directory or been delegated similar authority to perform this operation. If you choose to modify the schema to improve performance, you can use “Run as ...” to select an account with appropriate permissions before performing the following steps. To index an attribute: 1 Open a Command Prompt window, then type the following command to register the schema management assembly on your computer: regsvr32 schmmgmt.dll 2 Click Start, click Run, type mmc /a, then click OK. 3 In the console root, select the File menu, then click Add/Remove Snap-in. 4 Under Available Standalone Snap-ins, double-click Active Directory Schema, click Add, then click OK. 5 On the File menu, click Save, navigate to the %systemroot%/Sytem32 directory, type a file name for the console, then click Save. 6 Click Start > All Programs to select the Administrative Tools folder, right-click, then select Open. If necessary, select Organize > Layout > Menu bar to display menus. On the File menu, select New, then click Shortcut. In the Create Shortcut Wizard, click in Type the location of the item, type the name you used for the file in Step 5, then click Next. Select the file name in Type a name for this shortcut field, type Active Directory Schema, then click Finish. 7 Click Start > All Programs > Administrative Tools to select Active Directory Schema, right-click, then select Open. 8 Expand Attributes to select a specific attribute, such as uid, right-click, then select Properties. 9 Select Index this attribute, then click OK. Viewing and manipulating data in Active Directory You can view, access, and manage any information stored in Active Directory—including Centrify profiles, rights, roles, and role assignments—using ADSI Edit or using any tools that can perform standard LDAP operations such as ldifde and OpenLDAP commands such ldapsearch, ldapadd, ldapdelete and ldapmodify. For example, depending on the Chapter 4 • Planning Active Directory organizational units and security groups 59 Viewing and manipulating data in Active Directory type of operating system and tools you prefer to use, you might view and manage Centrify profiles and zones using any combination of the following tools: Access Manager Access Module for Windows PowerShell Audit Module for Windows PowerShell Active Directory Users and Computers The Centrify Windows API The ADEdit Tcl application and procedure library Centrify command-line programs By using these tools, you can manipulate Centrify information manually or create scripts to automate key tasks such as the provisioning of new accounts. For example, you can write scripts that access the Centrify Windows API or ADEdit procedures to automatically create computer, user, or group accounts, create new zones, or assign users to roles. As part of your planning process, you should determine whether there are tasks you want to automate through the use of scripts, so that members of the development team can create or modify the appropriate tools and test them thoroughly before deploying across the organization. Planning and Deployment Guide 60 Chapter 5 Installing Centrify DirectManage Access This section provides instructions for installing Centrify DirectManage Access components on Windows computers in your network. There are several Windows-based components that enable you to manage the deployment and ongoing operations of Centrify software. You should install all of the Centrify DirectManage components on at least one Windows computer. Depending on the division of responsibilities in your organization, you may want to install different DirectManage components on more than one Windows computer. You should always install the Windows components first before you install any agents on the non-Windows computers you intend to manage. The following topics are covered: Preparing for installation on Windows Installing DirectManage Access Installing Zone Provisioning Agent Installing Deployment Manager Running Access Manager for the first time Preparing for installation on Windows Before installing Centrify DirectManage components on Windows, you should verify that the computers where you are planning to install meet all of the system requirements and prerequisites and that you have all of the information you need to install and configure Centrify software packages. At a minimum, you should install the following DirectManage components on one or more Windows computers during the first stage of deployment: Access Manager console Zone Provisioning Agent Deployment Manager You can install these components together or independently using the setup program. Alternatively, you can install these components independently without running the setup program by using individual setup programs for each component. 61 Installing DirectManage Access Installing DirectManage Access The DirectManage Access Manager is the primary management console for performing access control and privilege management operations. You typically install Access Manager directly on the computers used by one or more administrators. Alternatively, you can install it on a physical or virtual server accessed remotely by one or more administrators. The most important requirement is that the computer where you install Access Manager must be able to connect to the Active Directory domain and forest. The Access Manager console can be installed from the setup program or from a standalone executable separate from the setup program. Before you install, you should verify your environment meets the system requirements to ensure a successful deployment. Prepare Active Directory and DNS All of the Centrify software components rely on critical pieces of Active Directory infrastructure. Before you install: Verify Active Directory is installed and you have access to at least one Windows computer acting as a domain controller for the Active Directory forest to which you want to add UNIX computers. Check the configuration of DNS and whether you are using a Windows computer as the primary DNS server. Verify the DNS server allows secure dynamic updates and your domain controllers are configured to publish updated service locator (SRV) records. Verify DNS resolution and network communication between the UNIX computers and the Active Directory domain controller. You can use the ping command to test communication between the domain controller and the UNIX computer. Identify the Windows computer and log on credentials Depending on how you plan to manage Centrify properties, you should identify an appropriate Windows computer and the user account credentials you should use. For example: Check whether the Windows computer has Active Directory Users and Computers installed. If you want to manage Centrify properties using Active Directory Users and Computers, the Active Directory Users and Computers MMC snap-in must be available on the local computer. Check whether the Windows computer is a domain computer, such as a Windows XP workstation, or a domain controller. Planning and Deployment Guide 62 Installing DirectManage Access If you install on a domain controller, you must use your own logon credential to connect to Active Directory. In most cases, you can install on any computer that has access to a domain controller. Verify that the Windows computer can connect to Active Directory. Verify that you have a Windows user account and password with sufficient rights to install software on the local computer and permission to update the Active Directory forest. After installation, you must be able to create new container objects in the Active Directory forest. Alternatively, an Active Directory administrator can manually configure the environment or temporarily modify your account permissions to enable you to perform setup tasks. For information about the specific rights required to perform tasks in the Setup Wizard, see “Understanding permissions for the Setup Wizard” on page 237. Check operating system and software requirements Before installing on Windows, check that you have a supported version of one of the Windows operating system product families. For example, you can use Windows XP Professional or Windows 7 for any console components. Alternatively, you can install components on computers in the Windows Server product family—such as Windows Server 2008 or Windows Server 2012—so that your administrative computer can be configured with additional server roles. For more detailed information about supported platforms for specific components, see the resources section on the Centrify website. http://www.centrify.com/resources You should also verify that you have the .NET Framework, version 4.5 or later, installed. If the .NET Framework is not installed, the setup program can install it for you. Alternatively, you can download the .NET Framework from the Microsoft Download Center, if needed. Check disk and memory requirements You should also check that the computer where you are installing the Access Manager console meets the following requirements: For this You need this CPU speed Minimum 550 MHZ RAM 25MB Disk space 100MB Chapter 5 • Installing Centrify DirectManage Access 63 Installing DirectManage Access Run the Centrify Server Suite setup program You can install Centrify software using the setup program on the CD or included in the download package. The setup program copies the necessary files to the local Windows computer. There are no special permissions required to run the setup program other than permission to install files on the local computer. From the setup program, you can choose which components of you want to install. If you intend to install the Zone Provisioning Agent and Deployment Manager using the setup program, you should review the requirements and other information in “Installing Zone Provisioning Agent” on page 66 and “Installing Deployment Manager” on page 71 before you proceed, but you can skip the standalone installation instructions in those sections. Use the individual setup programs for components if you want to install a specific component on a specific computer. For example, use the Centrify_Zpa-version-win64.exe program to selectively install Zone Provisioning Agent components on a computer where Access Manager is not installed. Note To install Centrify DirectManage on Windows: 1 Log on to the Windows computer and insert the CD or navigate to the directory where you downloaded Centrify files. If the Getting Started page is not automatically displayed, double-click the autorun.exe program to start the installation of the Centrify software. 2 On the Getting Started page, click Access to start the setup program for DirectManage Access components. If any programs must be updated before installing, the setup program displays the updates required and allows you to install them. For example, you might be prompted to install or update the Microsoft .NET Framework. You can click Yes to continue. 3 At the Welcome page, click Next. 4 Review the terms of the license agreement, click I agree to these terms, then click Next. 5 Type your name and organization, then click Next. Planning and Deployment Guide 64 Installing DirectManage Access 6 Expand DirectManage Access - Administration and DirectManage Access - Utilities to select the individual components you want to install o r toview the default components selected for installation, then click Next. You can display a description of each component by selecting it in the list of available components. If you are managing access to Linux, UNIX, and Mac OS X computers, you should select the following DirectManage Access - Administration components for deployment: ADUC property page extensions if you want to include Centrify profiles when displaying properties in Active Directory Users and Computers. Access Manager if you want to use an administrative console to manage Centrify zones and roles. Documentation if you want to install documentation and help. Group Policy Management Editor extension if you want to deploy Centrify group policies. You should also select the following DirectManage Access - Utilities components for deployment: Deployment Manager if you want to use a centralized console for deploying agents and accessing local account information on Linux, UNIX, and Mac OS X computers Centrify Zone Provisioning Agent if you want to automatically provision user and group profiles into zones. If you want to skip the installation of any component on the local computer, click to deselect the item that you want to skip, then click Next. For example, if you want to skip installation of the Centrify Reporting Service and its Microsoft SQL Server database, deselect the Centrify Reporting Service option, then click Next. 7 Click Next.to accept the default location for installing DirectManage Access components and its desktop shortcuts. Alternatively, you can click Browse to select a different installation location or deselect the desktop shortcuts, then click Next. 8 Review the components you have selected, then click Next. The setup program begins installing the selected components. 9 When setup is complete for the selected packages, click Finish to close the setup program. Depending on the components you selected, you might see options to configure reporting service, the Zone Provisioning Agent, or both. You can deselect these options if you want to skip configuration or plan to install the components in a different computer. For details about configuring the Centrify reporting service, see the Centrify Reporting Service Installation and Configuration Guide. For details about configuring the Zone Chapter 5 • Installing Centrify DirectManage Access 65 Installing Zone Provisioning Agent Provisioning Agent after installing it with the Centrify Server Suite setup program, see “Configure the Zone Provisioning Agent” on page 70. Installing Zone Provisioning Agent The Zone Provisioning Agent enables automated provisioning of user and group accounts into Centrify zones. You configure the Zone Provisioning Agent to monitor specific Active Directory groups that are linked to a zone. When you add or remove users or groups from the monitored groups, the Zone Provisioning Agent adds or removes corresponding users or groups in the zone. You can install the Zone Provisioning Agent with the Centrify Server Suite setup program or as a standalone service separate from the installation of other Centrify Server Suite components. In most cases, it is installed on its own apart from the installation of other Centrify Server Suite components. After the Zone Provisioning Agent is installed, you can configure the business rules for adding and removing groups and how the attributes associated with user or group profiles are automatically generated. About Zone Provisioning Agent and its requirements The Zone Provisioning Agent is intended to run on an ongoing basis on a computer that is always available. It requires a Windows user account with the right to Log on as a service. If you have a single forest, you can install the Zone Provisioning Agent on one or two computers. If you install the Zone Provisioning Agent on two computers, you should only run one instance at a time. The Zone Provisioning Agent on the second computer is intended for standby operation. You should only start the Zone Provisioning Agent on the second computer if the first instance fails. The business rules that control provisioning are stored in Active Directory. If only one computer has the Zone Provisioning Agent and that computer stops running, the automated provisioning of UNIX users and group is interrupted until the computer and the Zone Provisioning Agent are restarted. Users with existing access to UNIX computers are not affected. Note The Zone Provisioning Agent has the following components: Zone Property Page Extension must be installed on the same computer as the Access Manager console. This extension adds a tab to the Zone Properties for configuring provisioning rules. Provisioning Agent Windows Service can be installed separately from the property page as a standalone service or on the same computer as Access Manager. The computer where you install the service should be available at all times. In most cases, this Windows service is not installed on the same computer as Access Manager. Planning and Deployment Guide 66 Installing Zone Provisioning Agent Command Line Interface (CLI) can be installed separately or on the same computer as Access Manager. The command line interface allows you to write scripts for provisioning tasks or update zones on demand. If you have more than one forest, you should install a Zone Provisioning Agent in each forest. If you have geographical domains within a single forest, you may want to install a Zone Provisioning Agent in each geographical domain. If you install a second instance of the Provisioning Agent Windows Service for failover, be sure that only one instance of the Provisioning Agent Windows Service runs in each forest. Create a service account for the Zone Provisioning Agent The Zone Provisioning Agent must run using a valid Windows user account with the right to Log on as a service. In most cases, you should create a dedicated user account, called the service account, for the service to run as rather than use an existing user account. To create a new service account for the Zone Provisioning Agent: 1 Open Active Directory Users and Computers. 2 Select the UNIX Service Account organizational unit. 3 Right-click, then select New > User. 4 Type a display name and logon name for the service account, then click Next. 5 Type and retype a password for the service account and modify the account options as follows, then click Next: Uncheck User must change password at next logon Check User cannot change password Check Password never expires 6 Click Finish to add the service account. Configure the local or domain group policy to allow the account to log on as a service After you have created the service account, you must edit either a local security policy or the default domain group policy to grant the service account the Log on as a service right. If you edit the default domain policy, the Zone Provisioning Agent can run on any Windows computer. If you need to move the service from one computer to another, no additional configuration is required. Alternatively, you can edit the local security policy specifically on the computers that run the Zone Provisioning Agent. If you use the local policy, however, you may need to investigate whether other group policies are applied to the computer running the Zone Provisioning Agent to see if inheritance disables your local policy setting. Chapter 5 • Installing Centrify DirectManage Access 67 Installing Zone Provisioning Agent To edit the default domain group policy: 1 Open the Group Policy Object Editor and navigate to Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment > Log on as a service. 2 Right-click Log on as a service, then select Properties. 3 Select Define these policy settings, then click Add User or Group. 4 Click Browse to search for the service account you created. 5 Select the service account, then click OK to add the account and OK again to apply the policy. Install the Zone Provisioning Agent on the Access Manager computer You can install both the Zone Provisioning Agent service and the Zone Property Page Extension on the computer where Access Manager is installed. At a minimum, you should install the Zone Property Page Extension on the same computer as the Access Manager console. The Zone Property Page Extension enables you to configure the Active Directory groups to monitor and the business rules for how to derive each user and group attribute. If you select the Zone Provisioning Agent when you install components using the Centrify Server Suite setup program, all Zone Provisioning Agent components are installed. If you want to selectively install Zone Provisioning Agent components on a computer, you can install by running the Centrify_Zpa-version-win64.exe program. Note To install the Zone Provisioning Agent on the Access Manager computer: 1 Log on to the Windows computer where Access Manager is installed. 2 Double-click the Centrify_Zpa-version-win64.exe file to start the Zone Provisioning Agent setup program. 3 If a User Account Control message is displayed, click Yes. If necessary, the setup program prompts you to install the Centrify Common Components. 4 On the Welcome screen, click Next. 5 Accept the licensing agreement, then click Next. 6 Enter your name and company, then click Next. 7 Click Next to accept the default location for the Zone Provisioning Agent files, or click Browse to select a different location, then click Next. 8 Select the features to install, then click Next. Planning and Deployment Guide 68 Installing Zone Provisioning Agent The Zone Property Page Extension is only applicable on the computer where the Access Manager console is installed. Selecting this option adds the Provisioning tab to the Zone Properties for individual zones. You can install or uncheck the other features on the computer where the Access Manager console is installed. 9 Click Install to begin installation. 10 Click Finish to complete the installation. Install the Zone Provisioning Agent on its own You can install the Provisioning Agent Windows Service as a standalone service on a computer with a relatively light load. The computer where you install the Provisioning Agent should be one that is online at all times. If the computer is shut down or suspended, the Provisioning Agent service will be suspended and no provisioning can occur. You can install a second instance of the Zone Provisioning Agent on another computer, and use your existing method of determining if a service has failed to monitor the availability of the first instance. For example, configure monitoring of the Windows Event log to notify you if the Zone Provisioning Agent service stops. If you install the Provisioning Agent service as a standalone service, you should also install the Command Line Interface (CLI) on the same computer. To install the Zone Provisioning Agent as a standalone service: 1 Log on to the Windows computer that has a light load and is rarely shut down or offline. 2 Double-click the Centrify_Zpa-version-win64.exe file to start the Zone Provisioning Agent setup program. 3 If a User Account Control message is displayed, click Yes. If necessary, the setup program prompts you to install the Centrify Common Components. 4 On the Welcome screen, click Next. 5 Accept the licensing agreement, then click Next. 6 Enter your name and company, then click Next. 7 Click Next to accept the default location for the Zone Provisioning Agent files, or click Browse to select a different location, then click Next. 8 Select the Provisioning Agent and Command Line Utility features, then click Next. 9 Click Install to begin installation. 10 (Optional) Uncheck the Configure and start Zone Provisioning Agent option, then click Finish. Chapter 5 • Installing Centrify DirectManage Access 69 Installing Zone Provisioning Agent If you leave Configure and start Zone Provisioning Agent selected, you are prompted to provide the service account name and password, then click Start to start the agent service. Centrify recommends that you configure the monitored containers, polling interval, and logging options, in addition to the service account name and password, before starting the service. Before starting the service, therefore, you should open Access Manager to set up the Centrify organization structure in Active Directory. For more information about the initial configuration, see “Running Access Manager for the first time” on page 73. Configure the Zone Provisioning Agent By default, the Zone Provisioning Agent monitors all domains in the entire forest. If you use the recommended Centrify organizational structure described in “Creating recommended organizational units” on page 50, Centrify recommends setting the Zone Provisioning Agent to only monitor the top-level Centrify organizational unit or the Zones container. These objects are created in the Setup Wizard the first time you open Access Manager. After the initial configuration, you can perform the steps in this section to configure the Zone Provisioning Agent. For more information about the initial configuration, see “Running Access Manager for the first time” on page 73. The most common reason for monitoring more than one organizational unit is if you have a regional or team-based OU structure in Active Directory, where each region or team is responsible for managing its own UNIX data. In this scenario, a provisioning staff member in Sidney, Australia, wouldn’t be responsible for account fulfillment of a UNIX user in Chicago. To ensure the appropriate separation of duties between the different regions or teams, you would have more than one Centrify organizational unit, and you would configure the Zone Provisioning Agent to search each of the regional organizational units. To configure the Zone Provisioning Agent: 1 Open the Zone Provisioning Agent Configuration Panel by clicking Start > All Programs > Centrify > Zone Provisioning Agent > Zone Provisioning Agent Configuration Panel. 2 In the Monitored containers section, click Add. 3 Navigate to select the Centrify organizational unit or the Zones container, then click OK. 4 Select Entire Forest forest_name from the list of Monitored containers, then click Remove. 5 Set the provisioning polling interval in minutes. The polling interval controls how often the Zone Provisioning Agent checks monitored containers for changes and processes the business rules for provisioning users and groups into zones. The appropriate interval often depends on the expectations of the user population or on service level agreements that define the provisioning team’s commitments. In general, you should avoid polling more frequently than necessary to Planning and Deployment Guide 70 Installing Deployment Manager reduce the affect the Zone Provisioning Agent has on the performance of your domain controllers. 6 Type the service account name or click Browse to locate the service account name, then type the password for the account. 7 Click Apply. 8 Click Start to start the Zone Provisioning Agent. Installing Deployment Manager Centrify DirectManage Deployment Manager provides a centralized console for discovering and analyzing computers on your network, downloading and deploying software, and managing users, groups, and other information on discovered computers. If you install Deployment Manager on a Windows computer, you can use the Deployment Manager console to remotely identify the target sets of computers that are candidates for deploying Centrify Server Suite packages. About Deployment Manager and its requirements Typically, Deployment Manager is installed on a single Windows computer with an operating system that is Windows XP or higher. The Deployment Manager includes a Microsoft SQL Server Compact Edition database that stores computers and account information. The minimum disk space required depends on the number of computers and accounts discovered. Centrify recommends a minimum of 1 GB disk space, 2 GB of RAM and a 2 GHz processor. Deployment Manager also requires that .NET Framework, version 4.5 or later, be installed. If a supported version of the .NET Framework is not installed, the setup program displays a warning. You must install the .NET Framework before you can successfully run the setup program. Security requirements You have the option to store account credentials for UNIX login users and services accounts, including the root password for each managed computer, in the Deployment Manager database. If you choose this option, passwords are encrypted with the access token of the Active Directory user who adds computers to Deployment Manager. Therefore, for security purposes: You should not install Deployment Manager on a laptop. You should not use a shared account for managing access to Deployment Manager. You should require strong passwords and password enforcement policies for users who will be allowed to add computer information using Deployment Manager. If you don’t want to store encrypted credentials in the database, you can choose to store them in memory temporarily. If you choose this option, credentials can only be used during Chapter 5 • Installing Centrify DirectManage Access 71 Installing Deployment Manager an active Deployment Manager session. You must manually provide the credentials each time you start a new session. For more information about the options for storing credentials, see the Deployment Manager User’s Guide or online help. Network connectivity requirements Deployment Manager also requires network connectivity or an Internet connection between the Windows computer where it is installed and the UNIX computers where you want to deploy the agent. It also requires the ability to use outbound secure shell (ssh) connections from the Windows computer to the managed UNIX computers. By default, Deployment Manager only allows secure shell connections to remote computers to keep sensitive information, such as administrative passwords, secure. You can configure Deployment Manager to allow telnet connections, if needed. In most cases, you should avoid using telnet connections because telnet transmits passwords as plain text over the network. Note Install Deployment Manager on a computer with an Internet connection Deployment Manager is a Windows-based MMC console and database that can be installed separately from other Centrify software. If possible, you should install Deployment Manager on a computer that allows outbound connections to the Internet. If you can install on a computer with Internet access, you can connect directly to the Centrify Download Center to download the packages to install, check for updated packages, and get the latest software for the platforms you support. If you install Deployment Manager using the Centrify Server Suite setup program, all components are installed and you can skip this section. Note To install Deployment Manager on a computer with an Internet connection: 1 Log on to a Windows computer that has network access to the UNIX, Linux, and Mac OS X computers where you want to deploy Centrify Server Suite packages. 2 Double-click the CentrifyDM-version-win32.exe or CentrifyDM-version-win64.exe Deployment Manager setup program. 3 If a User Account Control message is displayed, click Yes. 4 At the Welcome page, click Next. 5 Click I accept the terms of the License Agreement, then click Next. 6 Accept the default location for Deployment Manager files or click Change to select a different location, then click Next. 7 Click Install to start the installation. 8 Uncheck the Launch Deployment Manager console option, then click Finish to complete the installation. Planning and Deployment Guide 72 Running Access Manager for the first time Install Deployment Manager on a computer without Internet access If possible, you should install Deployment Manager on a computer that allows outbound connections to the Internet so that you can connect directly to the Centrify Download Center to download the Centrify software packages. In some organizations, however, you may be required to install Deployment Manager on a network segment that doesn’t allow outbound Internet connections. If you install Deployment Manager on a computer that does not allow outbound Internet connections: Run the CentrifyDM-version-win32.exe or CentrifyDM-version-win64.exe program to install Deployment Manager. Verify network connectivity between Deployment Manager and the other computers on the network segment. Locate another computer for accessing the Centrify Download Center and a network share for transferring the files between the computer that has Internet access and the computer where Deployment Manager is installed. After you download files from the Centrify Download Center in the next phase of the deployment, you will copy them to the computer where Deployment Manager is installed or to a network share Deployment Manager can access. Running Access Manager for the first time The first time you start the Access Manager console, a Setup Wizard guides you through the initial configuration of the Active Directory forest. This initial setup creates the recommended or a custom deployment structure including the parent containers for Licenses and Zones and sets the permissions for modifying the objects within the containers. These steps are only performed once and can be done manually, if you choose. Because the Setup Wizard creates container objects, you might need to use a domain administrator account. This requirement depends on the specific permissions your organization has configured for different classes of users. For example, if your organization only permits Domain Admins to create parent and child objects in Active Directory, you need to use an account with those permissions to run the Setup Wizard. For more information about the permissions required to perform specific configuration steps, see “Understanding permissions for the Setup Wizard” on page 237. To start the Setup Wizard and update the Active Directory forest: 1 Open Access Manager from the desktop shortcut or Start menu. 2 Verify the name of the domain controller displayed is a member of the Active Directory forest you want to update or type the name of a different domain controller if you want to connect to a different forest, then click OK. If you want to connect to a different forest, type the name of a domain controller in that forest. Chapter 5 • Installing Centrify DirectManage Access 73 Running Access Manager for the first time If you want to connect to the forest with different credentials, select Connect as another user, then type a user name and password to connect as. 3 At the Welcome page, click Next. 4 Select Use currently connected user credentials to use your current log on account or select Specify alternate user credentials and type a user name and password, then click Next. 5 Select Generate the Centrify recommended deployment structure if you want to create all of the containers for the recommended deployment structure automatically. If you select this option, select whether you want to generate the default deployment structure or generate a custom structure, then click Next. If you are generating the default structure, clicking Next enables you to select or create the location for the deployment structure in Active Directory. For example, if you want to create the top of the default deployment structure at the domain level, click Next, then click Browse to select the domain name. After you have selected a location, click OK. then click Next to create the deployment structure. If you are generating a custom structure, clicking Next enables you to export the script that creates the default structure or run a script you have previously written. If you are generating a default or custom deployment structure, verify the successful execution of the script that creates the structure, then click Next to continue. 6 Verify the parent container for licenses is in the top-level Centrify container if you are using the default deployment structure or the container of your choice, then click Next. You can add other Licenses containers in other locations later using the Manage Licenses dialog box. If you are not using the recommended deployment structure, the default container for license keys is domain_name/Program Data/Centrify/Licenses. To create the parent container in a different location, you can click Browse. 7 Review the permission requirements for the container, then click Yes to continue. If you don’t want to allow the permissions for the selected container, click No and select a different container to continue. 8 Type or copy and paste the license key you received, then click Add. If you received multiple license keys, add each key to the list of installed licenses, then click Next. If you received license keys in a text file, click Import to import the keys directly from the file instead of adding the keys individually, then click Next. 9 Verify the Create default zone container option is selected and the parent container for zones is in the top-level Centrify container or the container of your choice, then click Next. Planning and Deployment Guide 74 Running Access Manager for the first time If you are not using the recommended deployment structure, the default container for zones is domain_name/Program Data/Centrify/Zones. To create the parent container in a different location, you can click Browse. You can skip creating the parent container in the forest or have more than one Zones parent container. For example, if you have a regional OU structure in Active Directory—where each region is responsible for its own set of zones—each region should have its own top-level organizational unit. For example, if you have separate OU structures for Tucson, AZ, and Newark, NJ, you would have separate deployment structures—CentrifyAZ and CentrifyNJ, for example—with separate parent containers for zones under each deployment structures. Users in each region can select the appropriate parent container when they create new zones. Users must have permission to read and create container objects on the parent Zones container and all child objects. You should verify the appropriate users have the permissions required to create new zones. Note 10 If you are using the recommended deployment structure, click Next to continue. This option allows “self-service” join operations for computers in the Computers container. It is only applicable if you are not using the recommended deployment structure. If you want to support “self-service” join operations and are not using the recommended deployment structure, select Grant computer accounts in the Computers container permission to update their own account information, then click Next. 11 If you plan to use Access Manager to manage information stored in Active Directory and maintain data integrity, click Next to continue. You should select Register administrative notification handler for Microsoft Active Directory Users and Computers snap-in if you want to automatically maintain the integrity of the information in Centrify profiles. This option prevents Centrify profile information from being left “orphaned” when changes are made to Active Directory objects such as users and groups. This option is not selected by default because it requires you to have Enterprise Admin or Domain Admin rights for the forest root domain. 12 Select Activate Centrify profile property pages if you want to be able to display Centrify profiles in any Active Directory context, then click Next. Setting this option ensures that displaying the properties for a user, group, or computer always displays the Centrify Profile tab regardless of how you navigate to the Properties dialog box. 13 Review and confirm your configuration settings, click Next, then click Finish. Chapter 5 • Installing Centrify DirectManage Access 75 Chapter 6 Installing agents on computers to be managed This chapter describes the recommended steps for deploying Centrify software on the non-Windows computers that you want to add to Active Directory. The chapter also describes the alternatives you can use to install agent packages on non-Windows computers, including using native Linux installers to install Centrify packages manually and automatically. The following topics are covered: About the deployment process About using Deployment Manager Select a target set of computers Build an inventory of computers in the target group Download Analysis Tools and Centrify agent software Analyze target computers for potential issues Deploy agents on computers identified as Ready Other options for deploying Centrify agent packages About the files and directories installed on the agent Joining an Active Directory domain at a later time About the deployment process The steps in this section, and in Preparing the environment for migration of existing users and groups and Migrating an existing user population to hierarchical zones, are iterative in nature. In most cases, you will select a subset of computers for deployment, and repeat the steps for each target group until you have migrated all of the computers and users in the enterprise into Active Directory. There is no technical requirement that you only work with a subset of computers at a time, but in practice the process of checking computers for potential problems and resolving open issues is more manageable when applied to a subset of computers. It is also more practical to migrate user populations in stages rather than all at once. After you step through the process a few times, you’ll be able to anticipate and resolve potential issues more quickly and move into a more rapid deployment model. Centrify recommends you use Deployment Manager to guide you through the next steps of the deployment process. Other options are available for you to use, but Deployment Manager simplifies the process and keeps track of your progress. 76 About using Deployment Manager About using Deployment Manager As previously noted, Deployment Manager can installed separately from Centrify Server Suite and using it is optional, but recommended. Deployment Manager provides a centralized console for discovering and analyzing computers on your network, downloading and deploying software, and managing users, groups, and other information on discovered computers. With Deployment Manager, you can perform virtually any administrative task on remote computers as long as you have account credentials that allow you to log on and perform those tasks. For example, you can use Deployment Manager to: Check whether remote computers meet the system requirements for installation or have an older version of Centrify Server Suite software installed. Analyze the local users and groups defined on discovered computers. Fix problems that would prevent you from deploying Centrify Server Suite or joining an Active Directory domain. Add, modify, or delete local UNIX users and groups. Download the latest versions of Centrify Server Suite software from the Centrify Download Center. Deploy Centrify Server Suite on remote computers and join Active Directory domains. Centrify recommends that you use Deployment Manager to discover, analyze, and perform administrative tasks on remote computers before installing. Centrify also recommends you use Deployment Manager to download the most up-to-date versions of Centrify Server Suite software, deploy Centrify Server Suite on remote computers, and, after you have prepared for user migration, to join the Active Directory domain. If you choose, you can also use Deployment Manager to manage local user and group accounts or perform other tasks. If you don’t have access to a Windows computer where you can install Deployment Manager or have restricted network connectivity that prevents you from using Deployment Manager, you can use one of the other options for deploying Centrify Server Suite packages. For more information, see “Other options for deploying Centrify agent packages” on page 91. Select a target set of computers As a first step in preparing to install Centrify Server Suite software, you should select a target set of computers on which to deploy. The target set can be based on any criteria you choose. In many organizations, new software must always be installed in the development environment first, then in the pre-production environment, before it can be deployed in the production environment. If your organization has this type of requirement, the first target set of computers would be the computers in the development environment. Chapter 6 • Installing agents on computers to be managed 77 Build an inventory of computers in the target group Other possible candidates for the target set might be computers that: Have been identified for changes by an audit finding Are in the same physical location, such as a particular data center Share common attributes, such as all Red Hat Linux computers or all of the servers in a Web farm Are used by a particular department, project, or line of business Have a common set of users who need access to the computer resources After you have identified a target set of computers, you are ready to begin the deployment. You should notify the user community that you are planning to install software on the target set of computers. For example, you may want to notify users by sending out an email message similar to the sample provided in “Preliminary software delivery notification email template” on page 228. After you have identified a target set of computers to work with, you can use Deployment Manager to check whether those computers have any issues that need to be resolved before you install new software on them. Checking the environment before you install helps to reduce change control issues. Build an inventory of computers in the target group To build an inventory of the computers in the target set for deployment, you must provide information that identifies which UNIX computers you want to discover. You must also provide valid credentials for an account that has privileged access to the computers in the target set. You can identify which computers to add to the Deployment Manager by doing any of the following: Specify individual computers by host name or IP address. This option is most practical if you have a small number of computers in the target set. Scan a specific subnet or a range of IP address for computers. This option checks the specified network segment and includes all of the computers it finds in the inventory. Any computers or IP addresses that are part of the network segment but are not responding are also recorded. Import a list of IP addresses or host names from a text file. This option is useful if you have a spreadsheet, database report, or Wiki where you have already recorded information about the UNIX computers in your environment. This option also enables you to import user account credentials, including the root password, in a plain text file. Discover computers hosted in a cloud. This option allows you to add computers from a cloud service provided you have a cloud account and appropriate credentials. Planning and Deployment Guide 78 Build an inventory of computers in the target group To build a list of computers in the target set: 1 Start Deployment Manager and select the Centrify Deployment Manager node. 2 Under Step 1, click Add Computers. 3 Select the method for discovering the computers to add, then click Next. Discover computers from the network Discover computers from a cloud service Import a computer list from a text file Add a single computer 4 Follow the prompts displayed to specify a subnet address and mask, the cloud service provider, the location of the text file to import, or the individual computer name or IP address, then click Next. For more information about the options displayed in the Add Computers wizard, press F1 to display context-sensitive help. After you specify the discovery criteria, Deployment Manager sends a ping request to determine whether those computers are reachable and attempts to connect to the reachable computers using a secure shell (ssh) connection. If the connection is successful, Deployment Manager then displays a list of the computers found. By default, all of the computers found are selected to be included in the inventory. 5 Check the list of computers found and decide whether any of them should be removed from the inventory, then click Next. For example, click the check box to cancel the selection of any computer that you want to exclude from the inventory. You must provide valid account information for the computers selected. 6 Select whether any computers that were discovered but not accessible should be added to the repository, then click Next. If Deployment Manager finds computers that match the search criteria but cannot open a secure shell connection to them, the Add Computers wizard displays those computers separately in a list of unreachable computers with the host name listed as <Unknown>. If Deployment Manager reports that it cannot establish a connection with one or more computers, do the following: Check whether access is being blocked by a firewall. Verify that ssh is installed on the target computer and that the ssh process is running. Check that the IP address reported is a computer and not another type of resource, such as a printer. By default, unreachable computers are not included in the inventory. If you want to keep any of the unreachable computers, click the check box to add it to the repository. Keep Chapter 6 • Installing agents on computers to be managed 79 Build an inventory of computers in the target group in mind, however, that you must be able to resolve the connection issue and provide account information to proceed with the deployment for these computers. 7 Type account information that will enable you to log on to each computer, then click Next. For example: Select this To do this User name Specify a user name with permission to log on to one or more targeted computers. In most cases, you should use your own user account or another user account that can log on to multiple computers. Although you can use the root account, Centrify recommends that you use a normal user account. Note If you selected multiple computers, the computer to which this information applies is the first computer in the list. The title bar shows the name and IP address for this computer. Specify privileged command in tasks that require root privilege Select this option to specify how Deployment Manager should execute privileged commands during deployment. If you are using the root user account to log on, you can leave this option unchecked. If you log on using your own user account or another normal user account, check this option and specify whether you want to use sudo or su to execute privileged commands. Execute using Select the method to use to execute privileged commands during deployment. In the initial deployment, you must select sudo or su to execute privileged commands. Select: • sudo to use sudo and settings in the sudoers file. Depending on the policies defined in the sudoers file, you may need to provide the root password or the password for your own account. If you select this option, Centrify recommends that you grant ALL in the sudoers file to the user name that logs on to targeted computers. Granting ALL permission to the specified user account ensures that Deployment Manager can execute all required privileged commands during deployment. If you want to configure a sudoers file with specific commands, see “Configuring a sudoers file for use with Deployment Manager” on page 90. • su to use the switch user (su) command. If you select this option, you must provide the root password. After you have deployed and configured Centrify Server Suite for your organization, you have the option to use DirectAuthorize to control the execution of privileged commands. This option is not valid until after you have deployed Centrify Server Suite, however. Root password Planning and Deployment Guide Type the root password for privileged command execution. 80 Build an inventory of computers in the target group 8 Select the authentication method and provide the password or private key information for the user account you specified in Step 7, then click Next. Select this Authenticate using password To do this Authenticate by providing the password for the specified user account. If you select this option, type the password for the user name you specified in Step 7. Authenticate using private key Authenticate by using a private key for the specified account. Select this option if you want to use a private key instead of a password to log on to the targeted computers. For example, if you have a private key for SSH, you can select this option, then type the location of the private key file and the pass phrase for the SSH key. Location Browse to and select a private key file for the account. Passphrase Enter the pass phrase for the private key. Enable remote terminal connection using private key Apply the same account to other computers Browse to and select a PuTTY key for the remote connection to a cloud. Select this option to establish a remote connection and authenticate using a private key. This option is most commonly used when making a connection to a cloud-hosted computer. Enables you to apply the same account information to multiple computers. You should use this option if you have a root account with the same password on all the computers you are adding in a session or a user account that has access to all of the targeted computers. If you don’t select this option, you are prompted to enter separate credentials for each computer you are adding. 9 Type account information for the next computer in the list, then click Next. If you selected the option to apply the same user name and password to multiple computers, select those computers now, then go to Step 10 to complete the process. If you are not using the same account and password for multiple computers, the wizard displays the next computer in the list. Repeat Step 7 and Step 8 for the next computer and subsequent computers. 10 Click Finish to exit the wizard and retrieve information for the specified computers. Chapter 6 • Installing agents on computers to be managed 81 Build an inventory of computers in the target group Viewing the inventory results After you complete the Add Computers step, Deployment Manager displays the results in a graphic format, organized by platform. For example: Click on any category to see a list of computers in the left pane. For example, click Unknown to see computers that were unreachable. You can then look at the Open Issues node for that computer to see why the computer was unreachable. For example, the Open Issues might indicate that the ping command failed or the user credentials were invalid. About updates to the repository and the repository location Each time you run the Add Computers wizard, Deployment Manager updates its local repository. Details about the discovered computers are stored in the datastore.sdf database file. On older versions of Windows, the path to the Deployment Manager database is this: C:\Documents and Settings\User\Application Data\Centrify\DeploymentManager On new versions of Windows, the path to the Deployment Manager database is this: C:\Users\User\AppData\Roaming\Centrify\DeploymentManager In either path, User represents the user account name of the person who installed Deployment Manager. You should note that adding computers requires account information. You have the option to store the user name and password you use in the Deployment Manager database or in memory. If you choose to store account information in the database, the account password is encrypted with the access token of the account you used to log on to the Windows computer. Even if other users have access to Deployment Manager, they cannot decrypt the stored passwords because they do not have the access token for the Windows user account that was used to encrypt the information. Decrypting a stored password also requires the user who created the password in Deployment Manager to log on and access the database from the same computer used when the password was encrypted. If you don’t want to store credentials in the Deployment Manager database, you must manually provide credentials in each new Deployment Manager session. For more information about the options for storing credentials, see the Deployment Manager User’s Guide or online help. Planning and Deployment Guide 82 Download Analysis Tools and Centrify agent software Download Analysis Tools and Centrify agent software If the computer where you installed Deployment Manager has an outbound Internet connection, you can download the Analysis Tools and Centrify agent software directly from the Centrify Download Center. You can download the software before or after you have a target list of computers on which to deploy. Some organizations perform this step first. If you do not have an outbound Internet connection from the computer where Deployment Manager is installed, you need to download the software using a different computer and make it available in a network location that Deployment Manager can reach. How to get the software if Deployment Manager has an Internet connection If you installed Deployment Manager on a computer that has an Internet connection, you can download the software directly to the local computer. To download the software when you have an Internet connection: 1 Under Step 2 in Deployment Manager, click Download Software. 2 Type your log in credentials for the Centrify Download Center, then click Next. 3 Check that both Analysis Tools and Centrify Server Suite are selected if you want to download the latest packages for all platforms in your current computer inventory, then click Next. If you want to select individual packages for platforms that are not in the target set of computers, you can click Show only software for managed computers and expand the list of platforms for both the Analysis Tools and Centrify Server Suite to display the full list of packages. You can then select packages for specific platforms, as needed. 4 Review the list of files to be downloaded, then click Finish. 5 View the progress of the download in Deployment Manager. After the download is complete, the packages you downloaded are located in one of the following locations by default: C:\Documents and Settings\User\Application Data\Centrify\DeploymentManager\P ackages C:\Users\User\AppData\Roaming\Centrify\DeploymentManager\Packages where User is the user account name of the person who installed Deployment Manager. You can change the default location of the Packages directory, if desired. For example, you can move the directory to a network shared folder and make it accessible to multiple users. You should not unzip any of the packages you download, however, or change the relative location of any of the files. Deployment Manager expects the Analysis Tools (the adcheck program binaries) and Centrify Server Suite compressed files (for example, the *.tgz files) to be in the same directory. Chapter 6 • Installing agents on computers to be managed 83 Download Analysis Tools and Centrify agent software How to get the software without an outbound Internet connection If you installed Deployment Manager on a computer that does not have an outbound Internet connection, you can use another computer to navigate to the Centrify Download Center to download the software and an offline product catalog. To download the software if Deployment Manager does not have an Internet connection: 1 On a computer with an outbound Internet connection, log on to the Centrify Support Portal. 2 Type your log in credentials and navigate to the Centrify Download Center. 3 Select a UNIX platform. 4 Scroll down to Deployment Manager and click the link to download an offline product catalog called the Deployment Manager Manifest File. This file contains details about all of supported Centrify Server Suite platforms. 5 Click Save to save the manifest as an XML file locally or in a network location. 6 Download the appropriate Analysis Tools and Centrify Server Suite software archives for your supported platforms to the local computer on a network location. After you have downloaded the offline product catalog and the Analysis Tools and Centrify Server Suite packages for the platforms you intend to support, you can log off of the Centrify Support Portal. 7 Transfer the offline product catalog XML file, Analysis Tools (the adcheck binaries) and compressed Centrify Server Suite packages (*.tgz files) to the computer where Deployment Manager in installed or to a computer accessible to Deployment Manager. 8 Start Deployment Manager. 9 Select the Centrify Deployment Manager node, right-click, then select Import Centrify Product Catalog. 10 Select the centrify-product-catalog-offline.xml file you downloaded and transferred, then click Open. 11 When Deployment Manager displays a message that the product catalog has been imported, click OK. 12 Under Step 2 in Deployment Manager, click Download Software. 13 Click Copy from network or local drive. 14 Click Browse to navigate to the directory that contains the Analysis Tools (the adcheck binaries) and compressed Centrify Server Suite packages (*.tgz files), then click Next. 15 Review the list of files to be downloaded, then click Finish. 16 Deployment Manager imports the files it finds into its local repository. Planning and Deployment Guide 84 Performing a risk assessment 17 Delete the files you originally downloaded to save disk space. Performing a risk assessment You can use the Deployment Manager Assessment feature to check discovered computers for a wide range of potential issues and generate a report of findings. The assessment report can help you determine the overall risk level across computers in your organization and specific areas where you have the most exposure. The report also highlights steps you can take to reduce risk and improve security, compliance, and operational efficiency. The results of each assessment you run are stored in the Deployment Manager database, so you have a historical record of activity and an archive of past assessment results. The security assessment is an optional preliminary step that helps you identify and evaluate risks before deploying Centrify software. In most cases, you should complete a security assessment once on each target set of computers where you plan to deploy the Centrify agent. You can also run the security assessment after deploying agents if you want to compare before and after results. If you want to evaluate computers for potential vulnerabilities before deploying, you should download the Centrify Identity Risk Assessor software package in addition to the Analysis Tools and other Centrify software from the Customer Download Center. For more detailed information about performing a risk assessment and using Deployment Manager, see the Deployment Manager User’s Guide. Analyze target computers for potential issues The Analysis Tools are platform-specific adcheck binaries that you can use to check whether the computers in your target set meet all the prerequisites, such as having a supported operating system and required patches installed, and to identify potential problems, such as problems with DNS name resolution or invalid credentials. You should download the Analysis Tools for all platforms you intend to support and run the analysis on all target computers before you attempt to install Centrify Server Suite. You can run the adcheck program independent of Deployment Manager or from the install.sh script, but Centrify recommends you use Deployment Manager to perform the analysis on discovered computers. Note To analyze the target set of computers in your environment: 1 Under Step 3 in Deployment Manager, select the computers that are in the Identified but Not Analyzed category, then click Analyze. After the initial discovery, computers that are reachable with a recognized operating system are listed as Identified but Not Analyzed under Computers Not Analyzed. If you have computers listed as Not Identified, you should check the Open Issues for those Chapter 6 • Installing agents on computers to be managed 85 Analyze target computers for potential issues computers. It may be that the IP address was found but not reachable or that the computer has an unsupported operating system. If you want to analyze a subset of computers, expand the Identified but Not Analyzed category, then select individual computers. 2 Type the Active Directory domain name and select an option for the domain controllers to analyze, then click OK. Deployment Manager analyzes each computer in the selected set of computers to determine its status, compatibility for installing Centrify Server Suite software, and ability to join Active Directory. The time it takes to complete the analysis depends are the number of computers being analyzed and your network topology. Deployment Manager displays the results of the analysis by listing computers in different categories. For example: Planning and Deployment Guide 86 Analyze target computers for potential issues If no issues are detected during the analysis, Deployment Manager moves the computer into the Read to Install category under Step 4. Deploy Centrify Software: 3 Expand the categories to explore which computers have issues or warnings that might prevent the software from being installed or updated. 4 Restart computers that are reported as Not Ready to Install or Not Ready to Update to ensure that the operating system boots properly before making any changes to those systems. 5 Review and resolve open issues for each computer. 6 Re-run the Analyze command for one or more computers to verify your fixes. Review open issues There are many common problems that the Analysis Tools can report that will require you to make changes before installing Centrify Server Suite software. For example, if the analysis finds there’s not enough disk space available on a particular computer, it reports this information as an open issue for that computer. You can then view the details about that open issue to see more information, such as how much more disk space is required. You can view the open issues for all computers in the repository or for individual computers by selecting Open Issues under the Centrify Deployment Manager node or an individual computer node or by viewing a computer’s details in the analysis results. To see the details about an open issue, select the issue, right-click, then select Properties. Properties for an open issue typically provide suggestions for how to resolve the issue or indicate whether the issue can be ignored. Chapter 6 • Installing agents on computers to be managed 87 Analyze target computers for potential issues Resolve common issues The options available for resolving open issues from Deployment Manager depend on the type of issue reported. For most issues, you can right-click and select one of the following responses: Select If the issue is Ignore A warning or informational issue that does not require changes to the computer with the issue. Selecting Ignore removes the issue from the list of Open Issues so that you can deploy the software. Re-analyze A warning or informational issue that you have fixed since the last time you analyzed the computer. For example, if the computer was offline, and is now online, the new analysis should resolve connection issues. SSH A warning or an error that you can fix by logging on to the remote computer using a secure shell (ssh) connection. Centrify recommends you use secure shell (ssh) connections to perform administrative tasks whenever possible. Telnet A warning or an error that you can fix by logging on to the remote computer using a telnet connection if you configure Deployment Manager to allow telnet connections. Some issues also provide specific solutions for you to select on the right-click menu. For example, if the user name or password provided for a computer is not valid or has not been specified, you can right-click that open issue, select the Set user name and password option to update the user name and password. If a computer displays the Check clock synchronization issue, the right-click menu allows you to select Synchronize Clock to correct the issue. Other common issues you should resolve before installing Centrify Server Suite include: Operating system patches, required libraries, or missing packages: If the analysis reports any missing patches, libraries, or software packages, you should install the specific items identified for the operating system on the computer where the issue is reported. In most cases, the changes recommended address specific known issues that Centrify has identified. Domain Name Service (DNS) issues: If the analysis reports any DNS or host name resolution issues, there are several potential causes and corresponding fixes. You should verify that you typed the Active Directory domain name correctly and the domain controller is online. The most common cause of DNS issues is that the UNIX and Windows computers use separate DNS servers. The most common way to fix this issue is to set up forward and reverse lookups or delegation so that the UNIX servers can locate the Active Directory domain controllers through the Windows DNS server role. Alternatively, you may be able to manually specify the Active Directory domain controllers in the agent configuration file and in the /etc/hosts file. Port connection or firewall issues: If the analysis reports port scan failures, you should check whether a firewall, network segmentation, or server isolation is blocking the Planning and Deployment Guide 88 Deploy agents on computers identified as Ready connection between the UNIX computer and the domain controller. If you encounter this issue, you should open the required firewall ports or change the network segmentation. If the changes you need to make require a formal approval in a change control process, you should plan for the time it takes to get requests approved in your deployment schedule. Re-analyze target computers after resolving open issues You should always re-run the analysis of your environment after resolving issues to verify your changes fixed the problem and that no new issues have been introduced. You can re-run the Analyze command for all or selected computers in selected categories at any time. You can also select individual computers, right-click, then select Analyze Environment to re-run the analysis on a specific computer. Deploy agents on computers identified as Ready After you have analyzed computers and resolved any open issues, such as installing patches or rebooting computers that were unreachable, you should see computers listed under Step 4. Deploy Centrify Software as Ready to Install. Deployment Manager will determine the correct version of the Centrify package to install on each computer and record details about the installation and other activities under the History node. To deploy Centrify software on the computers that are ready: 1 Under Step 4 in Deployment Manager, select the computers that are in the Ready to Install category, then click Deploy. 2 Select Centrify Server Suite Standard Edition or Centrify Server Suite Enterprise Edition, then click Next. 3 Verify the version of the software you have selected, then click Next. 4 Accept the default components or customize the components to include, then click Next. 5 Click to cancel the Add the computers into Active Directory after install selection, then click Next. Before adding computers to the Active Directory domain, you must prepare for the migration of existing users and groups into one or more zones. To prevent the migration from disrupting user activity, you should analyze the user population on the target set of computers and identify your zone requirements before joining the domain. 6 Check the default list of service types and service principal names, then click Next. Chapter 6 • Installing agents on computers to be managed 89 Configuring a sudoers file for use with Deployment Manager You can add or remove services and service principal names, if needed. The default services listed are the most commonly used services. For each service, there are two service principal names: the computer name and the computer name and domain. 7 Review your selections, then click Finish to install the software on the selected computers. Configuring a sudoers file for use with Deployment Manager Granting ALL permission to a specified user account in a sudoers file ensures that Deployment Manager can execute all required privileged commands during deployment. In some cases, however, you might want to explicitly configure a sudoers file that only grants permission for the specific commands that Deployment Manager requires. If you plan to configure a sudoers file for Deployment Manager, you should note that some of the commands are operating system specific and the path for locating the commands can be different on different operating systems. If you configure the sudoers file to only include the required commands, be sure you use the commands and paths as appropriate for the operating system of the computer you are managing. Basic commands User and group commands Centrify commands cat useradd /usr/bin/adcheck cd userdel /usr/sbin/adinfo chmod usermod /usr/sbin/adjoin cp passwd /usr/sbin/adleave chown chgroup, groupmod /usr/sbin/adreload date rmgroup, groupdel /usr/sbin/dacontrol domainname mkgroup, groupadd dscl echo grep gunzip hostname ls lsldap mkdir mv rm sed sh stty touch Planning and Deployment Guide 90 Other options for deploying Centrify agent packages Basic commands User and group commands Centrify commands vmware ypwhich The following is a sample sudoers section for Deployment Manager commands: ## Sudo policy for Centrify DirectManage Deployment Manager User_Alias DMOPERATORS = vstest Cmnd_Alias DMCOMMANDS = /bin/sh, /bin/ls, /bin/touch, /bin/grep, /bin/echo, / bin/cat, /bin/mv, /bin/rm, /bin/sed, /bin/date, /bin/mkdir, /usr/bin/gunzip, /bin/cp, /bin/chmod, /usr/sbin/adreload, /usr/sbin/dacontrol, /usr/sbin/ adjoin, /bin/hostname, /usr/bin/ypwhich, /bin/domainname, /usr/sbin/usermod, /usr/sbin/groupmod, /usr/bin/passwd, /usr/sbin/userdel, /usr/sbin/groupdel, / usr/sbin/adinfo, /usr/sbin/adleave, /usr/sbin/useradd, /usr/sbin/groupadd, / usr/sbin/adcheck, /bin/stty, /bin/chown DMOPERATORS ALL = DMCOMMANDS Other options for deploying Centrify agent packages If you don’t want to use Deployment Manager to manage information on your UNIX, Linux, and Mac OS X computers, you can: Run the agent installation script locally on any computer and respond to the prompts displayed. Create a configuration file and run the installation script remotely on any computer in silent mode. Use the install or update operations in the native package installer for your operating environment. Use a commercial or custom software distribution tool. If you want to use one of these installation options and need more information, see the appropriate section. Install interactively on a computer The Centrify agent installation script, install.sh, automatically checks the operating system, disk space, DNS resolution, network connectivity, and other requirements on a target computer before installing. You can run this script interactively on any supported UNIX, Linux, or Mac OS X computer and respond to the prompts displayed. To install Centrify software packages on a computer interactively: 1 Log on or switch to the root user if you are installing on a Linux or UNIX. If you are installing on Mac OS X, you can log on with any valid user account. Chapter 6 • Installing agents on computers to be managed 91 Other options for deploying Centrify agent packages On Mac OS X computers, you can install interactively using the graphical package installer or the install.sh script. For information about installing and joining an Active Directory domain using the Mac OS X package installer, see the Mac-specific instructions in the Administrator’s Guide for Mac OS X. Note 2 Mount the cdrom device using the appropriate command for the local computer’s operating environment, if necessary. On most platforms, the CD drive is automatically mounted. If you have downloaded the package from an FTP server or website, verify the location and go on to the next step. Note The instructions for mounting the CD drive are platform-specific. For example on Linux, you can use a command similar to the following: mount /mnt/cdrom To manually mount the CD drive on AIX, run a command similar to the following: mount -v cdrfs -o ro /dev/cd0 /cdrom To mount the CD drive on HP-UX, run a command similar to the following to display the long file names: mount -F cdfs -o rr /dev/dsk/c0t0d0 /mnt/cdrom 3 Change to the appropriate directory that contains the Centrify agent package you want to install. For example, to install an agent on a Linux computer from a downloaded Centrify ISO or ZIP file, change to the Agent_Linux directory: cd Agent_Linux Similarly, if you are installing on a Solaris, HP-UX, AIX or other UNIX computer, change to the Agent_Unix directory. If installing on a Mac OS X computer, change to the Agent_Mac directory. If you downloaded individual agent packages from the Centrify Download Center, unzip and extract the contents. For example: gunzip -d centrify-suite-2016.1-platform-arch.tgz tar -xf centrify-suite-2016.1-platform-arch.tar 4 Run the install.sh script to start the installation of the agent on the local computer’s operating environment. For example: ./install.sh 5 Follow the prompts displayed to select the services you want to install and the tasks you want to perform. For example, you can choose whether you want to: Install the Centrify Server Suite Standard Edition. Install the Centrify Server Suite Enterprise Edition. Perform a custom installation by selecting the specific packages to install. Join a domain automatically at the conclusion of the installation. Planning and Deployment Guide 92 Other options for deploying Centrify agent packages Depending on your selections, you may need to provide additional information, such as the user name and password for joining the domain. Run the bundle installation from a mounted network volume You can install agents from a mounted network volume using the install-bundle.sh script. This script is available on the agent CD or ISO file that contains all of the supported agent platforms in compressed format. The bundle installation script automatically determines the platform required and extracts the contents of the appropriate TGZ file, then starts the normal installation process. To use the install-bundle.sh script: 1 Copy the install-bundle.sh script onto a network file system share and mount the shared directory. 2 Verify the file is executable and that you have appropriate privileges to run it. For example: chmod +x install-bundle.sh chmod 755 install-bundle.sh 3 Run the script without command line options to start the installation or add command line options to install the agent silently. For example, to start an interactive installation, type a command similar to this: sudo ./install-bundle.sh To install the agent silently, type a command similar to this: ./install-bundle.sh --std-suite --adjoin_opt="sidebet.org --password pa$swd sudo ./install-bundle.sh --zone global --container sidebet.org/UNIX/Servers --server demo.sidebet.org" To see complete usage information for the install-bundle.sh script, type: ./install-bundle.sh --help Install silently using a configuration file Installing without user interaction enables you to automate software delivery and the management of remote computers. If you want to install files without any user interaction, you can run the install.sh script silently invoking the script with the appropriate command-line arguments. You can also customize the packages installed and other options by creating a custom configuration file for the installer to use. To see the install.sh silent mode and other command line options, enter install.sh -h To install Standard Edition default packages and configuration options silently, run: install.sh --std-suite To install Enterprise Edition default packages and configuration options, run: Chapter 6 • Installing agents on computers to be managed 93 Other options for deploying Centrify agent packages install.sh --ent-suite To install a customized set of packages that all have the same version number, run: install.sh -n About the sample configuration files available You can customize the install.sh execution script. There are two sample configuration files for installing software packages silently. These sample configuration files are located in the same directory as the install.sh script: centrifydc-suite.cfg centrify-install.cfg If you want to customize the packages installed or other configuration options, you can modify the sample centrifydc-suite.cfg or centrifydc-install.cfg file. The centrifydc-suite.cfg file is used when you run install.sh with the --std-suite or --ent-suite options. If you run install.sh --std-suite or install.sh --ent-suite with a customized version of the centrifydc-suite.cfg file, you can selectively install compatible add-on packages that do not have the same version number as the core Centrify agent. Alternatively, you can run install.sh -n with a customized version of the centrifydcfile to install the agent and add-on packages if they all have the same version number. install.cfg If you run the install.sh script silently and it cannot locate the centrifydc-suite.cfg or centrifydc-install.cfg file to use, default values defined directly in the script itself are used. Setting the parameters in a custom configuration file for the installation script If you want to specify values for the install.sh script to use, you should edit the sample centrifydc-suite.cfg or centrifydc-install.cfg file in its default location before invoking the install.sh script in silent mode. The parameters in the centrifydc-install.cfg or centrifydc-suite.cfg file are the same, except that the centrifydc-suite.cfg file is used when installing a suite to allow packages with different version numbers to be installed together. Because you should not modify the compatibility defined in the centrifydc-suite.cfg file, those parameters are not included in the table. Note Planning and Deployment Guide 94 Other options for deploying Centrify agent packages To customize the installation using the centrifydc-install.cfg or centrifydcsuite.cfg file, you can set the following parameters: Set this parameter To do this ADCHECK Indicate whether you want to run the adcheck program to check the configuration of a local computer and its connectivity to Active Directory. Note that the install.sh script calls adcheck twice. After the first call, adcheck performs several required pre-installation steps to make sure you can install the Centrify agent on the host computer. These steps are mandatory and cannot be skipped. However, the second call to adcheck is used to perform post-installation steps to make sure the agent has been installed successfully. The second set of checks is optional and can skipped. Set this parameter to Y if you want to run adcheck after installing. For non-interactive installations, the default is N. ADLICENSE Indicate whether you want to install licensed features. Set this parameter to Y if you have purchased and installed license keys. If you downloaded and want to install unlicensed Centrify Express agents, set this parameter to N. GLOBAL_ZONE_ONLY Specify whether you want to install the agent in a Solaris 10 global zone and no other zones. Set this parameter to Y only if you are running the install.sh script on a Solaris 10 computer and want to install the agent in the Solaris 10 global zone and none of your non-global zones. In most cases, you only set this parameter to Y if you use sparse root zones. The default setting for this parameter is N so that the agent is installed in all Solaris zones. If the script is not running on a Solaris 10 computer, this parameter is ignored. ADJOIN Indicate whether you want to attempt to join an Active Directory domain in noninteractive mode. Set this parameter to Y to attempt to join the domain automatically. Set this parameter to N to manually join the domain after installation. ADJ_FORCE Overwrite the information stored in Active Directory for an existing computer account. Set this parameter to Y to replace the information for a computer previously joined to the domain. If there is already a computer account with the same name stored in Active Directory, you must use this option if you want to replace the stored information. You should only use this option when you know it is safe to force information from the local computer to overwrite existing information. ADJ_TRUST Set the Trust for delegation option in Active Directory for the computer account. Trusting an account for delegation allows the account to perform operations on behalf of other accounts on the network. DOMAIN Specify the domain to join, if you set the ADJOIN parameter to Y. Set this parameter to the name of a valid Active Directory domain. USERID Specify the Active Directory user name to use when connecting to Active Directory to join the domain. Set this parameter to a valid Active Directory user name. PASSWD Specify the password for the Active Directory user name you are using to connect to Active Directory. Set this parameter to the password for the Active Directory user name specified for the USERID parameter. Chapter 6 • Installing agents on computers to be managed 95 Other options for deploying Centrify agent packages Set this parameter To do this COMPUTER Specify the computer name to use for the local host in Active Directory. Set this parameter to the computer name you want to use in Active Directory if you don’t want to use the default host name for the computer. CONTAINER Specify the distinguished name (DN) of the container or Organizational Unit in which you want to place this computer account. The DN you specify does not need to include the domain suffix. The domain suffix is appended programmatically to provide the complete distinguished name for the object. If you do not specify a container, the computer account is created in the domain’s default Computers container. Note that the container you specify must already exist in Active Directory, and you must have permission to add entries to the specified container. ZONE Specify the zone to which you want to add this computer. SERVER Specify the name of the domain controller to which you prefer to connect. You can use this option to override the automatic selection of a domain controller based on the Active Directory site information. DA_ENABLE Indicate whether you want to automatically enable the auditing service on the local computer. The valid settings are: • Y if you want to enable auditing with the default auditing configuration. • N if you don’t want to enable auditing. • K if you are upgrading and want to keep your current auditing configuration unchanged. DA_INST_NAME Specify the name of an auditing installation if you set the DA_ENABLE parameter to Y. REBOOT Indicate whether you want to automatically restart the local computer after a successful installation. Set this parameter to Y if you want to automatically restart the local computer or to N if you don’t want the computer restarted automatically. Planning and Deployment Guide 96 Other options for deploying Centrify agent packages Set this parameter To do this INSTALL Specify the operation to perform. The valid settings are: • Y to install the Centrify agent and any other Centrify software packages if they are not already installed on the local computer. • U to update older versions of the Centrify agent and any other Centrify packages you have installed. The update option only updates software from one major release version to another. It does not update the software if the major release version is same between packages. • R to reinstall or repair the Centrify agent and any other Centrify packages you have installed. You can reinstall packages that have the same major release version but different build number or repair packages by installing an older version of the package. • E to remove the software currently installed. • K to keep current software unchanged. Set this parameter to Y to install or to U to update the Centrify agent and other packages. If you want to install or update other packages, select the operation to perform for each package. For example to update the Centrify Kerberos package and keep the current Centrify LDAP proxy service, you might specify the following: CentrifyDC_krb5=”U” CentrifyDC_ldapproxy="K" Note that these additional packages may have dependencies or require a specific version of the Centrify agent to be installed. Before installing or updating additional packages silently, you should review the information in the Upgrade and Compatibility Guide. UNINSTALL Specify whether you want to forcibly uninstall all installed packages. For example, you can edit the centrifydc-install.cfg or centrifydc-suite.cfg file to silently install the Centrify agent, join the domain, and automatically reboot the computer at the completion of the installation process with a file similar to this: ADCHECK="N" ADLICENSE="Y" # Solaris 10 -G option, installation in global zone only GLOBAL_ZONE_ONLY="N" ADJOIN="Y" ADJ_FORCE="N" ADJ_TRUST="N" DOMAIN="sample.company.com" USERID=administrator PASSWD="t1ger3!" #COMPUTER=my_host_name #CONTAINER="my_computers" ZONE="global_zone" #SERVER=server_name DA_ENABLE="N" DA_INST_NAME="" REBOOT="Y" # Install the core agent package INSTALL="Y" # Skip installation for other packages CentrifyDC_nis= CentrifyDC_krb5= Chapter 6 • Installing agents on computers to be managed 97 Other options for deploying Centrify agent packages CentrifyDC_ldapproxy= CentrifyDC_openssh= CentrifyDC_web= CentrifyDC_apache= CentrifyDC_idmap= CentrifyDA= This sample configuration file does not install any of the Centrify add-on packages. You can also use the configuration file to silently install or update selected packages. For example, to update the LDAP proxy service and OpenSSH on a computer, you would modify the configuration file to indicate that you want to update those packages: CentrifyDC_ldapproxy=”U” CentrifyDC_openssh=”U” Customizing the return codes for the installation script Normally, when you run the install.sh script silently, the script returns an exit code of 0 if the operation is successful. If you want the script to return exit codes that indicate whether the operation performed was a successful new installation, a successful upgrade, a successful uninstall, or there were errors preventing installation, you can also use the --custom_rc option. For example: install.sh -n --custom_rc When you specify this option, the following return codes that are defined in the install.sh script are used to provide more detailed information about the result: This return code Indicates CODE_SIN=0 Successful install CODE_SUP=0 Successful upgrade CODE_SUN=0 Successful uninstall CODE_NIN=24 Did nothing during install CODE_NUN=25 Did nothing during uninstall CODE_EIN=26 Error during install CODE_EUP=27 Error during upgrade CODE_EUN=28 Error during uninstall CODE_ESU=29 Error encountered during setup, for example, the UID is not the root user UID, the operating environment is not supported or not recognized, or the script is executed with invalid arguments Use a native package installer If you want to manually install a software package using a native installation program instead of the Centrify Server Suite installation script, you can follow the instructions in the Upgrade and Compatibility Guide for the most common native package installers, such as the Red Hat or Debian package manager. You should note that these native packages are signed with a GNU Privacy Guard (GPG) key. You need to import the key to verify the package Planning and Deployment Guide 98 Other options for deploying Centrify agent packages authenticity before installing the package. You can download the RPM-GPG-KEY-centrify file from the Centrify Download Center. Alternatively, you can use any other installation program you have available for the local operating environment. For example, if you use another program such as SMIT, YAST, APT, SUSE, or YUM to install and manage software packages, you can use that program to install Centrify Server Suite software packages. Perform the following steps to install the Centrify agent using a native installation program. that does not require a connection to a package repository. To use a native installation program that requires a repository connection (such as yum, SUSE or APT), see Enabling yum, SUSE, and APT package repositories. 1 Log on as or switch to the root user. 2 If you are installing from a CD and the CD drive is not mounted automatically, use the appropriate command for the local computer’s operating environment to mount the cdrom device. 3 Copy the appropriate package for the local computer’s operating environment to a local directory. For example, if installing from the CD and the operating environment is Solaris 9 SPARC: cp /cdrom/cdrom0/Unix/centrifydc-release-sol8-sparc-local.tgz . If you aren’t sure which file to use for the local operating environment, see the releasenotes text file included in the package. 4 If the software package is a compressed file, unzip and extract the contents. For example, on Solaris: gunzip -d centrifydc-release-sol8-local.tgz tar -xf centrifydc-release-sol9-sparc-local.tar 5 Run the appropriate command for installing the package based on the local computer’s operating environment. For example, on Solaris: pkgadd –d CentrifyDC -a admin If you aren’t sure which command to use for the local operating environment, see the documentation associated with the package installer you are using. Enabling yum, SUSE, and APT package repositories You can also download and install agents from the Yellowdog Updater, Modified (yum), Software and Systems Development (SUSE), or Advanced Package Tool (APT) repositories and use those products’ command-line package-management commands to manage automatic agent updates and dependencies locally or over the network. Before you can use SUSE, yum or APT, you must perform one of the following procedures. Chapter 6 • Installing agents on computers to be managed 99 Other options for deploying Centrify agent packages The procedures in this section require that you connect to the Centrify Support Portal to obtain a repository key, and that you specify the Centrify package repository URL in a SUSE, yum, or APT configuration file. Note For additional details about configuring and using SUSE or yum repositories, see the documentation for the distribution of Linux you are using. For additional details about configuring and using APT repositories, see the documentation for the distribution of Debian Linux or Ubuntu you are using. Note To enable a yum repository 1 Create a /etc/yum.repos.d/centrify-rpm-redhat.repo file to use the official Centrify package repository, and download a RPM-GPG-KEY-centrify key from the Centrify Support Portal. # cat centrify-rpm-redhat.repo [centrify-rpm-redhat] name=centrify-rpm-redhat baseurl=https://username:password@repo.centrify.com/rpm-redhat/ enabled=1 repo_gpcheck=1 gpgcheck=1 gpgkey=https://edge.centrify.com/products/RPM-GPG-KEY-centrify 2 Execute the yum info command to verify the repository connection. You should see output similar to the following. # yum info CentrifyDC Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. centrify 2.9 kB 00:00 Available Packages Name : CentrifyDC Arch : i386 Version : 5.3.1 Release : 324 Size : 24 M Repo : centrify Summary : Centrify DirectControl Agent URL : http://www.centrify.com/ License : BSD with portions copyright (c) Centrify Corporation 2006-2016 and licensed under Centrify End User License Agreement Description : RPM to install Centrify DirectControl on Linux x86 platforms. 3 Install the Centrify agent rpm package. # yum install CentrifyDC To uninstall the Centrify agent rpm file, you can use the erase command. For example: Note # yum erase CentrifyDC 4 Run adcheck. Planning and Deployment Guide 100 Other options for deploying Centrify agent packages Though this step is not required, it is highly recommended to ensure that your environment has the requisite configuration to run the Centrify agent. # adcheck To enable a SUSE repository 1 Use zypper to create a SUSE repository. /etc/zypp/repos.d # zypper addrepo -C -G --refresh --name “centrify-rpmsuse” https://repo.centrify.com/rpm-suse “centrify-rpm-suse” 2 Import your GPG key and update the repository. /etc/zypp/repos.d # cat /etc/zypp/repos.d/centrify-rpm-suse.repo [centrify-rpm-suse] name=centrify-rpm-suse enabled=1 autorefresh=1 baseurl=https://username:password@repo.centrify.com/rpm-suse/ type=rpm-md repo_gpcheck=1 gpgcheck=1 gpgkey=https://edge.centrify.com/products/RPM-GPG-KEY-centrify 3 Refresh the cache. /etc/zypp/repos.d # zypper refresh 4 Verify the connection to the repository. /etc/zypp/repos.d # zypper packages |grep centrify You should see output similar to the following: centrify-rpm-suse CentrifyCC 16.4-104 x84_64 centrify-rpm-suse CentrifyDA 3.3.0-185 x84_64 centrify-rpm-suse CentrifyDC 5.3.0-220 x84_64 centrify-rpm-suse CentrifyDC-ldapproxy 5.3.0-220 x84_64 centrify-rpm-suse CentrifyDC-nis 5.3.0-220 x84_64 centrify-rpm-suse CentrifyDC-openssh 7.1p1-5.3.0.208 x84_64 5 Install the Centrify agent rpm package. # zypper install CentrifyDC To uninstall the Centrify agent rpm file, you can use the remove command. For example: Note # zypper remove -CentrifyDC 6 Run adcheck. Though this step is not required, it is highly recommended to ensure that your environment has the requisite configuration to run the Centrify agent. Chapter 6 • Installing agents on computers to be managed 101 7 Other options for deploying Centrify agent packages # adcheck To enable an APT repository 1 Update the /etc/apt/sources.list file to include the official Centrify package repository. # echo “deb https://username:password@repo.centrify.com/deb stable main” >>/etc/ apt/sources.list # cat sources.list |grep key1 deb https://username:password@repo.centrify.com/deb stable main 2 Clean and update the local archives. # apt-get clean # apt-get update 3 Execute the apt command to verify the repository connection. You should see output similar to the following. list # apt list --all-versions | grep centrify centrifycc/stable 16.4-104 amd64 centrifyda/stable 3.3.0-185 amd64 centrifydc/stable,now 5.3.0-220 amd64 centrifydc-ldapproxy/stable 5.3.0-220 amd64 centrifydc-nis/stable 5.3.0-220 amd64 centrifydc-openssh/stable 7.1p1-5.3.0.208 amd64 4 Execute the apt install and apt-get install commands to install Centrify packages. For example: # apt install centrifydc centrifydc-nis-5.3.0-deb6-x86_64.deb # apt-get install centrifydc-5.2.3-429 To uninstall the Centrify agent rpm file, you can use the remove command to delete the Centrify agent packet or the purge command to also delete any configuration files. For example: Note # apt remove centrifydc-5.2.3-429 5 Import the GPG key. # bash -c ‘wget -O - https://edge.centrify.com/products/RPM-GPG-KEYcentrify | apt-key add -’ 6 Comment out the no-debsig line in etc/dpkg/dpkg.cfg to enable GPG signature validation. # grep no-debsig /etc/dpkg/dpkg.cfg 7 Run adcheck. Though this step is not required, it is highly recommended to ensure that your environment has the requisite configuration to run the Centrify agent. # adcheck Planning and Deployment Guide 102 About the files and directories installed on the agent Use other automated software distribution utilities You can also install Centrify Server Suite using virtually any automated, software distribution framework. For example, you can use software delivery offerings from HP OpsWare or IBM Tivoli, or features such as Apple Remote Desktop, or software distribution in the Casper Suite to deliver Centrify software to remote computers. You can also use any custom software delivery tools you have developed specifically for your organization. If you use a commercial or custom software distribution mechanism, review the release notes text file included with agent package for platform-specific installation details. About the files and directories installed on the agent When you complete the installation, the local computer will be updated with the following directories and files for the core Centrify UNIX agent: This directory Contains /etc/centrifydc The agent configuration file and the Kerberos configuration file. /usr/share/centrifydc Kerberos-related files and service library files used by the Centrify agent to enable group policy and authentication and authorization services. /usr/sbin /usr/bin Command line programs to perform Active Directory tasks, such as join the domain and change a user password. /var/centrify Directories for temporary and common files that can be used by the agent. /var/centrifydc Before joining the domain, the directory contains basic information about the environment, such as the IP address of the DNS server and whether you installed licensed or express agent features. After you join the domain, several files are added to this directory to record information about the Active Directory domain the computer is joined to, the Active Directory site the computer is part of, and other details. Depending on the suite edition and components you select during installation, additional files and directories might be installed or updated. For example, if you install Enterprise Edition, the computer is updated with additional files and directories for auditing. Joining an Active Directory domain at a later time At this point, you have delivered the software to target computers, but not changed their configuration. Users still have exactly the same access as they did before installing Centrify Server Suite. The computer’s configuration changes only happen when the computer joins an Active Directory domain, that is, joining the domain is what “activates” Centrify Server Suite. You have the option to automatically join an Active Directory domain when you install Centrify agents using Deployment Manager or the install.sh script. In most cases, Chapter 6 • Installing agents on computers to be managed 103 Joining an Active Directory domain at a later time however, you should not do so unless you have already planned your user migration and created your initial zones. Typically, it is best to analyze the user population and prepare for migration before joining the domain to ensure minimal disruption of user activity and ease the transition to new software. Over time, as you become more familiar with the migration process and refine your zone design, you can adapt the steps to suit your organization. If you want to join the domain at the same time you deploy the Centrify software, you should do the following before you install files on the UNIX computers: 1 Build the computer inventory as described in “Build an inventory of computers in the target group” on page 78. 2 Download the Analysis Tools and Centrify Server Suite software for all platforms or the subset of platforms you intend to support as described in “Download Analysis Tools and Centrify agent software” on page 83. 3 Analyze your environment, resolve open issues, and re-run the analysis as described in “Analyze target computers for potential issues” on page 85. 4 Analyze existing user and group accounts. 5 Identify your zone requirements and create the initial zone design. 6 Migrate users and groups into the appropriate zones and role assignments. 7 Use Deployment Manager, the install.sh script, or a custom script to install Centrify agents and join the domain. The additional steps are described in the next sections. You can also manually join a domain at any time after installation by using the adjoin command. Planning and Deployment Guide 104 Chapter 7 Planning to use Centrify zones One of the most important aspects of managing computers with Centrify software is the ability to organize computers, users, and groups into zones. This section discusses the primary reasons for using zones and provides an overview of how to analyze and migrate an existing user population into zones, including an introduction to assigning roles that enable users to access computer resources. These topics will then be described in greater detail in the next sections to help you create an initial zone structure and migrate users and groups for a target set of computers. The following topics are covered: Why use zones? Deploying to a single Auto Zone Classic and hierarchical zones How many zones do you need? A closer look at using zones in a hierarchical model Why use zones? A zone is similar to an Active Directory organizational unit (OU) or NIS domain. Zones allow you to organize the computers in your organization in meaningful ways to simplify the transition to Active Directory and the migration of user and group information from existing identity stores. The primary benefits to using zones are: Identity management through user and group profile definitions Access and authorization control through rights and role definitions Delegated computer management for zone-based administrative tasks Zones also enable you to centrally manage configuration policies for computers and users through group policies, but for most organizations the key considerations for designing a zone structure involve: Identity management because zones enable you to migrate from a complex UID space, where a user can have multiple UIDs or different profile attributes on different computers or a single UID might identify different people depending on the computer being used. With zones, you can associate multiple UNIX profiles with a user and identify the correct profile attributes for any user on any given computer. 105 Why use zones? Access and authorization management because zones enable you to grant specific rights to users in specific roles on specific computers. By assigning roles, you can control who has access to which computers. Delegated computer management because zones enable you to assign specific administrative tasks to specific users or groups on a zone-by-zone basis, allowing you to establish an appropriate separation of duties. With zones, administrators can be given the authority to manage a given set of computers and users without granting them permission to perform actions on computers in other zones or access to other Active Directory objects. In most organizations, the first goal in designing the zone structure is to migrate users and computers from an existing identity store, such as NIS, NIS+, local files, or LDAP, to Active Directory and to do so with the least possible disruption to user activity, business services, and the existing infrastructure. Over time, you can also use zones to organize computers along departmental, geographical, or functional lines using whatever strategy works best for your organization. Although Centrify supports a workstation mode that does not require you to create and manage zones—a single Auto Zone is defined instead—most organizations find using zones to be an essential part of their migration to Active Directory. The next sections provide more information about why zones are an important part of the planning process. For more information about using Auto Zone, see “Deploying to a single Auto Zone” on page 107. Identity management using zones For most organizations, it is impractical to attempt to rationalize user accounts across the enterprise to achieve a single global UID for each user. For example, most organizations have multiple identity stores already in use on their current UNIX platforms. These identity stores may include LDAP directories, NIS or NIS+ domains, and local /etc/passwd and / etc/group configuration files. With these multiple identity stores, it is common for a single user to have a different user name, UID, group memberships, or other attributes defined for different computers. Zones allow you to import the information from these legacy identity stores without consolidating the multiple profiles that each user may have. For example, a single user might have an account in a UNIX LDAP directory, another defined in a NIS domain, and one or more local /etc/passwd files. Zones enable the profiles from these different identity stores to map to a single Active Directory user account without changing the user profile defined in each of the legacy directories. By keeping the profiles intact, the user’s file ownership and log in permissions are not affected by the migration to Active Directory, making the transition from a legacy system to Active Directory more transparent to end-users and less of a management burden for the deployment team. Planning and Deployment Guide 106 Deploying to a single Auto Zone Role-based access control and zones As a practical matter, you may choose to use Centrify zones to ease migration to Active Directory by creating a separate zone for each legacy identity store. However, you can also use zones to group computers by department, by function, or by any other criteria you choose. Using zones in this way gives you a great deal of flexibility in controlling who has access to the UNIX, Linux, and Mac OS X computers in your environment and makes it easier to set up account information for new users based on job function or other criteria. Through role assignments, zones provide a scope of resources particular users can access, allowing you to define who can do what on which computers. For example, all of the computers in the finance department could be grouped into a single zone called “finance” and the members of that zone could be restricted to finance employees and senior managers, each with specific rights, such as log on to a database, update certain files, or generate reports. This gives you better control over access to systems based on well-defined roles. You can also limit access to certain types of applications, such as database management utilities or web services. For example, you can define specific actions specific users are allowed to perform by assigning them different roles in different zones. Using zones to delegate administrative duties Zones can also be useful for grouping computers that form a natural administrative set or that should be managed by different administrative teams. For example, you may want to group computers that are managed by a local support organization in one zone and computers that are managed by a corporate IT group in another zone. Using zones, you can then control what different groups of users can do within the zones they have permission to access. For example, you can set up regional zones to provide a separation of duties, authorizing users in San Francisco to manage computers and user profiles in their local office while a team in Barcelona has authority to join computers and manage group profiles for offices located in Spain. Zones provide a convenient way for you to assign individual administrative responsibilities to specific users or groups based on a set criteria, such as department, geographic location, or functional role. Deploying to a single Auto Zone In most cases, if you are deploying on Linux or UNIX computers and have an existing user population to migrate to Active Directory, you would create a hierarchical zone structure of multiple zones. However, multiple zones are not required for all situations. You can greatly reduce the time required and complexity of your deployment if a single zone suits your organization’s needs. For example, if you are deploying on Mac OS X or Windows computers or if you have a mix of computer platforms but do not have an existing user population to migrate, you might benefit from deploying agents using the Auto Zone option. Chapter 7 • Planning to use Centrify zones 107 Classic and hierarchical zones With Auto Zone, you have a single zone for an entire forest. All of the users and groups you have defined in Active Directory for the forest automatically become valid users and groups on the computers that join the Auto Zone. If the forest has a two-way trust relationship with another forest, all Active Directory users defined in that trusted forest are also automatically valid on computers that join the Auto Zone. If you simply want to use the Active Directory users and groups you have already defined on the non-Windows computers you manage, you can skip the planning and creation of zones and simply add computers to the Auto Zone when you join the domain. The UNIX profile attributes that are required to access computers in the Auto Zone are then automatically derived from user attributes in Active Directory or from settings defined in group policies or configuration parameters. Note You cannot use Auto Zone to give automatic access to users and groups in a forest or domain with a one-way trust relationship with another forest or domain. You can use Auto Zone without enabling any group policies or changing any of the default configuration settings. You can also join a domain through the Auto Zone without installing the DirectManage Access Manager. However, you can use group policies or configuration parameters to specify a subset of Active Directory users or groups as valid Auto Zone users. The settings are then enforced on computers in the Auto Zone. Using Auto Zone can make sense in small or larger organizations if you are not migrating existing users and groups or maintaining legacy UNIX profile attributes. However, if you use Auto Zone, you cannot use zone-specific features. For computers in the Auto Zone, you cannot configure rights and roles, assign roles to users and groups, or provide different profile attributes on different computers. For information about joining a domain using Auto Zone, see the man page for adjoin or the Administrator’s Guide for Linux and UNIX. For information about using group policies or configuration parameters, see the Group Policy Guide or Configuration and Tuning Reference Guide. Classic and hierarchical zones If you plan to deploy using zones—which is the most common deployment model—you have to option to create classic or hierarchical zones. Classic zones provide a simple model for organizing computers and backwards compatibility for organizations with older versions of the Centrify agent. Hierarchical zones enable you to establish parent-child zone relationships, allowing profile attributes, rights, and roles to be inherited down the zone hierarchy. Classic zones are peers to each other and do not inherit profile attributes, rights, or roles from each other. One of the first decisions you need to make in planning your zone structure is whether you will use classic zones, hierarchical zones, or some combination of both. Planning and Deployment Guide 108 Classic and hierarchical zones Should you use classic zones? Classic zones provide a simple structure for delineating users and groups based on a criteria you choose, such as by region or department. They are most appropriate if you have a well-defined and well-managed UNIX namespace with very few users who require special handling because of multiple profiles or conflicting profile attributes. Classic zones are simple to manage as long as you only need a few. For example, imagine you have three regional zones with no users in common that are managed independently by their own zone administrators with only one enterprise system administrator who must have a profile in each zone. In that scenario, classic zones provide a simple solution because only one user account, the enterprise system administrator, must have a profile in each zone. However, classic zones are very limited in complex environments where users need profiles in multiple zones or where there are multiple independently-managed UNIX namespaces to migrate to Active Directory. That is because classic zones do not share data across zone boundaries. The data must be created and managed in each zone independently. By contrast, hierarchical zones support inheritance, enabling you to create parent and child zones that share information as needed. Because classic zones do not support inheritance, you cannot use variables to define profile attributes or any other hierarchical zone features. For most organizations, classic zones are primarily used to enable a new zone that works with pre-5.0 versions of the Centrify agent. If you have an older version of Centrify software installed and already have some zones deployed in your environment, you can continue to use those zones as-is. After upgrading, you then have the option to create any new zones as classic zones to operate within the legacy zone environment or as hierarchical zones. Note If you already have zones deployed, you can convert them to hierarchical zones after you deploy the new version of Centrify software, if you choose to do so. However, there’s no requirement for you to convert existing zones to hierarchical zones. When should you use hierarchical zones? For most organizations, Centrify recommends that you use hierarchical zones for all new zones that you create. Hierarchical zones provide greater flexibility to inherit profile information, rights and role definitions, and user and group role assignments. Because hierarchical zones allow you to share or override information at any point in the hierarchy, they also allow you to design a simpler zone structure than classic zones and support an easier deployment model. Typically, a simpler zone structure is easier to manage, but hierarchical zones also allow you to implement a very sophisticated zone structure to address complex access control rules, if you so choose. Chapter 7 • Planning to use Centrify zones 109 How many zones do you need? How many zones do you need? The goal in planning to use zones is to have a fairly small number of zones that organize the computers and users in your organization most effectively. As an example, consider an organization where some UNIX computers are used to host financial applications. Those computers are centrally managed by the IT organization, which follows well-established conventions for issuing user login names, user IDs, and home directories. The same organization has a software development group that includes numerous UNIX workstations that are not centrally managed by the IT organization and computers and accounts are added when needed and managed independently. Because enterprise-wide conventions are not enforced for the UNIX computers in the software development group, it’s possible that the local login names and user IDs may conflict with the names and IDs used on the computers running the financial applications. In addition, users in the software development group may use a different convention for their home directories or prefer different login shells. Without zones, the IT organization would need to eliminate any duplicate user IDs and verify each login name was unique across all of the computers. By placing the computers running the financial applications in one zone and the computers in the development lab in another zone, the IT organization can avoid the overhead of checking and changing existing account information and can set default zone settings, such as different default home directories or login shells, that are most appropriate to the users in each zone. There are many different approaches you can take to defining the scope of a zone, including organizing by platform, department, manager, application, geographical location, or how a computer is used. The factors that are most likely to affect your initial zone design, however, will involve migrating user and group profiles, identifying the appropriate access control policies and role assignments, and delegating administrative tasks to the appropriate users and groups. For many organizations, the most important issue during the initial deployment is a successful migration of existing users. Using hierarchical zones with the ability to override attributes simplifies this task, helping to reduce the total number of zones you need to deploy. A closer look at using zones in a hierarchical model In older versions of Centrify software, zones were always parallel with each other and did not share or inherit data except through manual processes. In Centrify Server Suite 2012 and later, however, you have the option to use hierarchical zones that support the inheritance of user and group data and provide a great deal of flexibility for defining the rights and roles for who can access which computers and what those users can do on the computers to which they have access. Planning and Deployment Guide 110 A closer look at using zones in a hierarchical model How inheritance provides additional benefits As discussed in “Why use zones?” on page 105, the primary benefits to using zones are: Identity management through user and group profile definitions Access and authorization control through rights and role definitions Delegated computer management for zone-based administrative tasks Hierarchical zones provide additional flexibility for each of these benefits. For example, because hierarchical zones allow inheritance, hierarchical zones enable you define partial profiles and use variables that can be substituted at run-time when a user accesses a specific computer in a particular zone. Hierarchical zones also enable you to define access control rules and delegate administrative tasks at any point in the zone hierarchy. This flexibility makes planning for hierarchical zones a key component of a successful deployment. How many levels should you use in the zone hierarchy? There are no predefined limits to the number of zones that can be used in a zone hierarchy or the number of levels deep zones can be nested in the hierarchy you define. For practical purposes, however, Centrify recommends using a hierarchy similar to the following: One or more top-level parent zones that include basic profile information for all users and groups that access the UNIX, Linux, and Mac OS X computers. One to three levels of intermediate child zones based on natural access control or administrative boundaries. At each level in the hierarchy, profile information and access controls are inherited from the zone above and either applied or overridden by the child zone settings. At the lowest level of the hierarchy, you can override profile attributes or role assignments on any individual computers using machine override settings, if needed. In addition, hierarchical zones support computer-based access rules, called computer roles, that enable you to selectively map a set of users with a particular role assignment access to a particular set of computers. Identity management and inherited profile information User and group profiles specify attributes such as the UID, primary group, home directory, and shell that are required for logging on to UNIX computers. You can specify all or part of the profile anywhere in the zone hierarchy, but users must have a complete profile to access computers they have permission to access. If the user or group profile is incomplete, it is invalid and ignored. Chapter 7 • Planning to use Centrify zones 111 A closer look at using zones in a hierarchical model Working with partial profiles in the zone hierarchy The profile information in the zone hierarchy is resolved from top to bottom for each user. For example, assume the user Pat Jackson has the login name patj and UID 12000 defined in the parent zone arcade_global and those profile settings are inherited without change, along with a default shell, home directory and other properties that are defined in the child zone arcade_web_dev. In a second child zone, arcade_aix, the UID for patj is set to 7088 to override the inherited UID. Changes to the profile properties can be made in any zone and inherited down the tree down to overrides set for specific individual computers, if needed. Working with variables in the zone hierarchy Partial profiles enable you define a subset of profile attributes for users and groups that can be completed by lower level zones in the zone hierarchy. You can also define variables for resolving profile attributes. The variables are then substituted at run-time by adclient. For example, adclient can resolve the variable %{home}/%{user} to a platform-specific home directory for each user without having the attribute manually defined. You can set the variables at any level in the zone hierarchy, and they are inherited and resolved, or can be overridden, at a lower level in the tree. You should note that variables can only be used to define profile attributes in hierarchical zones. You cannot import them or use them in classic zones. Planning and Deployment Guide 112 A closer look at using zones in a hierarchical model Complete profiles do not grant access Creating user profiles in a zone does not give users access to any computers in the zone. The zone hierarchy simply creates a set of profiles with the potential to be granted access to computers. In previous versions of Centrify software, enabling a UNIX profile for a user in a zone granted that user access to the computers in that zone by default. With hierarchical zones, the profile information only establishes the required properties for the user’s identity, but does not grant access to any computers in any zones. Access to computers is controlled through the definition of rights and roles. Access controls and the assignment of rights and roles A user must have a complete UNIX profile to log on to any computer in a zone. However, a complete profile alone does not allow a user to access any computers. The user must also have at least one role assignment that grants access somewhere in the zone hierarchy before any type of access is granted. Role assignments can be made anywhere in the zone hierarchy and inherited at a lower level in the tree. Understanding roles and rights Rights represent specific operations users are allowed to perform. A role is a collection of rights that can be defined in a parent or child zone and inherited. For example, a role defined in a parent zone can be used in a child zone, in a computer role, or at the computer level. There are only a few predefined rights, called system rights. The system rights for Linux, UNIX, and Mac OS X are: Password login and non password (SSO) login are allowed: Specifies that a user is allowed to log on interactively using a password or without a password using a single sign-on token. Non password (SSO) login is allowed: Specifies that a user is allowed to log on using a single sign-on token. Account disabled in AD can be used by sudo, cron, etc.: Specifies that an account that is disabled is allowed to access the computer. This right enables service accounts that run without a password to perform operations. Login with non-Restricted Shell: Controls whether a user gets a full shell or is forced into a restricted shell. Users must be assigned at least one role with this right to have access to a standard shell environment. A restricted shell only allows a user to execute explicitly defined commands. The system rights for Windows computers are: Console login is allowed: Specifies that users are allowed to log on locally using their Active Directory account credentials. Chapter 7 • Planning to use Centrify zones 113 A closer look at using zones in a hierarchical model Remote login is allowed: Specifies that users are allowed to log on remotely using their Active Directory account credentials. In addition to the platform-specific system rights, there is a common system right that allows users to bypass auditing or role restrictions to log on when there are problems on a computer. The Rescue rights option allows you to specify the users who can log on if problems with the authorization cache or the auditing service on a computer are preventing all other users from logging on. You grant users permission to access computers by assigning them to a role that includes one or more access rights. By default, zones only contain the following predefined roles to grant basic access rights: UNIX Login role allows users assigned this role to log on and access UNIX computers in the zone. Windows Login role allows users assigned this role to log on and access Windows computers in the zone. There are additional predefined roles that grant specific rights, such as the right to log on if auditing is required but not available. The predefined roles exist in each zone, but their role names are qualified by the zone name so that the same role name in a parent zone and a child zone are considered different roles. For deployment, the predefined roles enable you to migrate existing users without developing custom role definitions. After deployment, you can define additional rights, roles, and role assignments to refine how users and groups access computers in different zones. Working with a candidate set of profiles Ultimately, the purpose of the zone structure is to determine who has access, and what kind of access, to a computer. The candidate set of profiles that have the potential to access a computer is resolved by traversing the zone hierarchy from top to bottom. Because profile data is defined separately from the role assignments that control access, you can define an inclusive set of user profiles in a parent zone to create a candidate set that can then be applied to multiple child zones. In each child zone or at the individual computer level, you can use role assignment to control access for specific users from the inclusive candidate set. Delegation in hierarchical zones Hierarchical zones enable you to create a separation of duties for zone administration without recreating user and group profiles in multiple child zones. You can create full or partial profiles in the parent zone and inherit them into the child zone. Within each child zone, zone administrators can modify the profiles, as needed, and assign roles to control access to the computers they manage. Planning and Deployment Guide 114 A closer look at using zones in a hierarchical model Designing a zone structure for your environment Because the flexibility of hierarchical zones is a key element in designing the zone structure for your deployment, the next sections describe how to set up and use parent and child zones through sample deployment scenarios. The scenarios illustrate a basic deployment model, which will then be used to discuss how to migrate existing users and groups to Active Directory. Your own zone structure and deployment model can be more complex than the one described in this guide. However, the deployment model described in the next sections is intended to ensure that you have a successful initial deployment. Over time, it is likely that you will change and adapt the zone structure to requirements that are specific to your organization. There are also multiple ways to accomplish the tasks described in the next sections of this guide. You can use other strategies and techniques for deployment if appropriate for your organization. Chapter 7 • Planning to use Centrify zones 115 Chapter 8 Preparing the environment for migration of existing users and groups This section describes how to prepare your environment for migration and computer access, including how to create and configure the initial zones. This chapter also describes how to import existing account information into Active Directory, set up provisioning for new users and groups, and configure role-based access controls. The following topics are covered: Collecting and analyzing users and groups Collecting information from other departments in your organization Using Deployment Manager to retrieve users and groups Identifying accounts that should not be migrated Analyze user profiles for conflicting attributes Analyze group profiles for conflicting attributes Create a working set of user and group profiles How migration affects the zone design Creating the first zone Create a top-level parent zone Create one or more child zones Creating computer objects for the target set of computers Collecting and analyzing users and groups Before you create any zones, you should collect and analyze information about existing users and groups in the target set of computers. After you have investigated user and group attributes and identified invalid accounts and conflicting attributes, you can draft a basic zone design that addresses the needs of that user population. The goal of the initial zone design is to provide access to those users who currently have access, so they can transition to Active Directory with no disruption to their work. Later, you can refine access to computers through role assignments, filtering, and other options, if needed. Collecting information from other departments in your organization Before you look at the content of identity stores you want to migrate, you should consider other sources of information that will help you identify a definitive set of legitimate users. 116 Using Deployment Manager to retrieve users and groups For example, it can be useful to contact people in other departments who have reliable knowledge about the current organization or historical knowledge about how the organization has evolved. Individuals with information about a segment of the user population can help you identify accounts that are obsolete or were created for testing, or belong to users who have left the company or moved to another department. As a starting point for collecting information about existing users and groups, consider doing the following: Contact HR to get an up-to-date list of current active-duty employees, contractors, and consultants. You can use this information to compare personnel records to the UNIX accounts to be migrated. After you identify which accounts correspond to people in the organization, you can create a spreadsheet to record the UNIX user names, UIDs, and other useful fields for those accounts. Contact enterprise security administrators or department-level UNIX administrators to determine whether all of the accounts defined for a computer still need access to that computer. For example, you should determine if any users validated as current employees have changed departments or job functions. If a user no longer needs access to some computers, you may not need to add a profile for that user. Identify any conventions used in defining the namespace. For example, is there a standard format for the contents of the GECOS field? How do the conventions used for UNIX, Linux, or Mac OS X accounts compare to the conventions used in Active Directory? For example, is the convention used for the UNIX login name the same as the convention used for the user’s sAMAcountName in Active Directory? Does the GECOS field follow the same conventions as the user’s displayName in Active Directory? Identify which user attribute fields that can be used as primary keys for identifying a unique user. Depending on the conventions you use for creating new accounts, the user name, user identifier (UID), or the GECOS field may be a reliable field for identifying real users and mapping them to Active Directory accounts. If you use a standard provisioning convention across platforms for an attribute such as the GECOS field or user name, the convention makes it much easier to identify unique users and map user profiles to Active Directory accounts. Using Deployment Manager to retrieve users and groups One easy way to collect user and group information from multiple UNIX computers is by connecting to those computers using Deployment Manager. With Deployment Manager, you can connect to the computers you have identified as the target set of computers for migration. If those computers are available on the network, you can then retrieve the individual /etc/passwd and /etc/group file from each local system for analysis. Chapter 8 • Preparing the environment for migration of existing users and groups 117 Using Deployment Manager to retrieve users and groups To collect user and group files from a target set of computers using Deployment Manager: 1 Start Deployment Manager. 2 Select the All Computers node in the navigation pane. 3 Select all of the computers in the target set in the details pane. 4 Right-click, then select Export Users and Groups. 5 Navigate to an appropriate location for saving the resulting user and group files. For example, browse to the C:\Temp folder. 6 Click Make New Directory and type a name for the directory that identifies the target set of computers, then click OK. For example, if you are migrating users from computers in a specific development lab, you might name the directory dev-austin-tx. If the target set of computers were selected because they use the same operating system, you might specify the operating system in the name, for example, redhat-migration1. 7 After the files are exported, a confirmation message is displayed. Click OK. 8 Navigate to the directory you created in Step 6 to see the files for all of the users and groups from all of the computers in the target set. For each computer, you should see a file named hostname_Users and hostname_Groups. Using a script to retrieve user and group profiles for each computer Alternatively, you can write a script to retrieve all of the /etc/passwd and /etc/group files in the target set of computers. For example, to create a hostname.passwd and hostname.group file for each computer in a target set of computers, you might use code similar to the following: for name in `cat hostname.txt`; \ do scp $name:/etc/passwd $name.passwd; \ scp $name:/etc/group $name.group; \ done This sample script includes the computer host name in the file name, so that you can determine which user and group definitions came from which computer. If you use a script to collect user and group information, copy all of the files generated by the script to a common location for analysis. Collecting data from NIS domains If you’re migrating users and groups from a NIS domain, you can use ypcat or niscat to generate a copy of the NIS passwd and group maps once for each NIS domain. For example, run commands similar to the following: ypcat passwd > `domainname`.passwd ypcat group > `domainname`.group Planning and Deployment Guide 118 Identifying accounts that should not be migrated If you are collecting user and group information from NIS maps, copy all of the files generated by these commands to a common location for analysis. Identifying accounts that should not be migrated After you have collected information about the existing users and groups in the target set of computers, examine each of the passwd and group files and NIS domain maps to create a list of users and groups that you do not plan to migrate into Active Directory. For example, in most cases, there’s no compelling business reason to migrate default system accounts, such as nfsnobdy or games, that will not map to Active Directory users. You should also eliminate accounts for people who have left your organization, and accounts that are locked or obviously invalid. Eliminate default system accounts In most cases, you can ignore all UNIX users with a UID less than 99 because those are the default operating system accounts. You may also want to skip migration for some or all UNIX service accounts unless you explicitly want to manage those service accounts, and any privileged commands they run, through Active Directory and zones. You can manage the passwords for UNIX service accounts using Deployment Manager without having those accounts defined in zones or in Active Directory. Therefore, you may want to leave most or all of the service accounts as locally defined accounts. In general, the only reasons to migrate default system or service accounts to Active Directory are: If you want to use Active Directory password policies for the account. If the service account itself owns one or more privileged commands that you want to manage through Centrify role definitions rather than locally in the sudoers file. Typically, only service accounts that own special permissions, such the oracle user account, are migrated to Active Directory. Remove other invalid accounts You should also skip migration for users who have left the organization and profiles that contain invalid data. Scan the data set for user accounts and groups that are locked or indicate they were created for testing. You should also check for profiles that contain obvious errors or legacy information no longer used. In some cases, you may need to contact workstation or application owners directly to determine whether a profile should be skipped for migration. For example, assume the / etc/group file contains an entry for clowns with krusty, bozo, and tadams as members and there are valid user profiles for those three users. You may suspect the clowns group was created for some local testing, and therefore, not a candidate for migration. However, Chapter 8 • Preparing the environment for migration of existing users and groups 119 Analyze user profiles for conflicting attributes there’s no definitive indication that the clowns group should be skipped without more information. Create a list of the users and groups to ignore Add all of the accounts that should not be migrated to a text file. For example, create a text file named user.ignore and include all of the user accounts you don’t want to migrate into Active Directory. For default system and service accounts that have known UIDs, you can create the text file programmatically using code similar to the following: cat *.passwd | \egrep "x?:[0-9]:[0-9].|x?:[0-9][0-9]:[0-9].|x?:60[0-9][09][0-9]:[0-9]|x?:65[0-9][0-9][0-9]:[0-9]" | \ cut -d ":" -f 1 | \ sort | \ uniq | \ sed 's/^/\^/' > user.ignore Other accounts you have identified as invalid can be added manually or using code if they share some common attribute, such as LOCKED in the password field. Analyze user profiles for conflicting attributes After the initial analysis to remove profiles that should not be migrated, you have a candidate data set of users and groups to import. The next step is to analyze the attributes in user profiles to identify any potential problems that you will need to address when you move the profiles into zones. Centrify Professional Services offers scripts that assist in this process. If you are analyzing the files manually or writing your own scripts, here are the common issues you need to check for: Determine whether any user name has more than one UID in the target set of computers. The UID is the primary way of determining file ownership and file permissions. On a single UNIX system, a user can only have one UID. However, across all of the computers in the target set, the same user name might have more than one UID. Determine whether any UIDs are associated with more than one user name. Determine whether any users have other profile conflicts, such as more than one primary GID, home directory, or shell on the computers in the target set. In doing your preliminary analysis, keep in mind that you need to know which user profiles are associated with which people in your organization. For example, do the user names ldavis and davle refer to the same person (Len Davis) or to different people (Len Davis and Leslie Davidson). This analysis of existing user profiles will help you identify the requirements of your initial zone design. The zone design allows you to use conflicting attributes as-is, without modifying any of the legacy data. You need to be aware of where there are conflicts so you can address them, but you do not need to change values for any attributes. Planning and Deployment Guide 120 Analyze group profiles for conflicting attributes Analyze group profiles for conflicting attributes You need to perform a similar analysis across the groups in the target set of computers. Centrify Professional Services offers scripts that assist in this process. If you are analyzing the files manually or writing your own scripts, here are the common issues you need to check for: Determine whether any group name has more than one GID in the target set of computers. Like the UID, the GID affects file ownership and file permissions. On a single UNIX computer, a group name can only have one GID. However, across all of the computers in the target set, the same group name might have more than one GID. Determine whether any GIDs are associated with more than one group name. Determine whether any group has a different set of members on any computers in the target set. Group membership is particularly important for zone design. The members of a group must be consistent across all of the computers in a zone. As with the user analysis, this analysis of existing group profiles will help you identify the requirements of your initial zone design. The zone design allows you to use conflicting attributes as-is, without modifying any of the legacy data. You need to be aware of where there are conflicts so you can address them, but you do not need to change values for any attributes. Create a working set of user and group profiles After you have identified profiles that should not be migrated and noted any conflicting attributes you need to address, you have a known set of user and group profiles that you plan to migrate into Active Directory. The next step is to remove the users who should be ignored from list of users to import, and to remove the groups that should be ignored from the list of groups to import. You can do this manually or write a script that removes the profiles defined in the user.ignore and group.ignore files and outputs the results to a new file. For example, you might use code similar to the following to remove ignored users and generate a working set of user profiles: mkdir output; \ for name in `cat hostname.txt`; \ do egrep -v -f user.ignore $name.passwd > \output/$name.passwd; \ done How migration affects the zone design As discussed in “Why use zones?” on page 105, identity management is one of the primary benefits of using zones. Identity management is important because most organizations have an existing user population where users can have multiple UIDs or other attributes, such as different default shells, on different computers and groups with the same name can have different members. Each user has one Active Directory user object but may have multiple Chapter 8 • Preparing the environment for migration of existing users and groups 121 Creating the first zone UNIX profiles, some with attributes in common and some with different settings. Zones allow you to migrate the profile information as it is defined, setting overrides where necessary, so that you can manage and report on the accounts without rationalizing the user namespace. For all of the computers in a zone, a user or group has one profile definition, but the user or group could have different profile attributes on the computers in a different zone. Hierarchical zones make the zone design even more flexible. Hierarchical zones allow you to define one or more profile attributes in a parent zone and use those profile attributes in all child zones. In practice, this enables you to define a dominant set of attributes in a parent zone, and inherit the common attributes in one or more child zones. You can also override any attribute at any point in the zone hierarchy down to an individual computer. For example, if a UNIX administrator has a consistent profile across all of the UNIX computers, but a customized home directory on two Mac OS X computers, you could define the default profile for the user in a parent zone, then create a child zone for the Mac OS X computers and inherit all of the profile attributes except the home directory setting. In planning the migration, you identify the attributes that are the same across the target set of computers and where there are differences. If you use hierarchical zones, the primary task is identify one or more potential parent zones. For example, if you are migrating two NIS domains, you might create two parent zones because the UID space is unique in each domain but there would be conflicting attributes if the domains were combined into a single parent zone. The computers in each of the parent zones would inherit the UID and other profile attributes from each distinct NIS domain. After you have identified one or more parent zones, you can plan how you will use child zones and overrides to manage profile attributes, implement access controls, and delegate administrative duties. Creating the first zone Centrify recommends that you plan to use hierarchical zones and create at least one top-level parent zone. A single top-level zone for your organization is also useful for long-term management of UNIX profiles. You can have more than one top-level parent zone. For example, if your organization has subsidiaries that are run independently or distinct geographical locations managed by different teams, you may want to create separate parent zones for those lines of business or locations. Having a single top-level parent zone enables you to create an administrative group of super-users who can log on to every UNIX computer in your organization. It also allows to define some common rights and roles that can be inherited by child zones and the computers in those zones. Having a global or master zone for the entire organization also simplifies setting up provisioning for new accounts. However, there’s no restriction on the number of parent or child zones you create. If you have a distributed environment and Planning and Deployment Guide 122 Create a top-level parent zone delegate administrative authority to separate teams, you can create as many parent zones as you find useful. This guide describes how to set up the migration environment using one top-level parent zone. If you create more than one parent zone, you may need to repeat steps or extrapolate additional steps from the information presented here. Create a top-level parent zone Before you migrate users and groups or add computers to the domain, you must have at least one zone. Centrify recommends that you create one top-level parent for your organization, which is similar to having a single forest root domain. To create the top-level parent zone: 1 Log on to the Windows computer where DirectManage Access is installed and open Access Manager. If you are not currently connected to the appropriate forest, specify the domain controller to which you want to connect. 2 In the console tree, select Zones and right-click, then click Create New Zone. 3 Type the zone name and, optionally, a longer description of the zone. In most cases, you should use the default parent container and container type that you created when you configured the Active Directory forest, and the default zone type, which creates the new zone as a hierarchical zone, then click Next. The only reasons for changing the default settings would be if you want to: Create a zone in a new location to separate administrative activity for different groups of administrators. Create zones as organizational units because you want to assign group policy objects to zones. Create a classic zone for backwards compatibility or are using the Microsoft Services for UNIX (SFU) schema. For additional details about any of the zone fields, press F1 to view context-sensitive help. 4 Review the information about the zone you are creating, then click Finish. Add provisioning groups to the parent zone The next step in configuring the top-level parent zone is to create two Active Directory groups that will enable automated provisioning and de-provisioning of users and groups in the top-level parent zone. By creating these provisioning groups in the parent zone, you can Chapter 8 • Preparing the environment for migration of existing users and groups 123 Create a top-level parent zone integrate the provisioning of UNIX users and groups with your existing processes for provisioning Active Directory users. The provisioning groups are not required for migration, but a recommended configuration for the top-level parent zone you are creating as the first zone in the environment. Centrify recommends you follow the naming conventions suggested for these groups. If you use a different naming convention, you should be sure it is well documented in your internal process documentation. To add the provisioning groups for user and group profiles to the parent zone: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. 3 Select Provisioning Groups, right-click, then select New > Group. 4 Type the group name using the format ZoneName_Zone_Groups. For example, if the zone name is arcadeGlobal, type arcadeGlobal_Zone_Groups, then click OK. The Zone Provisioning Agent will use this group when processing the business rules for adding or removing group profiles in the parent zone. 5 Select Provisioning Groups, right-click, then select New > Group. 6 Type the group name using the format ZoneName_Zone_Users. For example, if the zone name is arcadeGlobal, type arcadeGlobal_Zone_Users, then click OK. The Zone Provisioning Agent will use this group when processing the business rules for adding or removing user profiles in the parent zone. To prevent problems in UIDs and GIDs for existing users and groups, you should import existing user and group profiles before defining the business rules for automated provisioning of new accounts. After you complete the migration of the existing user population, you will define the business rules for the ZoneName_Zone_Groups and ZoneName_Zone_Users groups you just created. Create groups for the default roles in the parent zone The next step in configuring the top-level parent zone is to create two Active Directory groups for the default listed and UNIX Login roles that are predefined in hierarchical zones. If you have a single top-level parent zone, users with a listed role can be recognized as having a valid profile on every UNIX computer in the organization. However, users in the listed role are not allowed to log on to any of those computers. If you have a single top-level parent zone, users with a UNIX every UNIX computer in the organization. Planning and Deployment Guide Login role can log on to 124 Create a top-level parent zone For the top-level parent zone, the UNIX Login role is intended for enterprise-level systems administrators who need to be able to log on to any UNIX computer in the organization. Because these are powerful roles in the parent zone, only a limited number of users would ever be assigned to these roles. However, the listed and UNIX Login roles are key components of migration when you create one or more child zones. If no users in the organization will be assigned these roles in the parent zone, you can skip the creation of the Active Directory groups for roles in the parent zone. To create the groups for listed and UNIX Login roles in the parent zone: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. 3 Select the User Roles organizational unit, right-click, then select New > Group. 4 Type the group name using the format ZoneName_Role_RoleName. For example, if the zone name is arcadeGlobal, type arcadeGlobal_Role_Listed, then click OK. 5 Select the User Roles organizational unit, right-click, then select New > Group. 6 Type the group name using the format ZoneName_Role_RoleName. For example, if the zone name is arcadeGlobal, type arcadeGlobal_Role_Login, then click OK. Delegate administrative tasks on the parent zone The next step in configuring the top-level parent zone is to delegate administrative authority to the Zone Administrators group and to delegate specific permissions to the service account for the Zone Provisioning Agent to enable automated provisioning of user and group profiles in the parent zone. To delegate administrative tasks on the top-level parent zone: 1 Start DirectManage Access Manager. 2 In the console tree, expand the Zones node. 3 Select the top-level parent zone, right-click, then click Delegate Zone Control. 4 Click Add. 5 Change the Find list from User to Group, type z, then click Find Now. 6 Select Zone Administrators in the results, then click OK. 7 Click Next. 8 Select All to enable members of the Zone Administrators group to perform all administrative tasks on the top-level parent zone, then click Next. 9 Review your selections, then click Finish. Chapter 8 • Preparing the environment for migration of existing users and groups 125 Create a top-level parent zone 10 Right-click, then click Delegate Zone Control. 11 Click Add. 12 Type all or part of the service account name for the Zone Provisioning Agent that you created in “Create a service account for the Zone Provisioning Agent” on page 67, click Find Now, then select the service account in the results and click OK. 13 Click Next. 14 Select the following delegation rights for the Zone Provisioning Agent service account, then click Next: Change zone properties Add users Add groups Remove users Remove groups 15 Review your selections, then click Finish to save the changes and close the dialog. Link a role group to a role assignment in the parent zone The next step in configuring the top-level parent zone is to link the Active Directory role groups created in “Create groups for the default roles in the parent zone” on page 124 with the listed and UNIX Login role definitions that are predefined in the parent zone. You create this link between an Active Directory group name and the combination of rights associated with a role name by assigning the Active Directory group to the role. 1 Start DirectManage Access Manager. 2 In the console tree, expand Zones, the top-level parent zone, and Authorization nodes. 3 Select Role Assignments, right-click, then click Add Group. 4 Find the ZoneName_Role_Listed Active Directory group, then click OK. 5 Click Browse. 6 Select the listed role from the list of available roles, then click OK. 7 Check that the Start immediately and Never expire options are selected and appropriate or deselect those options and set start and end times, then click OK. 8 Repeat Step 3 through Step 7 for the ZoneName_Role_Login Active Directory group and the UNIX Planning and Deployment Guide Login role. 126 Create one or more child zones Create one or more child zones After you have created a parent zone and prepared it with provisioning and role groups, you can create one or more child zones. You can create the child zones based on any logical model you choose. This is where the analysis of common and conflicting attributes and some creativity come into play. Logical models for defining zones Because the zone design uses hierarchical zones, you can override attributes at any zone or computer level to deal with conflicts in legacy profile data. With this flexibility, you can experiment with different possible designs, for example, based on delegated administrative authority or physical location. Some common models for grouping a set of computers, users, groups, roles, and rights in the same zone include: By shared identity store. For example, existing identity stores, such as NIS domains or a centralized user and group database, often provide a natural boundary for zones. This strategy is especially effective if each identity store has a consistent namespace, without profile conflicts. It is less effective if the computers that share a common administrative group use local /etc/passwd and /etc/group file to store account information. By application or function. For example, you might want to groups all of your database servers or web farm servers into their own zones. As part of this design, you might need to evaluate whether you are combining development computers with production servers and what role assignments you’ll need to control what users can do on each type of computer. By geographical region or line of business. For example, all of the UNIX computers that support a business unit could be logically grouped together. As part of this design, you might evaluate whether different business units should be responsible for provisioning users or assigning roles within their own business unit. By host name. If you already have a meaningful host name convention that identifies machine owners or primary function, you may want to create zones based on that naming convention. By platform and operating system. You can use this strategy, for example, to create separate zones for Red Hat Linux workstations and Sun Solaris UNIX workstations. By department or user community. You can use this strategy, for example, to create separate zones for the computers that host financial applications and computers used by software developers. You are not required to create child zones. You could control access to the parent zone through role assignments. For most organizations, however, one or more child zones makes it easier to assign roles and manage group membership. Chapter 8 • Preparing the environment for migration of existing users and groups 127 Create one or more child zones Depending on your target set of computers, you may decide to start with one or two child zones or skip the creation of a child zone. Create a child zone under the parent zone Creating a child zone is similar to creating a parent zone. You select the parent in the left pane, then create and configure the child zone to prepare an environment into which you will migrate existing users and groups. To create a child zone under the parent zone: 1 Start DirectManage Access Manager. 2 In the console tree, expand the Zones node. 3 Select the top-level parent zone, right-click, then click Create Child Zone. 4 Type a name and description for the child zone, then click Next. For example, if you are organizing by functional group, this zone might be finance or engineering. If you are organizing by data center location, the child zone might be sanfrancisco or seattle. 5 Click Finish to complete the zone creation. The new zone is listed under the Child Zones node in the left pane. Create role groups for child zones The next step in configuring the child zone is to create two Active Directory groups for the default listed and UNIX Login roles that apply to this zone. In the child zone, users with a listed role can be recognized as having a valid profile but only on computers that are joined to the child zone. Users in the listed role for the child zone cannot log on to any of the computers joined to the child zone. In the child zone, users with a UNIX Login role are allowed to log on to every UNIX computer joined to the child zone if they have a UNIX profile for the zone. For the child zone, the UNIX Login role is intended zone-level administrators and users who were previously able to log on to the UNIX computers joined to the child zone. The listed and UNIX Login roles are key components of migration when you create one or more child zones. To create the role groups for listed and UNIX Login roles in the parent zone: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. Planning and Deployment Guide 128 Create one or more child zones 3 Select User Roles, right-click, then select New > Group. 4 Type the group name using the format ChildZoneName_Role_RoleName. For example, if the child zone name is sanfrancisco, type sanfrancisco_Role_Listed, then click OK. 5 Select User Roles, right-click, then select New > Group. 6 Type the group name using the format ChildZoneName_Role_RoleName. For example, if the zone name is sanfrancisco, type sanfrancisco_Role_Login, then click OK. Delegate administrative tasks on the child zone The next step in configuring the child zone is to delegate administrative authority to the Zone Administrators group. The steps are the same for the child zone as the parent zone, except that you expand the Child Zones node and select the name of the child zone before selecting the Delegate Zone Control command. You should still assign the Zone Administrators group All permissions. You also have the option of assigning the permissions to join or leave to the Join Operators Active Directory group. If you pre-create computer accounts and allow the computer to join itself to the Active Directory domain, you can skip this step. If you don’t want to pre-create the computer account and allow the self-service join, you must give members of the Join Operators group the following administrative tasks: Join Computers to the Zone Remove Computers from the Zone Modify Computer Profiles Link role groups to role assignments in the child zone The next step in configuring the child zone is to link the Active Directory role groups created in “Create role groups for child zones” on page 128 with the listed and UNIX Login role definitions that are predefined in the child zone. You create this link between an Active Directory group name and the combination of rights associated with a role name by assigning the Active Directory group to the role. The steps are the same for the child zone as the parent zone, except that you expand the Child Zones node and select the name of the child zone before selecting the Authorization node. When you search for the Active Directory group to assign, you will select the for example sanfrancisco_Role_Listed, for the listed role, and ChildZoneName_Role_Login, for example sanfrancisco_Role_Login, for the UNIX Login role. ChildZoneName_Role_Listed, Users who are added to the ChildZoneName_Role_Login group will be able to log on to computers that are joined to the child zone or any of its own children, but will not be able to log on to computers in other child zones. Chapter 8 • Preparing the environment for migration of existing users and groups 129 Creating computer objects for the target set of computers Creating computer objects for the target set of computers When you manage UNIX computers with Centrify software, you add computer objects to Active Directory for those computers. These computer objects can be created automatically when a computer joins the domain, or created in Active Directory before the computer joins the domain. In most cases, Centrify recommends that you create the computer account objects before joining, if possible. For deployment and migration, creating the computer objects before joining provides the following key advantages: You can define computer-level overrides before computers are added to the zone. This allows you to resolve issues with divergent UNIX profiles without having to change file permissions at the file system level. You can check who will have access to which UNIX computers before those computers join the Active Directory domain. Pre-creating the computer objects enables you to check that you have user profiles and role assignments correctly defined before you join the UNIX computers to zones. Verifying this information before the join operation helps to ensure a smooth migration without disrupting users’ access to files or applications. Prepare a computer object before joining In most cases, you should pre-create the computer object for every UNIX computer in every zone. For individual computers, you can use the Prepare Computer wizard to guide you through the process. However, you will probably want to create a Windows or UNIX script for performing the operation repeatedly. For example, you can use adedit or the Windows API to create a script. To prepare a computer account in Active Directory using Prepare Computer: 1 Start DirectManage Access Manager. 2 In the console tree, expand the Child Zones node, then expand the child zone for this computer to join. 3 Select the Computers node, right-click, then click Prepare Computer. 4 Accept the default preparation options, then click Next. 5 Accept the default to Create a new computer object, then click Next. 6 Type the name of the computer object to create and modify the DNS host name of the computer object, if necessary. The computer name is the name of the computer principal in Active Directory. The DNS name is how the UNIX computer is currently registered in DNS. If you have a disjointed Planning and Deployment Guide 130 Creating computer objects for the target set of computers DNS namespace, you should be sure the DNS name is the name used in the computer’s DNS entry. 7 Click Change and navigate to the organizational unit for storing computer principals. For example, if you created the organizational unit structure described in “Creating recommended organizational units” on page 50, select UNIX Servers and Workstations and click OK, then click Next. 8 Select an option for joining the computer to the domain, then click Next. If you want to require users to interactively join the computer to Active Directory, click Browse to select the Join Operators group. If you want to allow the computer to join itself to the zone, select Allow the computer to join itself to the zone. This option automatically associates the computer with the correct zone, so there’s less chance of a human error. 9 Click Browse to select the Zone Administrators group, then click Next. With this setting, users in the Zone Administrators can override any inherited attributes of a UNIX user or a UNIX group profile on the computer. 10 Review your selections, then click Next to create the computer account. 11 Click Finish to complete the process. You have now finished preparing the environment for migration and are ready to begin importing groups and users and assigning them appropriate roles. Chapter 8 • Preparing the environment for migration of existing users and groups 131 Chapter 9 Migrating an existing user population to hierarchical zones Now that you understand how zones are used and have prepared an environment for an initial migration, you are ready to import the existing users and groups that you have identified as candidates for being migrated to Active Directory. This section uses a sample data set to illustrate how to migrate an existing user population into hierarchical zones and how to assign the appropriate roles to convert from a legacy authentication model to Active Directory and Centrify Server Suite. The following topics are covered: Importing group profiles Importing user profiles Assigning roles to existing users and groups Verifying effective users on each zone Adding existing users and groups to Provisioning Groups Importing group profiles After you have created one or more zones and separated the users and groups to ignore from the users and groups that you think should be migrated to Active Directory, you must decide which groups apply to which zones. For example, if you have some groups with the same group profile and group membership in all zones, you would import those groups into the top-level parent zone so that they also exist, with the same definition, in all child zones. If a group is only applicable for computers in a child zone, you can import the group profiles directly into that zone. You can also override group profile attributes on specific computers, if needed. Once you have made these decisions, importing the groups is a simple process using either the Import from UNIX wizard or ADedit scripts with two important considerations: Group names must be unique in Active Directory. If you create a group with a common name, such as admins, you cannot create another group with the same name. Having the same UNIX group name on computers in different zones can create group collisions and inadvertent privilege escalation or file ownership conflicts. To prevent group name collisions, Centrify recommends that you include the zone name in the Active Directory group name. You may also want to add a suffix that identifies the group as an UNIX security group. In most cases, you create the Active Directory group object for the UNIX group in the UNIX Groups organizational unit if you created the 132 Importing group profiles organizational unit structure described in “Creating recommended organizational units” on page 50. You should import group profiles and create the corresponding Active Directory groups for those groups before you import users. If you import group profiles first, you can resolve secondary group membership for users immediately after you import user profiles. Import UNIX groups that apply to all computers into the parent zone If your organization has a default UNIX administrators group or security group that you want to be available on all UNIX computers, that group is a good candidate for importing into the parent zone. Other groups that might be candidates for the parent zone are special purpose UNIX groups that own sudoers permissions that apply to all UNIX computers or an auditing group that requires access to all computers. If you have identified any common groups, use the Import from UNIX wizard or a script to import the UNIX groups that should be available for all computers into the top-level parent zone. To import UNIX groups using the Import from UNIX wizard: 1 Start DirectManage Access Manager. 2 In the console tree, expand Zones and the top-level parent zone. 3 Select UNIX Data, right-click, then click Import from UNIX. 4 Click UNIX configuration files, then click Browse to locate and select the group file to import, then click Next. 5 Select the option to automatically shorten the UNIX name, if desired, then click Next. 6 Leave Store in Active Directory selected and click Next. 7 Select Check data conflicts while importing, then click Finish. This step places the profiles under Groups as Pending Import. 8 Select one or more group names that are Pending Import, right-click, then select Create new AD groups. 9 Click Browse, navigate to the UNIX Groups organizational unit and click OK, then click Next. 10 Click Add a prefix to group name, type the parent zone name and an underscore (_), select the group scope as Global, then click Next. For example, if the parent zone name is arcadeGlobal, use the prefix arcadeGlobal_. Optionally, click Add a suffix to group name and type a suffix that identifies the group as a UNIX security group, for example, _unix. 11 Review the information displayed, then click Finish. Chapter 9 • Migrating an existing user population to hierarchical zones 133 Importing group profiles For more information about importing groups, see the Administrator’s Guide for Linux and UNIX. Import UNIX groups that apply only to a specific zone into a child zone From your initial analysis and zone design, you should also have a reasonable plan for groups that apply to specific child zones. Groups imported into a child zone are visible to all the UNIX computers in that zone, but not in other zones. For example, assume you have identified an application-specific group, ora_app01, that allows users to use a database, and the database application exists three computers. In your zone design, you decide those three computers should be a single child zone. In that case, you import the ora_app01 group profile into the child zone group because the database application group is only relevant to the UNIX computers in the child zone. The steps for importing into a child zone are the same as for the parent zone, except that you select the UNIX Data under the child zone name in the console tree and specify the child zone name as the prefix for the Active Directory group name. Import a group profile or override attributes on specific computers In some cases, you may have a UNIX group that only exists on one computer in a zone or exists on more than one computer but has different attributes on different computers. You can use computer-level overrides to handle these cases. Computer-level overrides enable Zone Administrators to create and manage group profile attributes manually for individual computers. To create a group profile for a specific computer: 1 Use Active Directory Users and Computers to create an Active Directory group in the UNIX Groups organizational unit. If the group only applies to a specific computer, you may want to use the computer name as the prefix. 2 Start DirectManage Access Manager. 3 Expand the console tree to display the individual computer object under the zone the computer will join. 4 Expand UNIX Data, select Groups and right-click, then click Create UNIX Group. 5 Click the attributes to define, type the appropriate values, then click OK. Click GID to manually specify a GID for the group profile on the selected computer. Click UNIX group name to manually specify a group name for the profile on the selected computer. Avoiding group collisions when using computer-level overrides If you create group profile overrides on individual computers, you should make sure that the UNIX group name and GID are not being used by any other groups in the parent or Planning and Deployment Guide 134 Importing user profiles child zone. If the group profile defined for the computer is the same as a group profile defined for a group in the parent or child zone, users who should only be able to access files on the local computer may be able to access files owned by the group defined for the parent or child zone. This can be a difficult problem to identify. For example, assume you have an Active Directory group named contract_admins, but you have used the UNIX group name admins and the same GID as a group in the parent zone. Any user who is a member of the contract_admins group in Active Directory is going to have the same GID as the parent zone’s admins group. If that happens, members of the contract_admins group will have access to the same files as the admins group in the parent zone. The only way to identify when this problem occurs is by running the following command for a user in the contract_admins group: id -a Importing user profiles You can import user profiles into the parent zone or into child zones. If you import user profiles into the parent zone, all existing users will be included in the candidate set of users who have the potential to log on to all of the UNIX computers in the organization. However, they are not granted any access by default. Instead, the management of identity information, such as the user name, UID, and primary group, is separate from privilege management. Users cannot access any UNIX computers until they are assigned a valid role with the specific permissions they need to be recognized, allowed to log on, or run specific commands. Although you can import users into the parent zone without granting them access rights, you may prefer to import them into one or more child zones. By importing users into specific child zones, you can limit the scope of their potential access. In general, this option is applicable for the majority of your end-users and can apply to other users, such as database administrators, project managers, and contractors who won’t ever need access to all the UNIX computers in the organization. At this stage you should decide whether to give users the potential to access all computers in the organization, or only the computers in one or more specific child zones. After you import the user profiles, you will use the default listed and UNIX Login roles or custom roles to control access to the UNIX computers. The steps for importing user profiles into a parent or child zone are essentially the same as importing groups. You can use the Import from UNIX wizard or ADedit scripts to import the profiles into one or more zones. The profile information for any user can be different in each zone. If the profile information is divergent on any computer within a zone, you can set computer-specific overrides for any or all attributes. If you are importing users from a file, you can write a script that modifies the GECOS field to use the same format used in the Active Directory displayName attribute before importing so that users are automatically mapped to their corresponding Active Directory accounts. For example, if your convention for the GECOS field is first_name last_name Tip Chapter 9 • Migrating an existing user population to hierarchical zones 135 Assigning roles to existing users and groups (Jae Wilson) but the convention used in Active Directory is last_name, first_name (Wilson, Jae), you must manually map the UNIX user account to the Active Directory account. If you modify the format of the GECOS field before importing, the Import from UNIX wizard can automatically suggest a candidate for mapping the UNIX user to an Active Directory user, if an account exists. After you import users, their profiles are placed under Users as Pending Import. If the user has an existing Active Directory account, you can select the user name, right-click, then select Extend existing AD user. If an Active Directory account does not exist, you can select the user name, right-click, then select Create new AD users. You can then use Check Status to resolve group membership for Pending Groups. This command adds the imported users to the appropriate Active Directory groups that have UNIX profiles in the zone to complete the first phase of the migration to Active Directory. For more information about importing users and resolving group membership, see the Administrator’s Guide for Linux and UNIX. How group membership works within zones When a UNIX group profile is imported into a zone, its group name and GID are recognized by all computers joined to that zone. However, the group membership might vary by computer. For a user to be a member of the UNIX group, the user must: Be a member of the Active Directory group. Have a complete UNIX user profile defined somewhere in the zone hierarchy (in the parent zone, a child zone, or with computer-level overrides). Be assigned the listed role or the UNIX Login role somewhere in the zone hierarchy (in the parent zone, a child zone, or with computer-level overrides). For example, assume the users Alison and Clyde are assigned the UNIX Login role for the Engineering zone. As discussed in “Create role groups for child zones” on page 128, that means they are also listed as members of the Engineering_Role_Login role group in Active Directory. Clyde is also a member of the denali project group in the Engineering zone and has a profile defined in the parent zone. Alison’s profile is defined in the Engineering zone. If the denali project group (Engineering_Denali in Active Directory) is added to the Engineering zone, both Alison and Clyde can log on to computers in the Engineering zone, but only Clyde will be a member of the denali UNIX group in the Engineering zone. Assigning roles to existing users and groups You have now imported the existing user and group profiles for a target set of computers into Active Directory. This is one critical component of migration because users must have a valid UNIX profile, that is, a unique user name, UID, primary GID, home directory and shell, in a zone for them to be recognized as valid users. However, Centrify separates UNIX Planning and Deployment Guide 136 Assigning roles to existing users and groups profile management from UNIX privilege management. Users cannot log on to UNIX computers until they are assigned a role that allows them to log on to those computers. As discussed in “Access controls and the assignment of rights and roles” on page 113, a role is a collection of rights and there are two default roles: the listed role and the UNIX Login role. As part of deploying Centrify software with the least disruption to your environment, your existing users must be able to log on to the UNIX computers they currently use. That is the primary purpose of the UNIX Login role: to allow you to quickly give log on access to a set of users in one or more zones. The UNIX Login role in the parent zone is intended for enterprise administrators who need log on access to all computers. The UNIX Login role in the finance zone would be for those users who currently have interactive access to the limited number of computers in that zone and would expect to have that access after migration. The listed role is intended for users who need a valid profile defined but do not need interactive log on access to the computers in a zone. For example, you assign the listed role to remote NFS users so that they have access to their files without the ability to log on and open a shell. You can also use the listed role to give users access to applications, such as ClearCase or Samba, that require a UNIX profile without the ability to log on locally or remotely. The listed role in the software-dev zone would be for those ClearCase users who need to be recognized on all computers in the zone so they can check files in and out. The next step in the migration is to identify which users should be assigned to each role in each zone you have created. Using Active Directory groups for roles For most organizations, the most efficient way to manage role assignment is by adding users to Active Directory groups, then managing those groups. Therefore, for management purposes, a Centrify access role should always be linked to an Active Directory security group. The Active Directory groups that identify the users in specific Centrify user roles are stored in the User Roles organizational unit. All of the users in a specific role group will share a common set of rights under UNIX. You can then use machine-level overrides for handling edge cases for individual computers. Adding users to role groups There are many different ways you can add UNIX user profiles to an Active Directory group. For example, you can manually select a UNIX profile in a zone, right-click, then select Add to a group or select groups under the Role Assignments node for the zone, and modify the group membership. In most organizations, however, you can leverage your existing provisioning process. If your current provisioning process involves managing a group in Active Directory, whether it is through automated scripts or human processes, you can use the same process for provisioning UNIX users. Chapter 9 • Migrating an existing user population to hierarchical zones 137 Assigning roles to existing users and groups Migrating existing users into the UNIX Login role in the parent zone In “Create groups for the default roles in the parent zone” on page 124, you created Active Directory security groups for UNIX Login and listed roles in the parent zone. If you want to give all users the potential to log in to all UNIX systems, you can make them members of the parentZone_Role_Login group. Users who are members of this group and have a complete UNIX profile in the parent zone can log on to all UNIX computers that are joined to the parent zone and all UNIX computers joined to the child zones of the parent zone. However, if you add users to the parentZone_Role_Login group in Active Directory, but do not define a UNIX user profile in the parent zone, those users will only be able to log on to the UNIX computers in the child zones where they have a UNIX user profile defined or the individual computers where you define machine-level overrides to give them a UNIX profile. The default UNIX Login role associated with the parentZone_Role_Login group does not grant any additional privileges. It simply allows users to log on to UNIX computers. Therefore, one strategy for migrating users is to add them all to parent zone’s Login role group. You can then control access based on where the user’s UNIX profile is defined and control what the user can do using additional role assignments. For example, you may create custom roles to grant expanded UNIX privileges. Migrating existing users into the UNIX Login role in child zones If you define user profiles for most of your users in the parent zone, you should not make them members the parentZone_Role_Login group. Instead, you can add users to the appropriate childZone_Role_Login groups. All of your existing UNIX users who can currently log on interactively to existing UNIX systems should be added to one or more childZone_Role_Login groups. For example, users who currently have access to all of the computers in the Engineering zone should be added to the Engineering_Role_Login Active Directory group. If those users also have a UNIX profile in the parent zone or the Engineering zone, they will be able to log on to all of the computers in the Engineering zone. If a user only needs access to a specific computer in the zone, you can use a machine-level override to give the user access to that specific computer. You can use the Access Manager console, Active Directory Users and Computers, ADEdit or custom scripts to add UNIX user profiles to the appropriate childZone_Role_Login groups. If possible, you should integrate this part of the migration with your existing provisioning process to ensure that future requests for UNIX role assignments use the processes that line of business personnel already understand. Migrating existing users into the listed role in child zones After you have assigned users who must be able to log on to the UNIX Login role, you should identify users who should be assigned the listed role to limit the number of users allowed to log on. The listed role is intended for existing UNIX users who have a UNIX Planning and Deployment Guide 138 Assigning roles to existing users and groups user profile in one or more zones that you want to allow to be listed in getent output without the ability to log on to UNIX computers in those zones. The listed role is most commonly used for users who access UNIX applications, such as ClearCase, or Samba, or an NFS-mounted file system, that require a UNIX profile. In practical terms, however, this role also allows you to migrate users you aren’t sure have been authorized for access. With this role, the user profile is recognized but the user cannot log on locally or remotely. You can use the Access Manager console, Active Directory Users and Computers, ADEdit or custom scripts to add the UNIX user profiles to the appropriate childZone_Role_Listed groups. If possible, you should integrate this part of the migration with your existing provisioning process to ensure that future requests for UNIX role assignments use the processes that line of business personnel already understand. Keep in mind that the childZone_Role_Listed group affects all the UNIX computers joined to the specified child zone. Before you move a user to the childZone_Role_Listed group, you should check whether there are any computers in the zone that the user must be able to access to prevent accidentally locking the user out. You can use a machine-level override to grant the UNIX Login role on a specific computer, if needed. Using a computer-level override for the UNIX Login role You can also create computer-level overrides for the UNIX Login or listed role, if needed. This is not typically part of the migration process. However, if your initial analysis identified a zone where overrides would be useful, you can include overrides in your migration plan. For example, assume you have a zone where most of the user profiles are common across a set of computers. If you import the UNIX profiles for that user population, you see that two users would have access to a UNIX computer where they previously did not have access. To preserve the existing access while migrating from the legacy environment, you can define the UNIX profile in the zone but control access for those two users with a computer-level override. Managing role assignment without role groups You are not required to use Active Directory security groups to manage role assignments. You can manually add users and groups to roles within any zone. Manually adding a user or group to a role without using Active Directory groups makes integration with provisioning systems more difficult, however. Most identity management and provisioning systems are designed to work with Active Directory groups inherently. Therefore, associating Active Directory groups with Centrify roles typically provides easier integration with existing provisioning processes. If you decide to manually manage role assignments, you can use the Centrify Access Module for Windows PowerShell, Centrify DirectManage Access SDK, or ADedit to create scripts that manipulate the objects in Active Directory. Role assignments are stored in Active Directory using Microsoft Authorization Manager containers. If you want to add and Chapter 9 • Migrating an existing user population to hierarchical zones 139 Verifying effective users on each zone remove user and group assignments, you will need to develop custom code to accomplish those tasks. Verifying effective users on each zone Now that you have imported profiles and assigned existing users to the appropriate roles, you can verify who has access to the computers in each zone before you proceed with joining a domain. Checking the Effective Users in each zone enables you to verify the users who have been assigned the UNIX Login and listed roles before any users are affected by the changes. You should have a checklist of the users who require interactive access on the computers in the target set and which user profiles you suspect only need to be recognized without the ability to log on. You can then using the Effective Users option to see the role assignments for the pre-created computer objects in the target set of computers. By comparing the list of users to the role assignments, you should be confident that you are ready to complete the migration by joining UNIX computers to the Active Directory domain. Performing this step before joining the domain helps to ensure the transition to Active Directory does not interfere with end-users daily work or the delivery of business services. Therefore, verifying UNIX Login and listed access before joining computers to the domain is a key part of a successful migration. To access the Effective Users for a zone: 1 Start DirectManage Access Manager. 2 In the console tree, expand Zones and the top-level parent zone. 3 Select a zone, right-click, then click Show Effective UNIX User Rights. 4 Review the list of UNIX user profiles for the zone in the UNIX users section. 5 Select a user name to display additional information about each user: Zone Profile displays details about inherited profile attributes. For existing users being migrated, the profile attributes are typically explicitly defined. If a profile is defined higher up in the zone hierarchy, the Inheritance tab indicates where the profile attributes are defined. Role Assignments lists the role assignments for the selected user in the zone. For the initial migration, users must be assigned the UNIX Login or listed role. PAM Access lists the specific PAM application access rights associated with the roles a user is assigned. For example, the default UNIX Login role has the login-all PAM access right, which enables PAM authentication for all computers in the zone. Commands lists the specific UNIX command rights associated with the roles a user is assigned. For example, you can define a role that allows users to run specific Planning and Deployment Guide 140 Adding existing users and groups to Provisioning Groups privileged commands as root. You can click the Commands tab to see the specific privileged commands defined for the role. SSH Rights lists the specific secure shell (ssh) command rights associated with the roles a user is assigned. 6 Click Close when you have finished checking role assignments for the users in target computer of computers. You can also select Show Effective UNIX User Rights for individual UNIX computers and generate Hierarchical Zone reports that describe the effective rights for computers and users. Adding existing users and groups to Provisioning Groups After you have added the existing users and groups to the appropriate Login and Listed role groups, the next step for completing the migration to Active Directory is to add the existing user and group profiles to the Provisioning Groups you created for the parent zone. This step is not directly related to data migration, but enables you to prepare the environment for automated user and group fulfillment using on the Zone Provisioning Agent. Add existing users to the provisioning group for the parent zone At this point, you have imported legacy data into one or more child zones and accepted divergent profile attributes using computer-level overrides. You should now add all of your imported UNIX users to the provisioning group in the top-level parent zone. Adding users as members of the provisioning group will enable the Zone Provisioning Agent to define a new “universal” UNIX profile for legacy users based on business rules you establish for the parent zone. The new profile will not affect the existing file ownership, but will make it easier to provision and deprovision users moving forward. As discussed in “Installing Zone Provisioning Agent” on page 66, the Zone Provisioning Agent enables you to define business rules for creating new UNIX profiles for new UNIX users. After you complete the migration and enable the Zone Provisioning Agent, it runs at a regularly scheduled interval to determine whether there are new users or users who should be removed. At each interval, the Zone Provisioning Agent compares the members of the parent zone’s Users provisioning group with the user profiles currently defined for the zone. If there are UNIX profiles for users who aren’t members of the provisioning group, the Zone Provisioning Agent removes those user profiles. To prevent the Zone Provisioning Agent from removing the imported data, you must add the Active Directory users associated with the imported user profiles to the parent zone’s Users provisioning group. Chapter 9 • Migrating an existing user population to hierarchical zones 141 Adding existing users and groups to Provisioning Groups To add existing UNIX users to the provisioning group for the parent zone: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. 3 Expand the Provisioning Groups organizational unit, then select the parentZoneName_Zone_Users group. For example, if the parent zone is arcadeGlobal, select arcadeGlobal_Zone_Users, right-click, then select Properties. 4 Click the Members tab, then click Add. 5 Search for and select the imported user accounts that your have mapped to Active Directory users, then click OK. 6 Click OK to save the provisioning group and close the Properties. Add existing groups to the provisioning group for the parent zone As with imported users, you should also add all of your imported UNIX groups to the provisioning group in the top-level parent zone. Adding the group profiles as members of the top-level provisioning group will enable the Zone Provisioning Agent to define a new “universal” UNIX profile for each group based on business rules you establish for the parent zone. The new profile will not affect the existing file ownership, but will make it easier to provision and deprovision users moving forward. Adding the UNIX group profiles to the top-level parent zone ensures that the Zone Provisioning Agent does not remove the imported groups from the zone. To add existing UNIX groups to the provisioning group for the parent zone: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. 3 Expand the Provisioning Groups organizational unit, then select the parentZoneName_Zone_Groups group. For example, if the parent zone is arcadeGlobal, select arcadeGlobal_Zone_Groups, right-click, then select Properties. 4 Click the Members tab, then click Add. 5 Search for and select the imported user accounts that your have mapped to Active Directory users, then click OK. 6 Click OK to save the provisioning group and close the Properties. Planning and Deployment Guide 142 Chapter 10 Joining computers to a domain and zone You have completed the preparation of the environment and added existing users and groups to Active Directory. The steps up to this point have not affected the day-to-day activities of any UNIX users or groups, and have not changed the configuration of any UNIX computers. The final step in the migration requires you to join UNIX computers to the Active Directory domain. This step does have the potential to affect end-users. This section describes how to complete the migration by joining the target set of computers to an Active Directory domain and a Centrify zone. The following topics are covered: Using Deployment Manager to join the domain Using adjoin instead of Deployment Manager on new computers Verify authentication after joining the domain by logging on Using Deployment Manager to join the domain After you have created a basic zone structure, imported existing users and groups, and assigned the appropriate roles, you can complete the initial migration by joining one or more computers to the domain. Deployment Manager enables you to join the domain from a centralized console. To use Deployment Manager to join computers to Active Directory: 1 Log on to the computer where Deployment Manager is installed using an account with permissions to both create computer objects and join computers to zones. In most cases, you can use a member of the Join Operators or Zone Administrators group. 2 Start Deployment Manager. 3 Select the Computers node. 4 Select one or more computer objects in the right pane, right-click, then select Join Computer to Zone. If the Join Computer to Zone option is not available, select Refresh Computer Information to make sure a connection to the selected computer is available on the network. 143 Using Deployment Manager to join the domain 5 Use the current login credentials or specify a different user name and password, then click Next. 6 Select Zoned mode, then click Browse. 7 Type all or part of the zone name, click Find Now, then select the zone in the results and click OK. Keep in mind that a computer can only be joined to one zone at a time. Your initial analysis of the user population and zone design should have identified a child zone for the computer to join. 8 Specify additional join options as needed, then click Next. For example: Select the Computer name and Computer alias options if you have disjointed DNS. For example, if the Active Directory DNS uses ocean.local but the UNIX computer is registered in DNS with ocean.net, you would specify the computer name as computer.ocean.local and the computer alias as computer.ocean.net. Click Container, then click Change to navigate to and select the UNIX Servers and Workstation organizational unit, click OK, then click Next. Select Trusted for delegation if you want users to be able to forward their Kerberos ticket-granting ticket to other UNIX computers as they move around the network. This is useful option if users typically use SSH to log on to a gateway UNIX computer, then use SSH to access other UNIX computers from that computer. This setting requires domain administrator privileges unless you have modified the default domain group policy to allow other computer and user accounts to be trusted for delegation. 9 Specify whether to use the current credentials or another administrative account after joining the domain, then click Next. If group policies lock down the use of the root account, you should specify an alternate account with appropriate permissions to perform administrative functions after the computer has joined Active Directory. If you are not keeping the current credentials, type the user name and password for an Active Directory account. You can also select the su command or sudo and the sudoers file as the privileged command to use for tasks requiring root permissions. If you select the su command, you must type the password for the local root user on the computer joining the domain. In the initial deployment, you cannot use the DirectAuthorize (dzdo) option because Centrify does not include a default role definition for privileged commands. After you create a root-equivalent role definition and assign it to at least one user, you can select DirectAuthorize (dzdo), su, or sudo during subsequent deployments. The steps for creating a root-equivalent role are described in “Creating a root-equivalent role definition” on page 176. Note 10 Review information about the join, then click Finish to join selected computers to the specified domain and zone. Planning and Deployment Guide 144 Using adjoin instead of Deployment Manager on new computers After you click Finish, Deployment Manager opens an SSH connection to the UNIX computer and changes to the root account (or sudo) to run the adjoin command. The adjoin operation connects to the Active Directory domain controller. If the adjoin program can successfully contact Active Directory, it performs a series of key tasks. For example, when you join the domain, the program does the following: Synchronizes the local computer’s time with Active Directory time so the timestamp of Kerberos tickets are accepted for authentication. Checks whether a computer account already exists for the local computer in Active Directory. If you did not pre-create the computer object, the adjoin program creates the computer account for you. Edits the NSS configuration and PAM configuration files so that Active Directory is the first source of authentication data. Updates the Kerberos service principal names used by the host computer, generating new /etc/krb5.conf and krb5.keytab files and new service keys for the host and http services. Sets the password on the Active Directory computer account to a randomly-generated password. The password is encrypted and stored locally on the UNIX host to ensure only the Centrify agent has control of the account. The password is automatically changed every seven days by default. Starts the Centrify UNIX agent (adclient) and a process watcher (cdcwatch) on the local computer. Populates the local cache with users and groups that are in roles. After the join operation completes, local user accounts that you did not migrate behave exactly as they did previously. The users with accounts that you did migrate—by importing UNIX profiles and assigning users to roles in one or more zones—will be required to type their Active Directory password to log on, or use a Kerberized SSH client to log in. Using adjoin instead of Deployment Manager on new computers As an alternative to using Deployment Manager, you can run the adjoin command interactively or in a script to join UNIX computers to Active Directory. One advantage to using the adjoin command instead of Deployment Manager is that it enables you to add the join operation to the steps for building a new UNIX computer. For example, if you have a process for provisioning a new UNIX computer, you can add an adjoin step that allows the new UNIX computer to join itself to Active Directory. Provisioning new computers to join the domain when they are built ensures that there are no new local users being defined on those UNIX computers. Chapter 10 • Joining computers to a domain and zone 145 Verify authentication after joining the domain by logging on Running adjoin requires UNIX and Active Directory privileges On UNIX, running adjoin requires you to log on as root, be a member of the wheel group, or have root equivalent privileges in the sudoers file. On Mac OS X computers, adjoin requires the administrator account and password. Specifying the required options The basic syntax for the adjoin command is: adjoin [options] domain_name [--zone zone_name | --workstation] The domain_name should be a fully-qualified domain name; for example, sales.acme.com. If you are using adjoin to provision new computers, there are several options you should specify on the command line or in the script. Use the --container or -c option to specify the location for the computer account. Typically, you should use the organizational unit that you created for UNIX Servers and Workstation under the top-level UNIX organizational unit. It must be the location you used when you pre-created the computer object. For example: -c “ou=UNIX Server and Workstations,ou=UNIX” Use the --selfserve or -S option to specify that you want the computer to join itself to the Active Directory domain. Use the --zone or -z option to specify the name of the zone to join. You must specify a zone name unless you are joining Auto Zone using the --workstation option. If you have a disjointed DNS environment where the Active Directory domain for the computer account does not match the name of the DNS domain, you must also specify the --name and --alias options. The --name option specifies the name of the Active Directory computer object and the --alias will be the fully-qualified DNS name of the computer. For example, update your provisioning process for a new computer to include a command similar to the following: adjoin -c “ou=UNIX Server and Workstations,ou=UNIX” -S -z production arcade.net For complete information about adjoin options, see the adjoin man page. Verify authentication after joining the domain by logging on As the final step in the initial migration, you should verify that authentication for an Active Directory user is successful. You can do this by logging on to the UNIX console using either the UNIX user name or the Active Directory User Principal Name for a user assigned to the UNIX Login role. When prompted, type the Active Directory password for the account. If you are able to log on using the Active Directory password, you know that authentication is being handled by Active Directory and the user account has been successfully migrated. Planning and Deployment Guide 146 Verify authentication after joining the domain by logging on You should also verify that you can log on remotely using a secure shell (ssh) connection and that you can use other services such as ftp. If users have trouble logging on after a UNIX computer has joined the domain, it is typically because they’re not assigned the UNIX Login role or don’t have a valid UNIX profile in the zone. You can use the Show Effective UNIX User Rights command to check which users have profiles and what roles have been assigned to users who have access to the selected computer. Chapter 10 • Joining computers to a domain and zone 147 Chapter 11 Provisioning new user and group profiles after migration After you have completed the basic migration for a set of existing users and groups, you can continue with the deployment of Centrify Server Suite by configuring the environment for automated provisioning of new users and groups. At this stage, you have already built the foundation for the automated addition and removal of users and groups. The next steps involve defining the business rules for creating new user and group profiles. The goal of this section is to help you identify and integrate a provisioning process for new UNIX users and groups. The following topics are covered: Integrating with existing provisioning processes Defining the business rules for new groups in the parent zone Defining the business rules for new users in the parent zone How hierarchical zones affect provisioning Adding new users to a provisioning group and a role group Adding a new UNIX group profile to all zones Using the zoneupdate program for controlled automation Using any Active Directory attribute in a profile Provisioning users when across trusted domains Monitoring provisioning events Adding new profiles manually Integrating with existing provisioning processes The Zone Provisioning Agent and the provisioning groups you created in “Add provisioning groups to the parent zone” on page 123 are intended to integrate the provisioning of UNIX users and groups with your existing account fulfillment process. Those groups enable you to leverage existing processes because most organizations have well-defined and standardized procedures for provisioning new Active Directory users based on Active Directory group membership. If possible, you would like to use the same or a similar process for provisioning UNIX users and groups. If you can integrate the provisioning of UNIX users and groups with your existing process, the people in your organization can use tools they are familiar with and won't have to learn an entirely new process. 148 Defining the business rules for new groups in the parent zone However, defining the business rules for adding new user and group profiles to zones requires some planning. In particular, you need to make decisions about Active Directory group membership, primary group definitions for users in zones, and how profile attributes are defined. Defining the business rules for new groups in the parent zone You have already started the process of integrating the provisioning for UNIX users and groups when you added imported accounts to the Active Directory provisioning groups in “Adding existing users and groups to Provisioning Groups” on page 141. The next step is to define the business rules for creating new UNIX group profiles in the top-level parent zone. The business rules you define only affect new UNIX user and group profiles. The imported legacy data remains unchanged, and the Zone Provisioning Agent will not modify any attributes on the existing user and group profiles. Note Configure the business rules for automated provisioning of group profiles You configure the business rules for automated provisioning of group profiles on a zone-by-zone basis. When you use hierarchical zones, you typically want to configure the business rules for the parent zone so that the profile can be inherited in all child zones. Remember that the profile, by itself, does not provide any access to the computers in the child zones, and that you can override any inherited attributes in any zone or on individual computers. To configure the business rules for groups in the parent zone: 1 Start DirectManage Access Manager. 2 In the console tree, expand the Zones node. 3 Select the top-level parent zone, right-click, then click Properties. 4 Click the Provisioning tab. If you are defining business rules for a parent hierarchical zone and want to establish a “source zone” for profile attributes, click Advanced. You can then select the Source zone for any or all user and group profile attributes. If you select Source zone for any attribute on the Advanced Provisioning page, you can click Browse to search for and select the zone to use as the source zone. In most cases, selecting a source zone is not necessary if you using hierarchical zones, but this option can be useful if you are migrating from classic to hierarchical zones. 5 Click Enable auto-provisioning for group profiles. 6 Click the Find icon to search for and select the “groups” zone provisioning group as the Source Group. Chapter 11 • Provisioning new user and group profiles after migration 149 Defining the business rules for new groups in the parent zone If you followed the recommended naming convention, search for and select parentZoneName_Zone_Groups. For example, if the zone name is arcadeGlobal, select arcadeGlobal_Zone_Groups. 7 Select a method for assigning a new GID to new UNIX group profiles: Generate from group SID generates new GIDs that are guaranteed to be unique in the forest based on the Active Directory security identifier (SID) of the group. Selecting this option ensures groups defined in the parent zone have a unique GID across all zones in the Active Directory forest. RFC 2307 attribute uses the gidNumber attribute from the RFC 2307 schema to define GID values for the Active Directory groups that you add to the parent zone. This option requires you to add the RFC 2307 attribute to Active Directory group principals. Use auto-incremented GID selects the next available GID in the parent zone. In most cases, you should avoid using this option because it does not guarantee unique GIDs. Generate using Apple scheme generates group GIDs based on the Apple algorithm for generating numeric identifiers from the Active Directory group’s objectGuid. This option is only supported for hierarchical zones. 8 Select a method for assigning a new group name to new UNIX group profiles: SamAccountName attribute generates the group name for UNIX group profile based on the sAMAccountName value. CN attribute uses the common name attribute to define group names for the Active Directory groups you add to the zone. You should only select this option if you verify the common name does not contain spaces or special characters. Otherwise, you should not use this option. RFC 2307 attribute uses the cn attribute from the RFC 2307 schema to define group names for the Active Directory groups you add to the zone. Zone default value uses the Group name setting from the Group Defaults tab to define group names for the Active Directory groups you add to the zone. In most cases, the default is a variable that uses the sAMAccountName attribute. By default, all UNIX group names are lowercase and invalid characters are replaced with underscores. 9 Click OK to save your changes. Add security groups to the parent zone The most common way to provision UNIX users is to use a private group identifier as the primary group. With this approach, every user has a unique primary GID that is the same as the UID. Planning and Deployment Guide 150 Defining the business rules for new users in the parent zone Although not required, another common approach to provisioning UNIX users involves adding a small number of key security groups to the parent zone. For example, if you have a commonly-used group such as All US Employees to which you normally add valid Active Directory users as members, you could add that security group to the parent zone to assign all UNIX users the same primary GID in the parent zone. This approach makes provisioning UNIX users easier because you have already defined Active Directory users as members of that group. If you want to use an Active Directory group to set the primary GID for provisioned users, keep in mind that the size of the group membership can affect the performance of the Zone Provisioning Agent and how long it take to complete provisioning. If you choose to have the user’s primary group defined by Active Directory group membership, the Active Directory group must be in the same Active Directory forest as the users being provisioned. If the Active Directory group is located in another forest, provisioning fails. If you want to use this approach: 1 Add the security group to the provisioning group for the parent zone (for example, parentZoneName_Zone_Groups). 2 Open the Properties for the parent zone, click the Provisioning tab, and define the business rules for the UNIX group profile provisioning associated with the security group. At the next update interval, the Zone Provisioning Agent adds a profile for the group to the zone. You can also run the zoneupdate command to add the profile without waiting until the next update interval. For example: zoneupdate zoneName 3 Click the User Defaults tab for the parent zone, select the ellipsis <...> option for the Primary Group and select the GID for the group profile that the Zone Provisioning Agent added to the zone. Defining the business rules for new users in the parent zone In addition to the business rules for group profiles, you configure similar rules for new UNIX user profiles. When you use hierarchical zones, you typically want to configure these business rules for the parent zone so that the profile can be inherited in all child zones. Remember that the profile, by itself, does not provide any access to the computers in the child zones, and that you can override any inherited attributes in any zone or on individual computers. The business rules you define only affect new UNIX user and group profiles. The imported legacy data remains unchanged, and the Zone Provisioning Agent will not modify any attributes on the existing user and group profiles. Note Chapter 11 • Provisioning new user and group profiles after migration 151 Defining the business rules for new users in the parent zone To configure the business rules for user profiles in the parent zone: 1 Start DirectManage Access Manager. 2 In the console tree, expand the Zones node. 3 Select the top-level parent zone, right-click, then click Properties. 4 Click the Provisioning tab. If you are defining business rules for a parent hierarchical zone and want to establish a “source zone” for profile attributes, click Advanced. You can then select the Source zone for any or all user and group profile attributes. If you select Source zone for any attribute on the Advanced Provisioning page, you can click Browse to search for and select the zone to use as the source zone. In most cases, selecting a source zone is not necessary if you using hierarchical zones, but this option can be useful if you are migrating from classic to hierarchical zones. 5 Click Enable auto-provisioning for user profiles. 6 Click the Find icon to search for and select the “users” zone provisioning group as the Source Group. If you followed the recommended naming convention, search for and select parentZoneName_Zone_Users. For example, if the parent zone name is arcadeGlobal, select arcadeGlobal_Zone_Users. This is the same group to which you added the Active Directory users associated with imported user profiles as described in “Add existing users to the provisioning group for the parent zone” on page 141. 7 Select a method for assigning a new UID to new UNIX user profiles: Generate from user SID generates new UIDs that are guaranteed to be unique in the forest based on the Active Directory security identifier (SID) of the user. Selecting this option ensures users defined in the parent zone have a unique UID across all zones in the Active Directory forest. RFC 2307 attribute uses the uidNumber attribute from the RFC 2307 schema to define UID values for the Active Directory users that you add to the zone. This option requires you to add the RFC 2307 attribute to Active Directory user principals. Otherwise, you should not use this option. Use auto-incremented UID uses the next available UID in the parent zone. In most cases, you should avoid using this option because it can create UID conflicts with users in other zones. Use custom ID enables you to use the employeeId, employeeNumber, or uidNumber attribute as the UID for new users. You should only select the employeeId or employeeNumber attribute if your organization already populates the employeeId or employeeNumber attribute with a unique value for each user account. Planning and Deployment Guide 152 Defining the business rules for new users in the parent zone Generate using Apple scheme generates user UIDs based on the Apple algorithm for generating numeric identifiers from the Active Directory user’s objectGuid. This option is only supported for hierarchical zones. 8 Select a method for assigning a new UNIX user login name to new UNIX user profiles: SamAccountName attribute generates the user login name for new UNIX users based on the sAMAccountName attribute. CN attribute uses common name attribute for user names. You should only select this option if you verify the common name does not contain spaces or special characters. Otherwise, you should not use this option. RFC 2307 attribute uses the uid attribute from the RFC 2307 schema to define user names for the Active Directory users that you add to the zone. This option requires you to add the RFC 2307 attribute to Active Directory user principals. Otherwise, you should not use this option. Zone default value uses the setting from the User Defaults tab for the zone. In most cases, the default is a variable that uses the sAMAccountName attribute. 9 Select a method for assigning a new shell and home directory to new UNIX user profiles. RFC 2307 attribute uses the loginShell attribute for the shell and the unixHomeDirectory attribute for home directory from RFC 2307 schema for the default shell and home directory Zone default value uses the values you define on the User Defaults tab, which can include runtime variables for the shell and home directory. Runtime variables are populated with platform-specific values when a user tries to log on to a UNIX computer. For example, if a user logs on to a Linux computer with a profile that uses the runtime variable for the home directory, the home directory is /home/username. If the user logs on to a Solaris computer, the runtime variable becomes /export/home/username. 10 Select a method for assigning a primary group to new UNIX user profiles. RFC 2307 attribute uses the gidNumber attribute from the RFC 2307 schema for primary group values. This option requires you to add the RFC 2307 attribute to Active Directory user principals. Otherwise, you should not use this option. Zone default value uses the values you define on the User Defaults tab. This setting enables you to use a specific group profile as the primary group for all UNIX users. If you don’t change the default value for the primary group on the User Defaults tab, the default primary group is a private group. Private group uses the user’s UID as the primary GID. Active Directory group membership uses the Active Directory group with the highest priority as the primary UNIX group. With this option, the Zone Provisioning Agent checks which groups a user belongs to and a prioritized list of groups you have defined. If you select this option, click the Configure icon to search for and select the Chapter 11 • Provisioning new user and group profiles after migration 153 How hierarchical zones affect provisioning Active Directory groups to include in the prioritized list. This option allows different users to have different primary GIDs in the same zone. Generate using Apple scheme generates the user’s primary group identifier (GID) based on the Apple algorithm for generating numeric identifiers from the Active Directory objectGuid for the user’s primary group. Note that the user's primary group must configured for the zone. If the primary group is not configured for the zone, an error will be logged in the Windows Event Log when the user is provisioned. This option is only supported for hierarchical zones. Generate from group SID generates new primary GIDs based on the user’s Active Directory primary group using the Centrify algorithm for generating GIDs. If you select the Active Directory group membership option and a user isn’t a member of any of the groups in the list of prioritized groups, the Zone Provisioning Agent will not create a UNIX user profile for the user, because it won’t be able to determine the primary group. As noted in “Add security groups to the parent zone” on page 150, the most common approach is to have all users assigned the same primary GID in a zone. 11 Click OK to save your changes. By default, the GECOS field in new UNIX user profiles is populated using the displayName attribute for the user. How hierarchical zones affect provisioning Because hierarchical zones enable profile attributes to be inherited, defining the business rules for new users and groups in the parent zone enables the Zone Provisioning Agent to generate consistent profiles for all child zones. When you define a UNIX profile for a group or a user in a parent zone, the attributes are automatically inherited by all child zones. For groups, inheritance makes the group GID and group name available in all child zones. For users, inheritance gives every user defined in the parent zone the potential to log on to every UNIX computer. You then use role assignments to control which computers users can actually access, and, once you begin defining custom roles, what they can do on those computers. By default, all of the attributes in each new profile are inherited from the parent zone. You can then override any of the attributes as needed in each of the child zones or on individual computers on a case-by-case basis. This flexibility enables you to establish a consistent UID and GID namespace across all zones based on unique SID and sAMAccountName values, while granting exceptions to the specific cases where you need them. For individual computers, UNIX user and group profiles are inherited from the zone the computer has joined. Typically, this is a child zone or the child of a child zone. You can manually override any attribute or set of attributes for individual computers. Any attributes you do not override are inherited from the zone and the business rules you defined for the Zone Provisioning Agent. Planning and Deployment Guide 154 Adding new users to a provisioning group and a role group Adding new users to a provisioning group and a role group For new Active Directory users to be effective users of a zone, they must be added to the parent zone’s “users” provisioning group and to a role group. You can add users to these groups manually using Active Directory Users and Computers or you can update your existing provisioning process for modifying the membership of Active Directory groups to add users to the appropriate groups. The key points to understand are: Users are added to a provisioning group so that the Zone Provisioning Agent creates a UNIX profile for them. A user must have a complete UNIX profile to be a valid user on UNIX computers. Centrify recommends creating the profile in the parent zone, but you can create the profile in any zone or on individual computers. Users are added to a role group so that they have a valid role assignment that allows them to log on or perform specific tasks. Initially, you only have two possible role assignments, listed or UNIX Login, but you are likely to create more. Add the user to a provisioning group Using Active Directory Users and Computers, scripts, or internal procedures, the basic workflow for a new user would be similar to this: 1 A new Active Directory user requests access to UNIX computers. 2 You add the user principal name to an Active Directory group principal. If you are adding the user to the parent zone, you add the user to the “users” provisioning group parentZoneName_Zone_Users. If you wanted to create the profile in a child zone instead of the parent zone, you would add the Active Directory user to the childZoneName_Zone_Users. If you use some other naming convention for the provisioning group, you would search for and select that group. 3 The Zone Provisioning Agent monitors this group and at the next interval (or on-demand) creates a UNIX profile for the user in the zone, based on the business rules you defined. If you remove a user from the Active Directory provisioning group, the Zone Provisioning Agent removes the UNIX user profile from the zone. Note 4 You notify the user that a new UNIX profile has been created with information about the login name and initial Active Directory password to use. Add the user to a role group Users must also have a role assignment for the zone where you want to grant access. A role assignment is required before the UNIX user profile is usable. Chapter 11 • Provisioning new user and group profiles after migration 155 Adding a new UNIX group profile to all zones Using Active Directory Users and Computers, scripts, or internal procedures, the basic work flow for a new user would be similar to this: 1 A new Active Directory user requests access to UNIX computers. 2 You add the user principal name to the appropriate Active Directory group principal. If you want to allow the user to log on to computers in a child zone, you add the user to the Login role group childZoneName_Role_Login. If the user should be recognized but not allowed to log on, you would add the Active Directory user to the childZoneName_Role_Listed. After you have created custom roles, you would search for and select groups based on the specific rights a user needs. 3 Run the Zone Provisioning Agent update command in preview mode to verify your changes. For example: zoneupdate /p zoneName 4 Check the results of the zoneupdate preview, then run the command without the preview option to execute the business rules for provisioning. For example: zoneupdate zoneName Adding a new UNIX group profile to all zones If you want to make a new UNIX group available to all zones, you should first create a new Active Directory group. In most cases, groups are not shared across multiple zones because of the potential for privilege escalation based on group membership. However, the steps for creating a UNIX profile that spans all zones or only the computers in a specific zone are similar. Using Active Directory Users and Computers, scripts, or your existing provisioning process, the basic workflow for a new group would be similar to this: 1 Create a new Active Directory group for access to UNIX computers in the UNIX Groups organizational unit (ou=UNIX Groups, ou=UNIX). For example, if you are creating a new Active Directory group for the denali project team in the parent zone arcadeGlobal, use Active Directory Users and Computers to create a new group named arcadeGlobal_denali. 2 (Optional) Add users to the group if you know who to add. For example, if you are creating the group for a new project and you have a list of authorized users for that project, you can click the Members tab to add those Active Directory users to the new group. If those Active Directory users have a valid UNIX profile and role assignment in the zone, their secondary group membership is updated with the new group. Planning and Deployment Guide 156 Using the zoneupdate program for controlled automation 3 Add the new Active Directory group to the appropriate zone provisioning group. If you are adding the group to the parent zone, you add the user to the “groups” provisioning group parentZoneName_Zone_Groups. If you wanted to create the profile in a child zone instead of the parent zone, you would add the Active Directory group to the childZoneName_Zone_Groups. If you use some other naming convention for the provisioning group, you would search for and select that group. 4 Run the Zone Provisioning Agent update command in preview mode to verify your changes. For example: zoneupdate /p zoneName 5 Check the results of the zoneupdate preview, then run the command without the preview option to execute the business rules for provisioning. For example: zoneupdate zoneName 6 The Zone Provisioning Agent creates a UNIX profile for the group in the zone based on the business rules you defined. If you remove an Active Directory group from the Active Directory provisioning group, the Zone Provisioning Agent removes the UNIX group profile from the zone. Note Using the zoneupdate program for controlled automation You can use the zoneupdate.exe program with command line options to provision profiles in controlled way, allowing you to verify that profiles and access rights are defined correctly for subsets of users or groups without affecting the production environment. At a minimum, you must specify the zone name or canonical name for the zone to use the zoneupdate.exe program. The command line options are similar to the options available on the Provisioning tab when you display a zone’s properties. For example, to use the provisioning properties defined for a zone, you only need to specify the zone name at the command line: zoneupdate default If you use the canonical name for the zone, you specify the full path to the zone: zoneupdate "centrify.com/program data/Centrify/zones/default" You can override the default provisioning properties for a zone by specifying one or more of the following command line options. Chapter 11 • Provisioning new user and group profiles after migration 157 Using the zoneupdate program for controlled automation Options are not case-sensitive. If you specify an option more than once, only the last value is used. Use this option To specify /z:ZoneName The name of a source zone. If you do not specify a zone name and there’s not a source zone defined in the zone’s provisioning properties, you cannot use the zoneupdate command to copy user or group attributes from one zone to another. or /SourceZone:ZoneName A source zone is required for classic zones. It is optional for parent hierarchical zones, but can be useful if you are migrating from classic to hierarchical zones. /d:DomainName or /Domain:DomainName /dc:DCName or The name of the domain to process. If you do not specify a domain name, the zoneupdate program processes the Active Directory domain to which the computer is joined. The name of the target domain controller to connect. No option - This will use the default domain controller of target domain. /DomainController:DCName /uu:Option or /UserUid:Option The method to use to set the user’s numeric identifier (UID) value. You can specify any one of the following values: • Auto to generate UIDs based on the Active Directory domain name and the RID of a user object. This setting is equivalent to selecting Generate from user SID in the Provisioning tab. • AppleScheme to generate UIDs based on the Apple algorithm for generating numeric identifiers from the Active Directory user object's objectGuid. This setting is equivalent to selecting Generate using Apple scheme in the Provisioning tab. • RFC2307 to use the uidNumber attribute in the Active Directory RFC2307 schema for the user’s UID value. • ZoneDefault to use the UID defined on the User Defaults tab for the zone. If there’s no default value, the Next UID value for the zone is used. • SourceZone to copy the UID from the same user in a specified source zone. • EmployeeId to copy the UID from the employeeId attribute of the user object. • EmployeeNumber to copy the UID from the employeeNumber attribute of the user object. • uidNumber to copy the UID from the uidNumber attribute of the user object. If you don’t use one of these values, you can set the UID to not have any value. For example: /uu:empty If you use this setting, users will have an incomplete profile in the zone. Planning and Deployment Guide 158 Using the zoneupdate program for controlled automation Use this option To specify /un:Option The method to use to set the user’s name. You can specify any one of the following values: or /UserName:Option • sAMAccountName to use the Active Directory user’s sAMAccountName attribute as the UNIX user name. • CN to use the user's common name (CN) attribute as the UNIX user name. • RFC2307 to use the uid attribute in the Active Directory RFC2307 schema as the UNIX user name. • ZoneDefault to use the user name defined on the User Defaults tab for the zone. If there’s no default value zone, the sAMAccountName is used. • SourceZone to copy the user name from the same user in a specified source zone. If you don’t use one of these values, you can set the user name to an explicit value. For example: /un:hunter /us:Option or /UserShell:Option The method to use to specify the user’s default login shell. You can specify any one of the following values: • RFC2307 to use the loginShell attribute in the Active Directory RFC2307 schema as the default shell. • ZoneDefault to use the shell specified on the User Defaults tab for the zone. • SourceZone to copy the shell defined for the user in a specified source zone. If you don’t use one of these values, you can set the login shell using an explicit value. For example: /us:/bin/bash /uh:Option or /UserHomeDirectory:Option The method to use to specify the user’s default home directory. You can specify any one of the following values: • RFC2307 to use the unixHomeDirectory attribute in the Active Directory RFC2307 schema for a user as the default home directory. • ZoneDefault to use the home directory specified on the User Defaults tab for the zone. • SourceZone to copy the home directory defined for the user in a specified source zone. If you don’t use one of these values, you can set the home directory to an explicit value. For example: /uh:/home/hunter Chapter 11 • Provisioning new user and group profiles after migration 159 Using the zoneupdate program for controlled automation Use this option To specify /ug:Option The method to use to specify the user’s primary group identifier. You can specify any one of the following values: or /UserPrimaryGroup:Option • AppleScheme to generate the user’s primary group identifier (GID) based on the Apple algorithm for generating numeric identifiers from the Active Directory objectGuid for the user’s primary group. Note that the user's primary group must configured for the zone. If the primary group is not configured for the zone, an error will be logged in the Windows Event Log when the user is provisioned. This setting is equivalent to selecting Generate using Apple scheme in the Provisioning tab. • PrimaryGroupSID to generate the user’s primary group identifier (GID) based on the Centrify algorithm for generating numeric identifiers from the Active Directory security identifier of the user’s primary group. • PrivateGroup to set the user's primary GID value to be the same as the user‘s UID value. • RFC2307 to use the gidNumber attribute f in the Active Directory RFC2307 schema as the primary group identifier or a user. • ZoneDefault to use the primary group specified on the User Defaults tab in the zone. If there’s no default value, zoneupdate.exe will stop provisioning the user. • SourceZone to copy the primary group defined for the user in a specified source zone. • GroupMembership to set the user's primary GID based on the user’s Active Directory group membership. If a user is a member of the Active Directory groups ops-mgrs and ops-labs and one of those groups has a UNIX profile in the zone but not the other, the group with the UNIX profile in the zone will be used as the primary GID for the user. If both group have a UNIX profile in the zone, the one with higher priority will be used. You can set the priority for selecting the primary group to use in the Access Manager console. If the priority is the same, zoneupdate.exe will stop provisioning the user. If you don’t use one of these values, you can set the primary GID to not have any value. For example: /ug:empty If you use this setting, users will have an incomplete profile in the zone. /uc:Option or /UserGecos:Option The method to use to specify the user’s GECOS field. You can specify any one of the following values: • RFC2307 to use the gecos attribute in the Active Directory RFC2307 schema for a user. • ZoneDefault to use the value defined for the GECOS field on the User Defaults tab for the zone. If you don’t use one of these values, you can set the primary GID value to an explicit value. For example: /uc:Thompson, Hunter S. Planning and Deployment Guide 160 Using the zoneupdate program for controlled automation Use this option To specify /gg:Option The method to use to set the group numeric identifier (GID) value. You can specify any one of the following values: or /GroupGid:Option • Auto to generate the GID based on the Active Directory domain name and the RID of a group object. This setting is equivalent to selecting Generate from group SID in the Provisioning tab. • AppleScheme to generate GIDs based on the Apple algorithm for generating numeric identifiers from the Active Directory group object's objectGuid. This setting is equivalent to selecting Generate using Apple scheme in the Provisioning tab. • RFC2307 to use the gidNumber attribute in the Active Directory RFC2307 schema for the group GID value. • ZoneDefault to use the GID defined on the Group Defaults tab for the zone. If there’s no default value, the Next GID value for the zone is used. • SourceZone to use the GID defined for the group in a specified source zone. If you don’t use one of these values, you can set the GID to not have any value. For example: /gg:empty If you use this setting, groups will have an incomplete profile in the zone. /gn:Option or /GroupName:Option The method to use to set the group name. You can specify any one of the following values: • samAccountName to use the Active Directory group samAccountName attribute as the UNIX group name. • CN to use the group's common name (CN) attribute as the UNIX group name. • RFC2307 to use the cn attribute in the Active Directory RFC2307 schema as the UNIX group name. • ZoneDefault to use the group name defined on the Group Defaults tab for the zone. If there’s no default value, the sAMAccountName is used. • SourceZone to copy the group name from the group in a specified source zone. If you don’t use one of these values, you can set the group name to an explicit value. For example: /gn:apps-lab Chapter 11 • Provisioning new user and group profiles after migration 161 Using any Active Directory attribute in a profile Use this option To specify /u:ADGroupName An Active Directory group to use to populate a Centrify zone with users. Use the sAMAccountName and, optionally, the domain name to identify the group. For example, to use the Active Directory engineers group in the currently connected domain to populate users in the default zone: or /UserSource:ADGroupName zoneupdate /u:engineers default To use the Active Directory engineers group in a specific domain, you can use the /d:DomainName option or group_name@domain_name. For example to use the Active Directory engineers group in the testdomain.org domain to populate users in the default zone: zoneupdate /u:engineers@testdomain.org default /g:ADGroupName or /GroupSource:ADGroupName An Active Directory group to use to populate a Centrify zone with groups. Use the sAMAccountName and, optionally, the domain name to identify the group. For example, to use the Active Directory employees group in the currently connected domain to populate groups in the default zone: zoneupdate /g:employees default /v or Display detailed information about the provisioning of users and groups. When you use this option, the output format is: /Verbose Group: groupname:gid User: uid:username:shell:home:primarygid /p Preview the users or groups to be provisioned or removed. In preview mode, the zoneupdate.exe program does not create or remove any UNIX profiles. or /Preview /l or /Log:Level Enable logging and set the level of detail recorded in the log file. For the log level, you can specify any one of the following values: • Error to log only error messages. • Warning to log warnings and error messages. • Information to log informational messages, warnings, and errors. • Verbose to log all messages, including details about the user and group profiles created or removed. Logging is off by default. If you enable logging, the default file location for the log file is: C:\Users\User_Name\AppData\Roaming\Centrify\ DirectManage You can change the default log file path by modifying the following registry key: HKEY_LOCAL_MACHINE\Software\Centrify\ZPA\LogFolder Using any Active Directory attribute in a profile In addition to the provisioning properties you can set for a zone using Access Manager, you can manually configure the Zone Provisioning Agent to use any attribute in Active Directory to define a value for any field in automatically-provisioned UNIX user or group profiles. For example, if your organization uses a custom attribute, such as org_global_id, Planning and Deployment Guide 162 Using any Active Directory attribute in a profile for all users, you can manually configure the Zone Provisioning Agent to use that attribute for the numeric user identifier (UID) in automatically-generated user profiles. To manually specify an Active Directory attribute to use in a UNIX profile: 1 Open Microsoft ADSI Edit. 2 Select a target zone, right-click, then click Properties. 3 Select the description attribute, then click Edit. 4 Type a profile provisioning attribute and specify the Active Directory attribute to use for the profile. The valid provisioning attributes are: provisioning_custom_uid_attribute provisioning_custom_gid_attribute provisioning_custom_primary_group_attribute provisioning_custom_user_unixname_attribute provisioning_custom_group_unixname_attribute provisioning_custom_home_directory_attribute provisioning_custom_shell_attribute The format for the entry is: provisioning_custom_uid_attribute:attribute_name Replace attribute_name with the Active Directory attribute you want to use. For example: 5 Click Add, then click OK. 6 Run the Zone Provisioning Agent update command in preview mode to verify your settings. For example: zoneupdate /p zoneName 7 Check the results of the zoneupdate preview, then run the command without the preview option to execute the business rules for provisioning. For example: Chapter 11 • Provisioning new user and group profiles after migration 163 Provisioning users when across trusted domains zoneupdate zoneName If the Active Directory attribute type is different from the target profile value, the Zone Provisioning Agent attempts to convert the data type. If the data conversion fails, the Zone Provisioning Agent reports an error and stops the provisioning process. Provisioning users when across trusted domains The Zone Provisioning Agent includes two utilities in its Tools folder to assist you in provisioning users when there are trust relationships between domains. These two utilities are CopyGroup and CopyGroupNested. These utilities enable you to mirror group membership or a group hierarchy from a trusted domain and forest in a target domain and forest. To use these command line utilities, you must have an account that can log on to the trusted source domain and the target domain. The account should also have read permission on the source domain and permission to update the target domain. For example, assume you have configured the AJAX domain to have a one-way trust with the ACME domain and you have your Active Directory users and groups defined in the ACME domain. If you want to allow the users and groups in the ACME domain to log on to computers that are joined to the AJAX domain, you can log on to the AJAX domain controller with an account that has administrative privileges in both the AJAX and ACME domains, then run the CopyGroup utility to mirror the group membership from a group in the ACME source domain as zone users in the AJAX target domain. For more information about the command line arguments and options for these utilities, see the usage message displayed for each utility. Monitoring provisioning events The Zone Provisioning Agent writes events to the Windows event log. You can use tools that monitor the event log to notify you of specific provisioning events. The following table lists the event identifiers and messages the Zone Provisioning Agent records. Event Severity 1 Information Event description and sample message Summarizes the result after a provisioning run. Centrify zones updated. Domain controller: domain_controller_name Container: container_name Start time: start_time End time: end_time Successful: successful_message Failure: failure_message 2 Error Indicates that provisioning failed for a specific domain because the domain was not found. Domain domain_name not found. 3 Error Indicates that provisioning failed because the domain controller was not accessible. Domain server domain_controller_name is down. Planning and Deployment Guide 164 Monitoring provisioning events Event Severity 4 Error Event description and sample message Indicates that provisioning failed because the domain was not operational. Domain domain_name is not operational. 5 Error Indicates that provisioning failed without a specific cause. Failed to update zones in domain domain_name on domain controller domain_controller_name. 6 Error Indicates that provisioning failed because there was a problem with the agent connecting to the Active Directory. Failed to update zones in domain domain_name on domain controller domain_controller_name. Error on Active Directory service. 7 Error Indicates that provisioning failed because there was an unexpected error when updating the zones in a specific domain. Unexpected error when updating the zones in domain domain_name on domain controller domain_controller. Details: detail_message. 8 Information Provides verbose user provisioning information, including details about the provisioned user profile. User provisioned to a Centrify zone. User: user Zone: zone UID: uid Name: name Shell: shell Home directory: home_directory Primary group: primary_group Gecos: gecos 9 Information Provides basic user provisioning information. User provisioned to a Centrify zone. User: user Zone: zone 10 Information Provides verbose user de-provisioning information, including details about the user profile removed. User removed from a Centrify zone. User: user Zone: zone UID: uid Name: name Shell: shell Home directory: home_directory Primary group: primary_group Gecos: gecos 11 Information Provides basic user de-provisioning information. User removed from a Centrify zone. User: user Zone: zone 12 Information Provides verbose group provisioning information, including details about the provisioned group profile. Group provisioned to a Centrify zone. Group: group Zone: zone GID: gid Name: name 13 Information Provides basic group provisioning information. Group provisioned to a Centrify zone. Group: group Zone: zone 14 Information Provides verbose group de-provisioning information, including details about the group profile removed. Group removed from a Centrify zone. Group: group Zone: zone GID: gid Name: name 15 16 Information Warning Provides basic group de-provisioning information. Group removed from a Centrify zone. Group: group Zone: zone Indicates that the Zone Provisioning Agent received a warning message during the provisioning process. Warning occurred when provisioning a Centrify zone. Zone: zone Details: detail_message Chapter 11 • Provisioning new user and group profiles after migration 165 Monitoring provisioning events Event Severity Event description and sample message 17 Error Indicates that provisioning failed because there was a problem with the permissions on the account used to run the Zone Provisioning Agent. Insufficient permission to setup the log file. Please contact your local administrator. Details: detail_message 18 Error Indicates that provisioning failed because there was a problem with creating the log file in the log file location. Failed to create the log file. Please contact your local administrator. Details: detail_message 19 Information Indicates that provisioning is paused to allow another provisioning cycle to complete. Zone Provisioning Agent failed to start another provisioning cycle at current_time because the previous provisioning cycle is not yet complete. The provisioning request is pending until Zone Provisioning Agent finishes the previous provisioning cycle. 20 Error Indicates that provisioning failed because the computer was not found in the domain being provisioned. This computer is not joined to a domain or the domain is not available. 21 Error Indicates that provisioning failed because there was a problem loading domain information. Failed to load domain information. No zone will be provisioned. Error: error_message 22 Error Indicates that provisioning failed because there was a problem with the functional operation of the domain. Functional error occurred with domain domain_name. 23 Error Indicates that provisioning failed because authentication failed for the account used to run the Zone Provisioning Agent. Domain domain_name authentication failed. 24 Error Indicates that provisioning failed because the authentication system failed. Domain domain_name authentication (system) failed. 25 Error Indicates that provisioning failed because there was an unexpected error when loading a specific domain. Unexpected error occurred when loading domain domain_name. 26 Error Indicates that provisioning failed because the Active Directory forest was not found. Forest forest_name not found. 27 Error Indicates that provisioning failed because the root domain controller was not accessible. Forest server server_name is down. 28 Error Indicates that provisioning failed because the forest was not operational. Forest forest_name is not operational. 29 Error Indicates that provisioning failed because there was a problem with the functional operation of the forest. Functional error occurred with forest forest_name. 30 Error Indicates that provisioning failed because authentication failed at the forest level for the account used to run the Zone Provisioning Agent. Forest forest_name authentication failed. Planning and Deployment Guide 166 Adding new profiles manually Event Severity Event description and sample message 31 Error Indicates that provisioning failed because the authentication system failed at the forest level. Forest forest_name authentication (system) failed. 32 Error Indicates that provisioning failed because there was an unexpected error at the forest level. Unexpected error occurred when loading forest forest_name. 33 Error Indicates that provisioning failed because there was an error during the provisioning process. Error occurred when provisioning a Centrify zone. Zone: zone Details: detail_message 34 Warning Indicates that provisioning might be incomplete because the account used to run the Zone Provisioning Agent does not have permission update zone in a specified domain. Insufficient permission to update the zones in domain domain. Adding new profiles manually Provisioning groups enable automated provisioning of UNIX profiles for users and groups with the Zone Provisioning Agent. Centrify Server Suite does not require you to use provisioning groups and business rules to create new users and groups. You can also manually create UNIX users and groups in any zone using the Access Manager console, ADedit, or custom scripts. Adding profiles manually to a zone provides you with control over the definition of individual UNIX profiles on a zone-by-zone basis. Chapter 11 • Provisioning new user and group profiles after migration 167 Chapter 12 Validating operations after deploying This section provides sample activities for creating test cases and performing a formal validation of the Centrify deployment. Although not required, executing a set of test cases that exercise Centrify functionality will help you validate operations before extending the deployment to additional computers in the enterprise. The specific use case scenarios and test cases you execute will depend on your organization’s goals and requirements. The following topics are covered: Understanding testing as part of deployment Validating basic authentication and password policy operations Running commands on the UNIX computer to verify operations Resolving issues in the pilot deployment Preparing training and documentation for administrators and users Deploying to the production environment Understanding testing as part of deployment Most organizations initially deploy in a lab environment that simulates the production environment. The lab environment allows you to test the planned changes to system and user management processes. For example, if you plan to automate migration using scripts, you should build and test the operation of your tools to verify they work as you intend. After testing in a lab, most organizations move to a pilot deployment with a limited number of computers and users to continue verifying that authentication, authorization, and directory services are all handled properly in a real-world environment before moving to a full-scale migration across the enterprise. In many cases, the pilot deployment also requires more formal testing of specific use cases to validate the deployment before rolling out software to additional computers. This phase of the deployment may also include activities designed to help users transition to Active Directory. To validate the deployment: Execute test cases that verify authentication. Execute test cases the verify authorization rules for login access and restricted access. Execute test cases that verify the provisioning process. 168 Validating basic authentication and password policy operations Execute test cases that address issues unique to your organization or your user community. Other activities you may want to perform as part of the validation process include: Test configuration changes and customize configuration parameters. Document test results. Troubleshoot any authentication or authorization issues, if any are found. Train staff on new procedures. Communicate process changes to the users who are migrating to Active Directory. For example, if you plan to eliminate local account access, implement stricter password policies, or apply new access controls, you should prepare the user community for these changes. Validating basic authentication and password policy operations Before you begin testing organization-specific scenarios, such as the integration of migration scripts or customized access control policies, you should verify basic operations are handled as expected. At a minimum, you should perform some of the following tests to verify basic operations: Verify a UNIX profile exists for the Active Directory users and groups to be used in testing. Verify the U NIX computer has successfully joined an Active Directory domain and the computer account has been created correctly. Verify an Active Directory user assigned the UNIX Login role is authenticated and can access computers in the zone used for testing. Verify migrated users assigned the UNIX Login role can log on using their UNIX or Active Directory user name and Active Directory password. Verify an Active Directory user assigned the Listed role has a valid UNIX profile, but cannot log on to computers in the zone used for testing. Verify that workstation authorization or account lockout policies defined in Active Directory are enforced. Verify that password management policies defined in Active Directory are properly enforced. Verify that a previously authenticated user is authenticated successfully when the UNIX lab computer is offline. Verify that common lookup commands and commands that require user and group information work as expected. Chapter 12 • Validating operations after deploying 169 Running commands on the UNIX computer to verify operations You can verify authentication, authorization, and password policy operations by setting options in Active Directory and attempting to log on and log off the computers in the pilot deployment. Running commands on the UNIX computer to verify operations To confirm that a UNIX computer is a member of the Active Directory domain, you can run commands that retrieve information from Active Directory on the UNIX lab computer itself or by viewing the UNIX computer’s account information in Active Directory Users and Computers or the Access Manager console. Verify the computer is joined to Active Directory To verify a computer is joined to the Active Directory domain and is retrieving information from Active Directory by running commands on the UNIX computer: 1 Log on to the UNIX computer. 2 Type the following command to retrieve information about the computer’s connection to Active Directory: adinfo This command returns basic information such as the host name for the computer, whether the computer is joined to the domain, and whether the computer is currently connected to Active Directory. For example: Local host name: Joined to domain: Joined as: Current DC: Preferred site: Zone: Last password set: CentrifyDC mode: magnolia ajax.org magnolia.ajax.org ginger.ajax.org Default-First-Site-Name ajax.org/Centrify/Zones/default 2006-12-21 11:37:22 PST connected For more detailed information about the environment, you can use --diag or other options with the command. For information about the options available and the information displayed for each option, see the adinfo man page. 3 Type the following command to verify that the adclient process is running: ps -aef|grep adclient The command should return output similar to the following: root 1585 1 0 14:50 ? 00:00:29 adclient 4 Type the following command to confirm that lookup requests use the information in Active Directory: getent passwd Planning and Deployment Guide 170 Running commands on the UNIX computer to verify operations The command should list all of the Active Directory user accounts that are members of the zone and all local user accounts in the /etc/passwd file format. For example: ben:x:601:100:Ben Waters:/home/ben:/bin/bash ashish:x:501:100:Ashish Menendez:/home/ashish:/bin/bash sunni:x:900:100:Sunni Ashton:/home/sunni:/bin/bash jolie:x:502:100:Jolie Ames:/home/jolie:/bin/bash pierre:x:1001:100:Pierre Leroy:/home/pierre:/bin/bash 5 Review the contents of the /var/log/messages file and look for messages that indicate authentication problems or failures. Verify authentication for an authorized user To verify that an authorized Active Directory user can log on to a UNIX computer: 1 Restart the computer to display a logon screen or prompt. 2 Log on with the Active Directory user account you created for testing and provide the Active Directory password for that account. The user account must have a complete UNIX profile. The user account must be assigned the UNIX Login role. If the user account has been configured to set a new password at the next logon, you should be prompted to change the password. In this case, you must type and confirm the new password before continuing. 3 Log on using the UNIX login name for the user account and the Active Directory password. 4 Type commands to check the UID and GID assignments, home directory ownership, and other information for the logged on user. Test additional administrative tasks You may want to try other typical administrative tasks that you expect to perform in the production environment. For example, you may want to test and verify the following tasks: Changing the password for an Active Directory user using the passwd or adpasswd command on a UNIX computer changes the user’s Active Directory password for Windows computers. Logging on as a user from another trusted Active Directory domain or another trusted forest is successful when you specify the user’s fully-qualified domain name (for example, milo.cutter@paris.arcade.com). Setting a user’s effective group membership using the adsetgroups command. Logging on using previously cached credentials. Offline authentication enables users to log on when computers are disconnected from the network or have only periodic access to the Active Directory domain. For example, users who have laptop computers must be Chapter 12 • Validating operations after deploying 171 Resolving issues in the pilot deployment able to log on and be successfully authenticated when they are not connected to the network. Resolving issues in the pilot deployment Executing a formal test plan is intended to help you uncover issues that need to be resolved, troubleshoot any unexpected behavior, and correct any potential problems before end-users are affected. The pilot deployment enables you to deploy Centrify software packages on a subset of typical users in the production environment in a controlled way. You can then use the pilot deployment to evaluate server and network load and how adding new computers and users to the Active Directory affects your environment. The initial deployment also allows you to closely monitor the experience of the user community participating in the pilot program. With the pilot deployment, you can also develop and refine your processes and operational expertise before you roll out Centrify authentication and authorization services to the entire organization. You can install Centrify agents at any time without affecting any user or computer operations. Installing the Centrify agent on UNIX computers has no effect until you join the computer to the domain. Setting up the initial zone or set of zones does not affect the operation of any existing Active Directory infrastructure or Windows environment. Therefore, you can install the software for the pilot whenever it is convenient to do so. Before you join computers to the domain, you must define and assign appropriate roles to the user community. Users who don’t have role assignments will not be allowed to log on to any computers. It is essential for you to test and validate role definitions and assignments to ensure users won’t be locked out of the computers they need access to when computers join the domain. Preparing training and documentation for administrators and users The deployment team should develop and deliver training for end-users, technical support personnel, help desk operators, and account fulfillment personnel. This role-based internal training will help new team members come up to speed and also help with the resolution of technical issues. You should also train staff members to understand that there will be two fulfillment processes in place during migration: the legacy account fulfillment process for computers that have not joined the domain and a new account fulfillment process for computers that have joined an Active Directory domain. Both fulfillment processes should be clearly documented and staff should be trained on how to determine which process to use. For example, training material should indicate how the UNIX provisioning team can determine whether a computer is in a zone, so that members know whether to use the legacy process or the new process. Planning and Deployment Guide 172 Deploying to the production environment After a computer is migrated to Active Directory, you should not allow any local account provisioning on that computer. You should also be sure that this is clearly documented in training materials, especially if you don’t have centralized management of account creation policies. If you don’t prevent local account provisioning, orphaned and noncompliant UNIX accounts can continue to exist, may create conflicts in the UID and GID namespace, and create audit compliance issues because they are not included in required reports. As you migrate each set of computers to an appropriate zone, you should also notify all affected users before you complete the migration. This notification can take the form of an email, voicemail, meeting with project personnel or management, or any other logical combination. Notifying users in advance helps to reduce the number of account lockouts caused by UNIX users attempting to log on using their old UNIX password on migrated computers. Deploying to the production environment After the initial deployment is stable and you have migrated existing users and groups successfully, you can begin moving the rest of your UNIX computers, users, and groups to Active Directory. In most cases, this migration is done in stages by repeating the tasks described in this guide for additional target sets of computers, users, and groups. After each stage, you should allow a period of time for monitoring and resolving issues for the migrated user population. Your deployment plan should include a schedule for when different sets of users are to be migrated and an analysis of how those users should be placed into zones according to your migration plan. In general, you should migrate an increasing number of computers into zones in each stage of the production deployment. For example, in the first round of migration, you might migrate 15% of the computers into the first set of zones. You should then allow time in the schedule to troubleshoot and resolve issues to ensure that the migration was successful. In the next phase, you then might migrate another 25% of the computers. After you determine the second phase of the migration is successful, you might migrate the remaining computers into the remaining zones. Whenever possible, you should also plan to migrate all of the computers that have been identified for a particular zone at the same time. Migrating all of the computers in a zone at the same time helps to reduce user confusion over which password to use when authenticating. Note Training the support staff for a production deployment You should provide the following information or training to the IT support staff who are responsible for a set of users to be migrated to Active Directory: Review of the deployment project plan. Have the support staff read the deployment plan and review any changes to policies or procedures that deployment will entail. Chapter 12 • Validating operations after deploying 173 Deploying to the production environment Schedule for deployment. Make sure members of the support staff are aware of when the deployment is scheduled to take place and that they will be available at that time and for a reasonable period thereafter. Location of documentation. Make sure all internal, operating system, and Centrify-specific documentation is available so that support staff can use those documents to help them resolve any end-user issues that arise during the production deployment. Pilot deployment experience and feedback. Explain the result of the pilot deployment, including any issues encountered during the pilot and the resolution for each issue. Common Windows and Active Directory administrative tasks. For support staff members who are familiar only with supporting UNIX-based computers, provide training about Windows and Active Directory concepts and administration, as appropriate. If administrators will be using Windows-based programs or scripts to manage UNIX users and computers, they may need training specific to those tools. For example, administrators may need training to use Active Directory Users and Computers, Visual Basic scripts, or Access Manager console to manage Active Directory data. Common UNIX administrative tasks. For support staff members who are familiar only with supporting Windows-based computers, provide training about UNIX concepts and administration, as appropriate. If administrators will be using UNIX-based programs or scripts to manage UNIX users and computers, they may need training specific to those tools. For example, administrators may need training to create and use ADedit or LDAP scripts to manage Active Directory data. Common access control and privilege management tasks. Make sure members of the support staff are familiar with the tasks described in the Administrator’s Guide for Linux and UNIX, and provide hands-on training in performing the most common of those tasks. Internal policies and procedures specific to your network and business environment. Create an operations handbook with details about common scenarios the support staff may be required to address, such as adding new UNIX computers or users to Active Directory. Reporting and tracking issues related to Centrify software. Make sure support staff members know how to report issues or problems with authentication, authorization, or directory services. If your organization uses a bug or problem-ticket system for tracking issues, set up a new subject area for Centrify-related issues. Planning and Deployment Guide 174 Deploying to the production environment Preparing the user community in a production deployment As you prepare to migrate a set of users to Active Directory, you should provide training or informational materials to inform that user community about what to expect. For example, if your organization has decided to implement policies that prevent locally-defined user accounts from accessing some computers, be sure that the user community affected by this policy understands the change. Similarly, if your organization has decided to eliminate service accounts or restrict access to computers previously available, you should communicate these changes and notify users about any migration issues that may affect file access permissions and file ownership. When you are ready to migrate a specific set of users, you should inform the user population about the upcoming deployment by providing the following information: Schedule for deployment. Make sure that department managers and end-users know when the switch to Active Directory is scheduled to occur. Computers and applications affected. Make sure that department managers and end-users know if their workstations or the servers they access for business applications are included in the deployment. If users need access to a computer that is being added to an Active Directory domain, they need to know whether their user account is in the same domain as the computer or a different domain. If there are applications hosted on a computer that is being added to an Active Directory domain, users need to know how this will affect access to the hosted application. For example, users may need to select a domain when logging on, or log on using the user_name@domain_name format. Active Directory account information. Make sure that end-users know their Active Directory account information and understand that they must use their Active Directory password to access their UNIX workstations after the deployment is complete. You should inform users about the valid logon names and formats they can use, the Active Directory password assigned to their account if it is a new account, whether they are required to change their password when they next log on, and any password complexity rules you have implemented. Active Directory may lock accounts if users attempt to log on using their UNIX password, which could result in a large number of Help Desk requests for password resets. Changes to access policies. Make sure that department managers and end-users are aware of any changes to access control policies. For example, if you are using group policies to deny access to some users or groups who could previously log on to a computer, you should inform those users or groups of the change and that it will take effect after the migration to Active Directory. Populating zones in a production environment In planning your deployment, you should have determined your basic zone requirements and how you will migrate existing user communities to Active Directory. Based on your Chapter 12 • Validating operations after deploying 175 Deploying to the production environment analysis, you should have a zone design with one or more parent zones and the child zones for each parent to define a candidate set of users and groups with the potential to access a given set of computers. Typically, you should focus on one zone at a time, importing and mapping the existing users to Active Directory accounts. You should also determine whether you need to create new Active Directory accounts for any of the existing users or groups you are importing. If possible, you should use Active Directory group membership and role assignments to manage access for UNIX users and groups, you import. Joining a domain in a production environment In smaller organizations or organizations where individual users have permission to join their own workstation to the Active Directory domain, you can run the adjoin command interactively on individual computers.This option works well when computers are distributed across many different domains or when individual users are joining their own workstation to the domain. In larger organizations, however, you may want to use Deployment Manager or a custom script to remotely join a group of UNIX computers to an Active Directory domain. If you develop a custom script for joining a domain, the script should restart services or reboot the computers where it runs. After joining a domain, you should monitor computers closely for a few days before extending the deployment to additional computers. If the join operation fails or users cannot log on, you can run the adleave command to restore the computer to its previous state. Planning and Deployment Guide 176 Chapter 13 Defining role-based access controls for users and computers By default, Centrify Server Suite includes two roles—the listed role and the UNIX Login role—that are required for migration. This section discusses additional role-based controls you can define for better management of privileged access and authorized activity. The following topics are covered: Addressing the business problem of role-based security Creating a root-equivalent role definition Creating a restricted role for a shared service account Creating a role definition for temporary root access Creating additional custom roles and role assignments Working with computer roles If you have well-defined access rules and command privileges in sudoers configuration files, you can import those definitions and use them as the basis for creating custom roles in Access Manager. For information about importing sudoers files and converting the imported definitions into roles, see the Administrator’s Guide for Linux and UNIX. Note Addressing the business problem of role-based security Privilege management and role-based access controls are approaches to the basic business problem of securing an enterprise’s key computer systems and sensitive data. Restricting access based on a user’s role or specific job requirements can require you to make some difficult decisions about who has access to what and why access is granted or denied. These decisions also have the potential to disrupt user activity or existing business processes. Therefore, you should do thorough planning to identify the roles to implement, who should have permission to execute privileged commands, and who should have restricted access. Defining the appropriate rights for users in different roles often requires negotiation with different groups in the organization to achieve the right balance of security and functional capability. Before implementing a solution, you should have these conversations and set expectations about what will change in the user’s environment. Creating a root-equivalent role definition One of the first roles you should plan to create is an administrative role that is equivalent to specifying ALL:ALL in a sudoers file or giving users access to the root password on their computers. The purpose of this role definition is to allow selected users to execute 177 Creating a root-equivalent role definition privileged commands on a regular basis. The role definition allows them to execute commands without being given the root password or having privileges hard-coded in individual sudoers files on multiple computers. Because this role definition enables system administrators to execute privileged commands without the root password, you can improve security for the organization and reduce the chance of an audit finding for access to the root password. You can create this role definition in a parent zone or a child zone to control its scope. In most cases, you should only assign the role in a child zone or on an individual computers. Define the right for running all commands Rights and roles are defined at the zone level and inherited down the zone hierarchy. If you define a right in the top-level zone, it is available in all child zones. If you define a right in a child zone, it can be used in that zone and any of its child zones. Similarly, you can define roles in the top-level parent or any child zone, depending on where you want to make the role available. In this example, the right to run all commands as the root user is defined in a top-level parent zone. The following instructions illustrate how to define a right for running all commands using Access Manager. Examples of scripts that use the Access Module for Windows PowerShell, ADEdit, or the Centrify Windows API are available in other guides, the Centrify Software Developer’s Kit, or in community forums on the Centrify website. To define a right for running all commands as root: 1 Open Access Manager. 2 Expand Zones and select the top-level parent zone. 3 Expand Authorization > UNIX Right Definitions. 4 Select Commands, right-click, then click New Command. 5 On the General tab, type a name for this command right and, optionally, a description for this right, then define the right to run all commands like this: Type an asterisk (*) in the Command field to indicate all commands are allowed. Select Specific path and type an asterisk (*) in the field to indicate that any path is allowed. 6 Click the Restricted Shell tab and deselect the Can be used in a restricted role option if you want to prevent this command from being used in a role that uses a restricted shell environment. 7 Click the Run As tab to verify the command can be used by dzdo and is set to run as root by default. 8 Click OK to use the default environment variable settings and command attributes. Planning and Deployment Guide 178 Creating a root-equivalent role definition Alternatively, you can click the Environment and Attributes tabs if you want to view or set additional properties for this right definition. Create a role definition for running all commands After you have defined the right to allow a user to run any command with root privileges, you can create a role definition for that right. You must create a role definition somewhere in the zone hierarchy before you can assign users to the role. To create a role definition with the right to run all commands as root: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the role definition. 3 Expand Authorization. 4 Select Role Definitions, right-click, then click Add Role. 5 Type a name and description for the new role, then click OK. For example, type a name such as root_equivalent and descriptive text such as Users with this role can run any command with root privileges. Optionally, you can select Allow local accounts to be assigned to this role if you want to assign both Active Directory users and local users to the role. This option is only available when you first create a role definition. You can also click Available Times if you want to limit when the role is available for use. By default, roles are available at all times. If you using the UNIX Login role to grant access to computers in the zone and want to use the default auditing level of Audit if possible, you can click OK then skip to Step 8. 6 If you are not assigning the UNIX role to grant access to computers, click the System Rights tab and select the following options: Password login and non-password (SSO) login are allowed Non-password (SSO) login is allowed Login with non-Restricted Shell Login Note that you cannot set these system rights if you selected the option to allow local users to be assigned to this role. 7 If you don’t want to use the default auditing level, click the Audit tab. Select Audit not requested/required if you have the auditing service enabled but don’t want to audit user activity when this role is used. Select Audit if possible to audit user activity where you have the auditing service enabled. Chapter 13 • Defining role-based access controls for users and computers 179 Creating a root-equivalent role definition Select Audit required to always audit user activity. If the auditing service is not installed or not available, users in this role are not allowed to log on. 8 Select the new role definition, right-click, then click Add Right. 9 Select the right you defined for running all commands as root, then click OK. Assign an Active Directory group to the role As discussed in previous chapters, you should associate Centrify role definitions with Active Directory security groups so that you can manage them using the processes and procedures you have for managing Active Directory group membership. If you are using the recommended deployment structure and naming conventions, you would create a new Active Directory group in the ou=User Roles, ou=Centrify organizational unit using the format ZoneName_Role_RoleName. For example, you would create an Active Directory group named sanfrancisco_role_rootequivalent. You can then assign the new role definition to that group. To assign the role definition to an Active Directory group: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to assign the role definition. 3 Expand Authorization. 4 Select Role Assignments, right-click, then click Assign Role. 5 Select the role definition you created for root-level access, such as root_equivalent, then click OK. 6 Click Add AD Account to search for and select the Active Directory security group you created for the role. Select Group as the object to find. Optionally, type all or part of the group name. Click Find Now, Select the group you created for the role in the results, then click OK. 7 Click OK to complete the assignment. 8 Add members to the Active Directory security group for the role definition using Active Directory Users and Computers, an internal script, or another tool. 9 Test the role assignment by checking whether the user you added to the Active Directory group can execute privileged commands using dzdo in place of sudo. dzdo /usr/share/centrifydc/din/adflush Planning and Deployment Guide 180 Creating a restricted role for a shared service account Details about commands that are executed with dzdo are logged to the secure syslog facility on the computer where they were executed. Creating a restricted role for a shared service account The root-equivalent role definition provides centralized management for a limited number of administrators who have permission to execute all commands on selected computers. Another common reason for defining a role is to execute privileged commands associated with a service account. In many organizations, service account passwords are known by multiple users, making them a security risk. For example, all of the database administrators in the organization might know the password for an oracle service account, an account with permission to perform privileged database operations. Because the password is shared information, it presents a security risk and a potential audit finding that might have costly consequences. Setting up a role definition for a service account involves creating a command right for switching to the service account user and defining a PAM access right for role. Define the right for switching to a service account The steps for defining a right for switching to the service account user are similar to defining the rights for the root-equivalent user, but the definition is more restrictive. To define a right for switching to a service account: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new command right. 3 Expand Authorization > UNIX Right Definitions. 4 Select Commands, right-click, then click New Command. 5 On the General tab, type a name for this command right and, optionally, a description for this right, then define the right to switch to the service account. For example, if the service account is oracle: Type su - oracle in the Command field. Verify the Standard user path is selected. 6 Click the Restricted Shell tab, under Can be used in a restricted role, select Specific user or uid, then type root. 7 Click the Run As tab, deselect Can be used by dzdo. These settings specify that this right can only be used in a restricted shell environment and users can only run the commands that are explicitly allowed in the restricted role they are assigned. If this is the only right defined for a role, the only command users Chapter 13 • Defining role-based access controls for users and computers 181 Creating a restricted role for a shared service account assigned to the role can run is su - oracle. For a role definition with this right to be effective, you would add command rights for the specific database operations users should be allowed to perform after switching to the oracle service account. For example, if the oracle service account is used to run a backup-all-dbs script, you would add a right to allow the execution of that script. 8 Click OK to use the default environment variable settings and command attributes. Alternatively, you can click the Environment and Attributes tabs if you want to view or set additional properties for this right definition. Define a PAM access right to allow logging on The default UNIX Login role allows users to log on using a password or without a password in an unrestricted environment. If you are creating a role definition for a service account, you can use PAM access rights to control the specific PAM-enabled applications users can use to log on. To illustrate controlling how users log on, this example of a restricted role for the oracle service account only allows users to log on with ssh. To define a PAM access right for a specific application: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new PAM right. 3 Expand Authorization > UNIX Right Definitions. 4 Select PAM Access, right-click, then click Add PAM Access Right. 5 Type a name and, optionally, a description of the PAM application for which you are adding an access right. For the Application field, type the platform-specific name for the PAM application as defined in the PAM configuration file or PAM directory. For example, type ssh or sshd. You can also use wildcards in this field to perform pattern matching for the application name. 6 Click OK to save the access right for this PAM-enabled application. Create a restricted role definition for the service account After you have defined the rights that allow a user to log on using a PAM-enabled application and run the su - command for a service account, you can create a role definition for these rights. You must create a role definition somewhere in the zone hierarchy before you can assign users to the role. Planning and Deployment Guide 182 Creating a restricted role for a shared service account To create a restricted role definition for switching to a shared service account: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new role definition. 3 Expand Authorization. 4 Select Role Definitions, right-click, then click Add Role. 5 Type a name and description for the new role, then click OK. For example, type a name such as oracle_service and descriptive text such as Users with this role can start a secure shell session and switch to oracle. By default, this role is available at all times. You can click Available Times if you want to specify days of the week or select times of the day for making the role available. 6 Click the System Rights tab and select at least one option that allow users assigned to this role definition to log on, then click OK. In this example, users open a secure shell to switch to the service account so you might select Non-password (SSO) login is allowed. If a service account instead of a user account is used to log on, it might be mapped to a disabled Active Directory account. In this case, you might select the Account disabled in AD can be used by sudo, cron etc system right to ignore the disabled state and allow the service account to log on. 7 Select the new role definition, right-click, then click Add Right. 8 Select the rights you defined for running the switch user (su -) command and logging on with the PAM application ssh, then click OK. Assign an Active Directory group to the role As discussed in previous chapters, you should associate Centrify role definitions with Active Directory security groups so that you can manage them using the processes and procedures you have for managing Active Directory group membership. If you are using the recommended deployment structure and naming conventions, you would create the Active Directory group in the ou=Service Accounts, ou=Centrify organizational unit using the format ZoneName_Service_RoleName. For example, create an Active Directory group named sanfrancisco_service_oracle. You can then assign the new role definition to that group. To assign the role definition to an Active Directory group: 1 Open Access Manager. Chapter 13 • Defining role-based access controls for users and computers 183 Creating a restricted role for a shared service account 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to assign the role definition. 3 Expand Authorization. 4 Select Role Assignments, right-click, then click Assign Role. 5 Select the role definition you created for using secure shell and switching to the service account access, such as oracle_service, then click OK. 6 Click Add AD Account to search for and select the Active Directory security group you created for the role definition. Select Group as the object to find. Optionally, type all or part of the group name. Click Find Now. Select the group you created for the role in the results, then click OK. 7 Click OK to complete the assignment. Working in a restricted shell environment When users who are assigned to this role want to open a secure shell session and switch to the oracle service account, they will be placed in a restricted shell environment. Within the restricted shell, they can only execute the commands you have added to the role definition until they exit the restricted shell session. In this example, the role definition only allows users to log on using ssh and execute one command, su - oracle. If those users are also assigned the UNIX Login role, they will have access to an unrestricted shell when they close the restricted shell session. If you want users who access a shared service account to work exclusively within the restricted shell environment, you must remove the UNIX Login role assignment in the zone or on the computer where they should only have restricted shell access. Before removing the UNIX Login role assignment, however, you should consider the trade-off between improved operational security and audit compliance and reduced operational access. Depending on the rights you add to a role that runs in a restricted shell environment, the restricted shell can dramatically limit what users can do. Testing access in a restricted shell If you create a role definition for a shared service account that runs in a restricted shell environment, you should test it before migrating any users to it. You can use the dzinfo command with the --test option from a UNIX command prompt. For example, type dzinfo, the user name to test, the --test option, then the full path to the command to test: dzinfo raejames --test “/usr/bin/su - oracle Planning and Deployment Guide 184 Creating a role definition for temporary root access You can also run the dzinfo command with the --roles option to see information about the rights defined for the current user or a specified user. For example, run the following command to check the roles and rights defined for the user raejames: dzinfo raejames --roles For more information about using this command, see the dzinfo man page. What users see in a restricted shell environment For users assigned to a role that runs in a restricted shell, logging on opens a dzsh shell. Within that shell users can only execute the commands you have explicitly defined for them. In this example scenario for a shared service account, typing su - oracle is the only allowed command. If the user types any other command, the shell reports that the command is not allowed. Creating a role definition for temporary root access Another common use case for role definitions occurs when you want to provide temporary access to privileged commands. For example, you might want to provide temporary root-level access to an application developer troubleshooting a problem on a production server or to a consultant you’ve hired for a specific period of time. These types of role definitions are often used as overrides on individual computers. The steps for creating a role definition with temporary root access are similar to the steps for creating the other roles, except that you specify time constraints for the role. The time constraints might include specific hours of the day, days of the week, or a start and end time for a role assignment. The next sections summarize the steps for creating a role with temporary root-level access. Define a command that allows root access The steps for defining a right for switching to the root user are similar to defining the right to run commands for the root-equivalent user, but Centrify recommends you create a separate right definition for this case. To create the right to switch to the root user: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new command right. 3 Expand Authorization > UNIX Right Definitions. 4 Select Commands, right-click, then click New Command. Chapter 13 • Defining role-based access controls for users and computers 185 Creating a role definition for temporary root access 5 On the General tab, type a name, such as emergency_access, for this command right and, optionally, a description for this right, then define the right to switch to the root user: Type the command for switching to the root user. For example, type su - root in the Command field. Verify Standard user path is selected. 6 Click the Restricted Shell tab and verify Can be used in a restricted role and User running the command are selected. These options enable you to use this command right in combination with other rights in a role definition that requires a restricted shell environment. 7 Click the Run As tab and verify Can be used by dzdo and Any user are selected, then click OK. In most cases, you can leave the default settings for the other properties. If you want to make changes, click the Environment and Attributes tabs before saving the new command. Create a role definition for temporarily running as root After you have defined the right to switch to the root user, you can create a role definition for that right. To create a role definition with the right to run the emergency_access command: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new role definition. 3 Expand Authorization. 4 Select Role Definitions, right-click, then click Add Role. 5 Type a name and description for the new role. For example, type a name such as emergency_access and descriptive text such as Users with this role can temporarily run commands with root privileges. 6 Click Available Times to specify days of the week or select times of the day for making the role definition available. For example, you might want to allow access only on Friday, Saturday, and Sunday and deny access the rest of the week. After you have set the days and times for the role definition to be available, click OK. 7 Click OK to save the role definition. Planning and Deployment Guide 186 Creating a role definition for temporary root access 8 Select the new role definition, right-click, then click Add Right. 9 Select the emergency_access command you defined for switching to the root user, then click OK. To use this role, a user must be assigned to the UNIX Login role for the zone or a role definition that has, at a minimum, the following System Rights: Password login and non-password (SSO) login are allowed Login with non-Restricted Shell Assign the role as a computer-level override In most cases, a role definition of this type is assigned to a specific computer rather than applied to all computers in a zone. To make a role assignment on an individual computer: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name that contains the computer for which you want to define a computer-level role assignment. 3 Expand Computers, then select the specific computer on which you want to make a role assignment. 4 Select Role Assignments, right-click, then click Assign Role. 5 Select the role definition you created for temporary root access, such as emergency_access, then click OK. 6 Click Add AD Account to search for and select the Active Directory user who should have temporary root access: Leave User as the object to find. Optionally, type all or part of the use name. Click Find Now. Select the user in the results, then click OK. 7 Deselect Start immediately and set a specific Start time for the role assignment. 8 Deselect Never expire and set a specific End time for the role assignment. 9 Click OK. Chapter 13 • Defining role-based access controls for users and computers 187 Creating a role definition with specific privileges Verify the role assignment on the computer You can run dzinfo --roles or dzinfo username --roles to see if the emergency_access role is available based on the start time for the role definition and the local time of the Linux or UNIX computer. At the specified start time for the role assignment on the local computer, the user you assigned to the emergency_access role can type the following command: dzdo su - root The user is not prompted to provide the password and becomes the root user on the local computer until the specified role assignment end time. The one caveat to be aware of is that the user would continue to have root access after the specified end time if the shell session remains open continuously. If a user is still logged on after the time period has expired, you should check whether the user still requires root-level access. If the session has remained open but the user should no longer have root access, kill the session and log the user off. Creating a role definition with specific privileges The previous examples of role definitions granted broad privileges. You can also use role definitions to grant or deny very specific rights. For example, you might want to deny access to a specific set of commands for a specific group of administrators who otherwise have broad access rights or to strictly limit exactly what commands users can execute. Depending on the requirements of your organization, you might configure these types of role definitions to be used in a restricted or unrestricted shell. The steps for creating a role definition with specific privileges are similar to the steps for creating the other roles. In this example, rights are defined to prevent the execution of specific commands and combined with a right to grant access to all commands not explicitly listed. Define command rights to prevent the use of commands The steps for defining rights that deny access to specific commands are similar to the steps defining other rights, but require different syntax. In this example, you create a “blacklist” of commands users cannot execute. To create the right to switch to the root user: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new command right. 3 Expand Authorization > UNIX Right Definitions. 4 Select Commands, right-click, then click New Command. Planning and Deployment Guide 188 Creating a role definition with specific privileges 5 On the General tab, type a name, such as No password resets, for this command right and, optionally, a description for this right, then define the right: Type !passwd * in the Command field. Verify Standard user path is selected. An exclamation point (!) at the start of a command disallows matching commands. Command rights that start with the exclamation point take precedence over others that don’t. 6 Click the Restricted Shell tab and verify Can be used in a restricted role and User running the command are selected. These options enable you to use this command right in combination with other rights in a role definition that requires a restricted shell environment. 7 Click the Run As tab and verify Can be used by dzdo and Any user are selected, then click OK. In most cases, you can leave the default settings for the other properties. If you want to make changes, click the Environment and Attributes tabs before saving the new command. 8 Repeat Step 4 to Step 7 to create rights for the following specific commands: !groupadd * !useradd * !groupdel * !userdel * Create a restricted shell role definition that uses the command rights After you have defined all of the command rights that disallow specific commands, you can create one or more role definitions to use those rights. For example, you might create one role definition to run in an unrestricted shell that requires users to invoke dzdo to execute privileged commands and another role definition that runs in a restricted shell but does not require users to execute privileged commands using dzdo. The second role might be useful if you have existing scripts that would have to be modified if invoking dzdo is required. To create a role definition for specific command rights: 1 Open Access Manager. 2 Expand Zones and the individual parent or child zones required to select the zone name where you want to create the new role definition. 3 Expand Authorization. 4 Select Role Definitions, right-click, then click Add Role. 5 Type a name and description for the new role. Chapter 13 • Defining role-based access controls for users and computers 189 Creating a role definition with specific privileges For example, type a name such as operators and descriptive text such as Users with this role can run privileged commands but not reset passwords, add or delete users and groups. 6 Click System Rights if you want this role definition to be used in a restricted shell environment as a replacement for the predefined UNIX Login role. To use this role, a user must be assigned to a role definition that has at least one UNIX system right, such as Password login and non-password (SSO) login are allowed or Non-password (SSO) login is allowed. 7 Click OK to save the role definition. 8 Select the new role definition, right-click, then click Add Right. 9 Select all of the command right that disallow specific operations, the command right that grants access to all remaining commands, and a PAM access right, then click OK. For example, you might add the following previously-defined command rights to this role definition: No password resets No user adds No group adds No user deletes No group deletes Root like access (* for all commands not explicitly disallowed) PAM ssh/login allowed This role definition allows members of the operators role to execute any command within a restricted shell environment except those explicitly disallowed, including privileged commands, without invoking dzdo first. You can assign the role definition to the appropriate Active Directory users or groups like the previous role definitions. Create an unrestricted shell role definition that uses the command rights The command rights were configured to allow execution in either a restricted shell environment or an unrestricted shell environment. In an unrestricted shell environment— for example, the default shell environment when users are assigned the UNIX Login role— commands that require administrative privileges must be executed by first invoking the dzdo command, which is similar to invoking commands with sudo. You can control whether users are required to enter a password when they execute privileged commands using dzdo by setting the Authentication required on the Attributes tab when you create a command right. By default, no password is required. If you were adding a new command right that requires authentication, you would click the Attributes tab, select Authentication required then select one of these options: User’s password if users are required to enter their own password before executing the command. Planning and Deployment Guide 190 Creating a role definition with rescue rights Run as target’s password if users are required to enter the password for the target account that is executing the command. In most cases, the default of no password is appropriate because the user has been previous authenticated before invoking dzdo to execute a privileged command and the Run as target’s password option requires the user to know the privileged account password. For example, if the run-as user is root, the Run as target’s password authentication option requires the user to know the password for the root account. The steps for creating the role definition that includes the previously-defined command right are the same for the unrestricted shell as for the restricted shell except that at Step 6 in the System Rights tab you would also select the Login with non-Restricted Shell option if you are not using the UNIX Login role. You could add all of the same command rights to the role definition and grant the same privileges and exceptions. The primary difference between the two role definitions would be how users execute their privileged commands. In the restricted shell environment, users running the adflush command requiring administrative privileges: dzsh $ adflush In the unrestricted shell environment, users running the adflush command requiring administrative privileges: [tulo@ajax]$ dzdo adflush Creating a role definition with rescue rights The Rescue rights option allows you to control which users should be able to log on if problems with the authorization cache or auditing service are preventing all other users from logging on. For example, if you have a computer with sensitive information, such as credit card numbers or intellectual property, you might require auditing for all users in the role with access that computer. If the auditing service is stopped or removed on that computer, no one would be able to log on and use the computer until auditing is restored. If you create a role with the Rescue rights option selected, only the users assigned to that role are able to log on and continue working until the problem that caused the lockout is found and fixed. Users who are in a role granted access because they have rescue rights can still be audited through the system logging facility. However, their activity is not recorded in the audit store database if the auditing service is not available. ---- Chapter 13 • Defining role-based access controls for users and computers 191 Creating additional custom roles and role assignments Creating additional custom roles and role assignments The previous sections described common roles that organizations implement to begin the process of migrating and removing locally defined privileged accounts. For most organizations, locally-defined accounts with privileged access present a security risk and are often identified as a compliance issue by auditors. By creating role definitions similar to those described in this chapter, you can eliminate the need to share root and service account passwords while still providing privileged access to computers where it’s needed. These additional roles are not required, however. You can choose to create them or create a completely different set of role definitions to suit your organization. For example, you might decide to create custom roles specifically tailored to the needs of database administrators, backup operators, and web application developers. Similarly, you might decide to create separate role definitions that are customized with AIX command rights for AIX administrators that are different from the command rights defined for Solaris administrators. As with the common role definitions, additional custom role definitions can be created in the top-level parent zone and available throughout the zone hierarchy or in any child zone. They can also span all the computers in a zone or be assigned specifically to individual computers. If you plan to create your own custom role definitions and role assignments, keep the following key points in mind: Rights associated with roles are cumulative. Users receive all of the rights in all of the roles they are assigned. Users must be assigned at least one role that allows an interactive login or Kerberos authentication to have any access to any computers. For existing users, this is accomplished by assigning the default UNIX Login role during the migration to Active Directory. Users must be given the Login with non-Restricted Shell system right to have access to a full shell. If they assigned in a role without this right, they can only execute the commands explicitly defined for their role. For users who have previously had full shell access, this limitation can be frustrating, unexpected, and unworkable. Before placing or moving users into a restricted role, be sure those users and managers throughout the organization are well-informed and well-prepared for the change and understand the business reasons for the change. Working with computer roles In addition to the role definitions that confer specific rights when assigned to users and groups, Centrify Server Suite provides a mechanism for linking a specific group of computers to a group of users with a specific role assignment. These computer-based access Planning and Deployment Guide 192 Working with computer roles rules, called computer roles, identify computers that share a specific attribute that you define and a set of users with common access rights. For example, you can define a computer role that identifies a set of computers as Oracle database servers linked to a set of users who have been assigned the oracle_dba role. You can then add and remove users from the Active Directory role group linked to the oracle_dba role to grant or remove the rights associated with the oracle_dba role. In this example, the computer role identifies computers that host Oracle databases and the set of users assigned the database administrator role. The same set of computers might include computers with AIX and Solaris operating systems. You could then create separate computer roles that link the AIX computers to a group of AIX administrators and the Solaris computers to a group of Solaris administrators. Planning to use computer roles Because computer roles provide you with a great deal of flexibility for defining access rights, you might want to do some planning before you create new computer roles. For example, before you create a computer role you must know the criteria you want to use to group computers into one or more Active Directory security groups. You must also identify the users who will have a common set of access rights based on the computer grouping. At a high-level, defining a computer role requires the following: Identify computer roles you want to define. Decide on the attribute the computers in a particular group share. For example, you can use a computer role to identify computers in the web farm, that host specific applications, or serve a specific department. Identify the users for the computer role and create Active Directory groups for them. You might need multiple groups because different sets of users have different access requirements. For example, if you are creating a computer role for a set of Oracle servers, you might need separate Active Directory groups for database users, database administrators, and backup operators. Identify the role definitions each set of users should be assigned. You might need to create specific access rights and role definitions for different sets of users. For example, if you are creating access rights for database users, database administrators, and backup operators, the database users may be able to use the predefined UNIX Login role, while administrators need permission to run privileged commands, and backup operators might be assigned a limited set of commands in a restricted shell. How computer roles simplify the management of access rights Deciding how best to use computer roles requires some upfront planning and configuration that might not be part of your initial deployment plan. To make effective use of computer Chapter 13 • Defining role-based access controls for users and computers 193 Working with computer roles roles, you also need to plan for and prepare appropriate role definitions for different sets of users. However, computer roles provide a powerful and flexible option for managing access to Centrify-managed computers using your existing processes and procedures for managing Active Directory group membership. For example, if you create a computer role group for Oracle servers and you deploy a new Oracle server, you simply add the computer account for the new server to the computer role group in Active Directory. If new database administrators join your organization, you simply add them to the Active Directory security group for Oracle database administrators. The computer role links the computer role group to the user role assignment and no additional updates are needed to accommodate organizational changes. If you need to modify the access rights, you can change the role definition and have the changes apply to all members of the group. Because creating and managing computer roles is typically an ongoing administrative task after initial deployment, it is covered in the Administrator’s Guide for Linux and UNIX. Planning and Deployment Guide 194 Chapter 14 Migrating and managing service accounts after deployment After you have migrated accounts for the users who log on to the UNIX computers in your organization, the next step in the deployment is to decide how you want to manage the service accounts for applications in your environment. This section describes the options available and why you should consider migrating local service accounts to Active Directory. The following topics are covered: Why migrate service accounts? Identifying service accounts to migrate to Active Directory Mapping a service account to an Active Directory user Creating a service account role in a zone Why migrate service accounts? A service account is typically a local user and group account dedicated to a specific application or to performing specific operations. In many cases, the service account has escalated permissions that allow it to run privileged operations on behalf of the application it supports. In addition, service accounts often have no password or a password that is well-known to multiple users. Service accounts without a password typically require a local sudoers policy to control access. Service accounts with a shared passwords present a security risk because users can avoid an audit trail and, if passwords are managed locally, they may not conform to the password policies that are enforced for normal user accounts. Therefore, the primary reason for migrating service accounts to Active Directory is to provide better security for accounts that can execute privileged commands, start and stop processes, or run specialized jobs on computers in your network. Note that not all organizations choose to migrate and manage service accounts in Active Directory. There is no technical requirement that you do so. However, Centrify Server Suite provides you with several options for improving the security for service accounts. You should consider the options available, then decide which, if any, are most applicable for your environment. Identifying service accounts to migrate to Active Directory Every UNIX platform has its own set of standard service accounts that are installed by default. For example, most UNIX platforms include services accounts for common applications, such as gopher, mail, ftp, and uucp. For most of these standard service 195 Identifying service accounts to migrate to Active Directory accounts, there’s no business reason to map them to accounts in Active Directory, unless you are trying to eliminate all local accounts on your UNIX computers. In most cases, you can skip migration for the standard service accounts included by default when you installed the operating system as described in “Eliminate default system accounts” on page 119. However, service accounts that run or manage applications or own an application’s files are typically good candidates for mapping to Active Directory users. For example, an Oracle database instance has an oracle service account that owns the database server and the related processes that run in the background. Although usually linked to an application, a service account can also be account created to run scheduled jobs and own the files related to those jobs. Service accounts that are good candidates for mapping to Active Directory users are ones that perform business operations without a password, rely on a shared password known to multiple users, or use shared SSH keys. Service accounts without a password Most UNIX service accounts do not use passwords because UNIX services don’t require an interactive log on to own files or run jobs. The most common way for users to access the service account is through the configuration of the sudoers file. The sudoers file provides rules that allow a subset of users to run the su command and change to the service account user. Mapping this type of service account to an Active Directory user eliminates the need for managing access through local sudoers policies and enables you to enforce the same password complexity rules for service accounts as normal user accounts. Service accounts with a shared password The second most common way for users to access service accounts is with a shared account password. In this scenario, multiple users know the password for the service account and may be able to log on directly as that account. With shared accounts, there is no authoritative way to identify who is logging in to use the account. If you have any service accounts that rely on a shared password, you should consider migrating those accounts to Active Directory to eliminate the shared password. Service accounts that use SSH keys Another common attribute of service accounts is that they often have a set of SSH keys that are available on multiple computers. The SSH keys allow the service account to transfer information from one UNIX computer to another without a password. In this scenario, a specific or the default SSH key for the service account exists in the authorized keys file on each of the computers to which the service account must connect. Planning and Deployment Guide 196 Mapping a service account to an Active Directory user Mapping a service account to an Active Directory user After you identify one or more service accounts as candidates for mapping to an Active Directory user principal, you should identify an appropriate Active Directory user principal for the service account to map to. In most cases, there won’t be an appropriate user already defined in Active Directory, so you will need to create one or more new users. Create a new Active Directory user account You can use Active Directory Users and Computers or another tool to create a new user principal for each service account you are migrating to Active Directory. In most cases, you submit a request for a new account to be created using the procedure defined for your organization. For example, you might submit a request by filling out a service desk ticket and have the request serviced by a member of the account fulfillment team. The steps in this section only apply if you have permission to create new Active Directory user accounts. If you are not responsible for creating new Active Directory user principals, you can skip the following procedure. Note To create a new Active Directory user for a service account: 1 Start Active Directory Users and Computers. 2 Expand the forest domain and the top-level UNIX organizational unit you created in “Selecting the Active Directory location for the top-level OU” on page 47. 3 Select Service Accounts, right-click, then select New > User. 4 Type a name and account login information for the service account, then click Next. 5 Type and confirm the password to use for the service account in Active Directory, select the User cannot change password and Password never expires options, then click Next. The password must conform to your existing password policies for Active Directory users. If you are creating a new user to replace a shared account, type the password currently in use if it is acceptable within your site’s Active Directory rules for password complexity. If you use the shared password, you should change the password after migration. If the current password is not complex enough, you should type a new password that complies or contact the Active Directory Enterprise Administrator for alternatives. 6 Click Finish to complete the creation of the new user principal. Chapter 14 • Migrating and managing service accounts after deployment 197 Mapping a service account to an Active Directory user Map the UNIX service account to the Active Directory user After you create a new Active Directory user principal for the service account, the next step is to map the UNIX account to the Active Directory user. In preparation for this step, you should notify the user community that the service account will be unavailable for a brief period of time, so that you can make the change and verify that everything works as expected. You should then stop the service and any jobs associated with the service account. By notifying users and making the service account unavailable for a period of time, you can prevent the change from affecting people who depend on the service to do their jobs. You can then use Deployment Manager to select the service account and map it to an Active Directory user. To map the service account to an Active Directory user with Deployment Manager: 1 Start Deployment Manager. 2 Navigate to the service account under a specific computer’s Users node or under the Local Account Users node. 3 Select the service account, right-click, then click Map to AD User. 4 Type all or part of the Active Directory user name, click Find Now, then select the account in the results and click OK. Clicking OK updates the configuration on the remote host. You could accomplish the same thing by manually editing the configuration file (centrifydc.conf) or with a group policy. 5 Verify the service starts and executes operations as expected by switching to the root user or the service account and attempting to start the service. 6 Check for messages in the log files that the service account writes to. The entries should be regular service startup messages. You should verify that there are no errors or authentication failure messages. After you verify that the service starts as expected and that any jobs it owns start successfully, you can notify users that the service is available or do additional testing. Depending on your organization and the service account you have mapped to Active Directory, developers, database owners, application owners, and others may want to do full regression testing or execute specific test cases. How the mapped user changes your environment The Active Directory user you create for a service account must be enabled for authentication to work. However, enabling this new user account does present some potential risks to your environment. For example, on UNIX computers, creating the new user may have added a password for a service account that did not previously have one. If the Planning and Deployment Guide 198 Creating a service account role in a zone new password is known to more than one person, the account may be considered a shared account and result in an audit finding. Also, because the new account is a valid Active Directory user principal, anyone with the password can potentially log on to any Windows computer in the forest. By giving the service account a valid password and enabling the account, you have granted access to the Windows network for an account that previously had no access to Windows computers. If you disable the account, you prevent that account from accessing all Windows and UNIX computers, running jobs, or executing required tasks. If you leave the account enabled and the password is compromised, both Windows and UNIX computers are vulnerable to attack. Even if the password is not compromised, failed password attempts could trigger an account lockout policy, rendering the service unusable. Mapping service accounts to Active Directory users is a simple technique for managing access and password complexity for service accounts. If you have strong passwords and carefully control access to the account and its password, you can mitigate the risks. This strategy is also best suited to service accounts that already use a password. However, if granting the service account access to the Windows network presents too great of a risk, you should consider alternatives. Creating a service account role in a zone As discussed in “How the mapped user changes your environment” on page 198, mapping a service account to a Windows user makes the account vulnerable to attack. If the attack results in a guessed password, the attacker would be able to log on as the service account, and, potentially, impersonate the service account on multiple computers on the network using SSH keys. Because the mapped user is also a valid Windows account, a successful dictionary attack might also grant access to Windows computers on the network. If the attack did not result in a guessed password, the failed password attempts could lock out the service account, making it unusable. For service accounts that do not have a password, this vulnerability to a password-guessing attack would be a new security risk that did not previously exist. Therefore, simple account mapping is typically not the best solution for service accounts that are secured using sudoers policies or SSH keys instead of an account password. If simple account mapping is not the appropriate solution for the service accounts in your organization, you may want to consider creating one or more service account roles. Roles enable you to securely manage the privileges of UNIX service accounts through Active Directory. Create an Active Directory user account for the service Because roles are tightly integrated with Active Directory user and group definitions, linking a service account to a role requires that you have an Active Directory user object to work with. In most cases, you should use your existing procedures to request a new user Chapter 14 • Migrating and managing service accounts after deployment 199 Creating a service account role in a zone account. If you are responsible for creating new Active Directory user principals, see “Create a new Active Directory user account” on page 197. Define a new role with system rights Centrify recommends that you create the role definition for a service account in the appropriate child zone. If you want to make the role definition available in all child zones, however, you can create it in the parent zone. The specific selections you make for the role depend on the requirements of the service account for which you are creating the role definition. The steps described here provide general guidelines. Other settings may apply for the role definition in your organization. To create a new role for a service account: 1 Start DirectManage Access Manager. 2 In the console tree, expand Zones and the top-level parent zone. 3 Select the specific zone for which you want to define a role, and expand Authorization. 4 Select Role Definitions, right-click, then click Add Role. 5 On the General tab, type a name and description for the new role, then click OK. 6 Click the System Rights tab and select the following options that allow the service account to access UNIX computers using SSH keys or Kerberos, then click OK: Non-password (SSO) login is allowed Account disabled in AD can be used Login with non-restricted shell In most cases, you should select the Login with non-restricted shell option. This option enables the service account to execute all of its commands in a standard shell. To have the service account run in a restricted shell, you must be able to identify and define rights for all of the commands that the service runs. The service account must also be able to execute all of its commands within the restricted shell (dzsh) environment. For most organizations, this additional security requires significant research and testing before it can be implemented. However, forcing a service account to run in a restricted shell reduces the likelihood that a compromised service account could be used to attack computers on the network. 7 Select the new role, right-click, then click Add Right. 8 Select the login-all right for the zone, then click OK. This predefined right grants access rights for all PAM applications. If you determine that a specific service account should only use a specific PAM application, such as SSH or FTP, you can define a right that only allows that application to be used, then select that right Planning and Deployment Guide 200 Creating a service account role in a zone in the role definition to specify that the service account must use the selected PAM application for access. Create a UNIX profile for the service account and assign the role After you define the role for the service account, you can create a UNIX profile for the service account. In most cases, you should define the UNIX profile for service accounts using machine-level overrides, rather than defining them for zones. Defining profiles for service accounts using machine-level overrides has the following advantages: Profile attributes are not affected the Zone Provisioning Agent. Most service accounts require specific UID and GID values. By specifying these values using a machine-level override, you don’t have to worry about them changing when the Zone Provisioning Agent runs. You can explicitly identify which computers the service account can run on. If you define the UNIX profile for a service account in a zone, all of the computers in the zone are available to the same service account. If you define the UNIX profile using machine-level overrides, the service account only runs on computers where it has a profile and the profile attributes for the service account can be different on different computers in the same zone. You can restrict the scope of the role assignments on a computer-by-computer basis. By defining the UNIX profile using machine-level overrides, you can configure different service account owners for development, testing, and production computers in the same zone. If the profile attributes are consistent across most of the computers in a zone and the service account should run able to run on all of those computers, you can define all or part of the UNIX profile for the parent or child zone to reduce the management of profile attributes on individual computers. However, if the legacy accounts had different attributes on different computers, it is typically best to use machine-level overrides. To create the UNIX profile and assign the service account role using machine-level overrides: 1 Start DirectManage Access Manager. 2 In the console tree, expand Zones and the top-level parent zone. 3 Expand the Child Zones node, select a specific child zone and expand it to display the Computers node. 4 Select computer for which you want to define machine-level overrides, right-click, then click Add User. 5 Click Browse to search for and select the Active Directory user account for the service, then click Next. 6 Select Define user UNIX profile and Assign roles, then click Next. Chapter 14 • Migrating and managing service accounts after deployment 201 Creating a service account role in a zone 7 Select and define the attributes in the UNIX profile for the service account, then click Next. You can use inherited default values for any of the attributes from the default values specified for the zone or selectively override the default values for any of the attributes. For example if you define user defaults using runtime variables in the zone, you can use the inherited values for the Login name, GECOS field, Home directory, and Shell and explicitly define the UID and primary GID for the service account profile. 8 Select the default UNIX Login role, click Remove, then click Add. 9 Click Browse, select the role you created for the service account, then click OK. 10 Click OK to accept the default start and end times for the role assignment, then click Next. 11 Review your selections, click Next, then click Finish. Secure the Active Directory user account At this point, you have an enabled Active Directory user mapped to a UNIX profile for the service account. Having an enabled Active Directory user mapped to a service account, however, still presents a potential security risk as discussed in “How the mapped user changes your environment” on page 198. The next step is to decide how to secure the account to reduce the risk that it will be compromised and allow an attacker to gain access to the computers on your network. Depending on your organization’s infrastructure and requirements, there are essentially two options available: Use SSH public key authentication Use Kerberos authentication Each of these options has advantages and disadvantages and require different steps to configure. Using SSH keys for authentication If you already use distributed SSH keys on hosts that run services, you can take advantage of that infrastructure and secure the service account by disabling the Active Directory user object in Active Directory. This is a common configuration that enables computer-to-computer communication without a pass-phrase. Planning and Deployment Guide 202 Creating a service account role in a zone To use SSH public key authentication: Define the role for the service account with the Account disabled in AD can be used by sudo, cron, etc system right enabled. The role should not allow an interactive login. Ensure that the computers that communicate with each other have the SSH public key in the authorized_keys file. Select the Active Directory user principal you created for the service account and set the Disable Account option. After you disable the account, it cannot be used for authentication on Windows or UNIX computers and it is not susceptible to a password-guessing attack. The account can continue to run UNIX services and use PAM-aware applications to communicate to other computers on the network using the SSH public key. The primary advantage of using SSH authentication is that if you already have SSH public keys distributed to allow computer-to-computer communications, services should continue to work after the Active Directory user principal is disabled. There is very little configuration required to implement this solution. There are, however, disadvantages to using SSH public keys. For example, you must manage key distribution. To allow a UNIX service account to communicate with other UNIX computers, you must generate the SSH key, and distribute that key to all of the hosts that the service account needs to communicate with. In addition, the most common configuration of SSH authentication allows keys to be used without a pass phrase. If the private key is compromised, an attacker could effectively impersonate the service account across multiple computers on the network and reacting to a compromised key can be time-consuming because it requires you to remove the public key from every $HOME/.ssh/ authorized_keys file distributed across the enterprise. Using Kerberos tickets for authentication If you are not already using distributed public-private SSH keys for authentication, you may want to consider using Kerberos authentication. Kerberos authentication is more secure than SSH keys and using Kerberos enables you to centrally manage access for service accounts, but it requires additional configuration. To use Kerberos to secure UNIX service accounts: Install Kerberos-enabled software. You can use the Centrify-provided version of OpenSSH or OpenSSH, version 3.9 or later, if it has been compiled with Kerberos support. Ensure the Active Directory user principal for the service account is enabled. Unlike SSH authentication, Kerberos requires the user account to be enabled to request ticket granting tickets or service tickets for other computers. Use the setspn.exe program to create at least one new Service Principal Name (SPN) for the UNIX service account. Chapter 14 • Migrating and managing service accounts after deployment 203 Creating a service account role in a zone Run the adkeytab command on every UNIX computer where you want to re-use the Active Directory user principal that you created the new SPN for. This command creates a Kerberos keytab file that is only readable to the service account user. The keytab file allows the service account to request a ticket granting ticket so that it can communicate with other UNIX computers. Use the kinit command to request a ticket granting ticket from Active Directory for the UNIX service account. The ticket granting ticket (TGT) allows the service account to request additional host tickets for SSH communications to other UNIX computers. Use the klist command to list the tickets for the UNIX service account. Testing and migration If you decide to use Kerberos for service accounts, you should test the computer-to-computer communication. If you are migrating from authentication using SSH public-private keys, you can move ore rename the authorized_keys file for the service account on remote hosts to test authentication. After you test the Kerberos authentication of SSH communications and are certain that it works, you can delete the id_rsa, id_rsa.pub, and authorized_keys files for the service account that you have migrated. Using Kerberos gives you consolidated control over UNIX service accounts. If an account is disabled in Active Directory, it cannot be used after any existing tickets expire. Renewing ticket granting tickets If the service account runs scheduled jobs, you may want to create a crontab entry for the UNIX service account to run the kinit command at a regular interval so that the TGT doesn’t expire. If the ticket expires and the kinit command isn’t embedded in the job the service run, computer-to-computer communication will fail until the next time kinit is executed. For example, you may want to add logic to run klist to check whether there is a valid TGT, then run kinit is no valid TGT is found. For information about using the setspn.exe program, see the Microsoft documentation for that program. For information about using Centrify command line programs, see the corresponding man page. More information Remove local service accounts from remote computers After you have migrated service accounts to roles in Active Directory, tested operations, and verified that commands and jobs run as expected, you can remove the local service accounts from remote computers to prevent them from being used. For most organizations, removing local service accounts is a recommended security practice. However, you should leave the default operating system accounts as local accounts. In most cases, those accounts are not migrated to Active Directory. The default accounts for each platform are listed in the user.ignore file that is installed with the platform-specific Centrify agent. Planning and Deployment Guide 204 Chapter 15 Planning to deploy in a demilitarized zone (DMZ) Many organizations require both an internal network for corporate assets and a physical or logical subnet that exposes resources or services to a larger, external network, such as the Internet. For security, computers and resources in the external-facing perimeter network or demilitarized zone (DMZ) have limited access to the computers in the internal network. Because communication between the computers in the DMZ and the corporate network is restricted and protected through the use of a firewall, there are specific constraints on configuring authentication and authorization services. This section describes how to deploy Centrify components in specific DMZ scenarios. The following topics are covered: Identifying the computers to protect Creating a forest and trusts for a DMZ Defining zones for computers in the DMZ How to join a domain with a read-only domain controller (RODC) Enabling NTLM authentication through a firewall Identifying the computers to protect The computers that are most vulnerable to attack are computers that provide services such as e-mail, host external-facing web applications, and manage network routing through Domain Name Servers (DNS). Computers that provide these services are typically isolated from the internal network on their own subnet and allowed to communicate with the internal network through specifically designated channels. This configuration allows computers in the DMZ to provide services to both the internal and external network, but controls the traffic allowed to be routed between the computers in the DMZ and the internal network clients. Creating a forest and trusts for a DMZ Centrify recommends that you create a separate Active Directory forest for the computers to be placed in the network segment you are going to use as the demilitarized zone. You should then establish a one-way outgoing trust from the internal forest to the DMZ forest. Defining a one-way trust allows existing internal forest users to access resources in the DMZ without separate credentials or being prompted for authentication. The one-way 205 Defining zones for computers in the DMZ trust also prevents any accounts defined in the DMZ forest from having access to the internal network. Accounts defined in the DMZ forest can only access computers inside the DMZ domain. If a privileged account in the DMZ forest is compromised, that compromise is limited to the scope of the DMZ forest. For Centrify, the one-way trust enables you to: Use the internal forest for authentication and authorization services for user accounts. Define computer accounts in the DMZ domain without permission to read data from the trusted domain of the internal forest. In most cases, you should not use an existing Active Directory domain when deploying Centrify agents in a DMZ. Using an existing domain requires opening additional ports through the internal firewall to allow computers to connect directly to the domain controllers in the internal forest. Allowing computers in the DMZ to connect directly to the internal forest implicitly grants access to resources behind the internal firewall. Defining zones for computers in the DMZ You should create one or more zones in the DMZ forest and specify those DMZ zones when computers join the DMZ domain. You should also create and manage UNIX group profiles in the DMZ domain. However, you should define user accounts and UNIX profiles for in the internal forest and not the DMZ forest. Defining user accounts in the internal forest ensures that users can use a single password to authenticate across all network resources, including those in the DMZ. Planning and Deployment Guide 206 Defining zones for computers in the DMZ The following figure provides an overview of the basic architecture for deploying Centrify agents when you have computers in a DMZ. To enable authentication for resources in the DMZ, users must have: A valid Active Directory user principal. A complete UNIX profile in one or more zones in the DMZ. A UNIX Login, listed, or custom role assignment that allows access computers in the DMZ. Creating a firewall and securing the network You should establish firewall rules that allow communication from the DMZ domain controllers to the internal domain controllers. Other computers in the DMZ, for example, the UNIX servers you want to isolate from the internal network, should have limited access to the corporate network. The most common exception is to allow communication from the corporate network to the DMZ network using port 22. The client and server port requirements to enable communication through the firewall depend on the Windows operating system you have installed on the domain controllers and the functional level of the forest. For information about the specific ports to open and the services that use the ports, see Microsoft Active Directory documentation, such as How to configure a firewall for domains and trusts. In addition to configuring a firewall that minimizes exposure to the corporate network, you should remove insecure network protocols, if possible, or replacing insecure authentication programs, such as POP3 and FTP, with Kerberos-enabled programs. These security steps Chapter 15 • Planning to deploy in a demilitarized zone (DMZ) 207 How to join a domain with a read-only domain controller (RODC) reduce the potential for password exposure and the risk of an account in the corporate domain being compromised. How to join a domain with a read-only domain controller (RODC) With Windows Server 2008, you have the option of installing read-only domain controllers (RODC). Read-only domain controllers enable you to deploy a domain controller that hosts read-only partitions of the Active Directory database. Deploying a read-only domain controller enables you to make Active Directory data and reliable authentication services available in locations that cannot ensure physical security required for a writable domain controller. You can also deploy read-only domain controllers to handle special administrative or application management requirements. For example, you may have line-of-business applications that are required to run on a domain controller, or application owners who must have access to the domain controller to configure and manage operations but not allowed to modify Active Directory objects as they could with a writable domain controller. You can grant a non-administrative domain user the right to log on to the read-only domain controller while minimizing the security risk to the Active Directory forest. For more information about read-only domain controllers, see the Read-Only Domain Controller (RODC) Planning and Deployment Guide. To join a domain that has a read-only domain controller: 1 Create a computer account for the computer in the DMZ that will connect to the read-only domain controller using a writable domain controller as described in “Creating computer objects for the target set of computers” on page 130. You can create the computer account using the Access Manager console, an adedit script, or using the adjoin command with the --precreate command line option. However, be sure to create the computer account in a DMZ zone. Note 2 Use Active Directory Sites and Services or the repadmin program to replicate the computer account in the read-only domain controller. For example, In the console tree, expand Sites, and then expand the site of the domain controller that you want to receive configuration updates. Expand the Servers container to display the list of servers that are currently configured for that site. Double-click the server object that requires the configuration updates that you want to replicate. Right-click NTDS Settings below the server object, and then click Replicate configuration to the selected DC. In the Replicate Now message box, click OK. Planning and Deployment Guide 208 Enabling NTLM authentication through a firewall 3 (Optional) Open a Command Prompt and use the repadmin /showrepl command to verify successful replication on the read-only domain controller. 4 Block the route from the UNIX computer to the writable domain controller, if necessary. 5 Run the adjoin command with the self-service option. For example: adjoin mydomain.local --password c%ntrify --name quad90 --selfserve Because you have already created the computer account in Active Directory, you don’t need to specify the zone to join the domain. Enabling NTLM authentication through a firewall Having a domain controller in the perimeter forest trust the internal domain requires you to open up ports through the firewall. The specific port requirements depend on the Windows operating system version and functional level of the forest. As an alternative, you can use NT LAN Manager (NTLM) authentication to allow Active Directory users in the internal forest to log on to computers in the perimeter forest. Using NT LAN Manager (NTLM) authentication enables you to have a more restrictive firewall with a one-way forest trust between the perimeter forest and the internal forest. For example, if the firewall prevents you from using the ports required for Kerberos authentication or if you have limited communications between the forests to a specific port, you can use NTLM authentication to pass authentication requests from the domain controllers in the perimeter domain to the internal domain controllers through the transitive trust chain. This configuration still requires a one-way trust relationship between the internal forest and domain controllers outside of the firewall. Note Configuring the domain controllers that allow NTLM authentication You can use the pam.ntlm.auth.domains configuration parameter to specify the domain controllers in the DMZ forest that should use NTLM authentication. This parameter requires that you specify the domain controllers using their Active Directory domain names. In addition to setting this parameter, you must be able to map NTLM domain names to their corresponding Active Directory domain names to support looking up user and group information in the cache. Configuring a map that converts NTLM domains to Active Directory For Centrify to automatically construct this map, it must be a able to send LDAP search requests to the domain controllers in the corporate forest. If the firewall restrictions will block these search requests, you must manually define a topology map that converts NTLM domain names into Active Directory domain names. To manually configure how Active Chapter 15 • Planning to deploy in a demilitarized zone (DMZ) 209 Enabling NTLM authentication through a firewall Directory domain names map to NTLM domain names, define entries in the /etc/ centrifydc/domains.conf file using the following format: ActiveDirectory_Domain_Name: NTLM_Domain_Name For example: arcade.com: ARCADE ajax.org: AJAX You can refresh the list of domain controllers in DMZ forest at any time by modifying the configuration parameters, then running the adreload command. Planning and Deployment Guide 210 Chapter 16 Managing and evolving operations after deployment In previous sections, you prepared for deployment, migrated existing users, configured automated provisioning for new users and groups, and added one or more custom roles for privilege management. Most of these activities are related to the initial deployment and extending deployment to additional sets of target computers and interactive users. This section discusses management activity, evolving operational security, and adding services to extend authentication and authorization after deployment. Often, at this stage, the deployment project team begins to transition activity to an operations team or support staff. The following topics are covered: Understanding how Centrify software affects operations Troubleshooting logon failures Evaluating additional services and integrations Getting assistance from Centrify Support Understanding how Centrify software affects operations Through Active Directory, Centrify software provides a consolidated solution to authentication, authorization, and policy management for Linux, UNIX, and Mac OS X computers. Because of this consolidation, however, you may need to make changes or additions to the IT tasks or operational procedures you currently have in place. Therefore, when you deploy Centrify software in a production environment, you should consider how it impacts the management tasks typically performed by operations staff members. The routine tasks that may be affected by adding Centrify software to the environment fall into the following categories: Change management System administration Security administration Service desk operations Capacity management 211 Understanding how Centrify software affects operations Understanding change management activities Change management typically involves testing and installing updates to the operating system or installed applications. For example, most organizations follow a controlled process for reviewing and implementing changes to the operating system because of patches or new releases. If you are preparing to update the operating system, the support staff should also plan to test that user log-ons and role assignments continue to function correctly after update. If a system patch or update affects the operation of Centrify software, you should contact Centrify Customer Support to determine whether the patch is supported. Staff members should also periodically review new and maintenance releases of Centrify software to get the latest features, fixes to known issues, and enhancements requested by Centrify customers. You can use Deployment Manager to check for updated software packages on a regular basis. After downloading the software, you can review the release notes included in each package to determine what’s changed and the suitability of the update for your organization. Understanding system administration activities Most system administration tasks involve managing users and groups. After deploying Centrify software, this information is centralized in Active Directory for both Windows and non-Windows computers. Therefore, any administrative action for a user account affects that user on both Windows and UNIX computers. For example, if you disable a user account in Active Directory, the user will be unable to log on to any Windows or UNIX-based computer in the forest. Typically, there is a period of time where staff members must use one set of steps for provisioning users and groups on the computers not yet joined to the domain and another set of steps for provisioning users and groups on computers that have successfully joined the domain. After you complete the migration to Active Directory, you can leverage the processes and tools you use for provisioning Windows users and groups for ongoing administration of UNIX users. For example, you can use Active Directory Users and Computers, in-house custom scripts, Access Manager, ADEdit, or another management tool to perform administrative tasks. After deployment, you should prepare any site-specific or platform-specific instructions the operations staff should follow if you are making changes to the processes or tools they are familiar with. Understanding security administration activities Security administration involves ensuring that operators are granted the appropriate rights for administering the computers and attributes that are required as part of their job but are prevented from accessing or changing computer settings outside their areas of responsibility. Planning and Deployment Guide 212 Understanding how Centrify software affects operations Centrify enables administrators to explicitly delegate management tasks to the appropriate users and groups on a zone-by-zone basis. Delegated administration Centrify enables you to use existing Active Directory password policy rules, such as the minimum password length, complexity requirements, expiration, and allowed number of logon failures to allow before locking an account for both Windows and UNIX users. Password policy enforcement Centrify enables you define rights, roles, and role assignments to control what users can do and who can execute privileged commands. You can also map privileged local accounts to Active Directory accounts to ensure better password security for those accounts. For example, the local root user account has full access to all data and can manipulate all settings on a UNIX computer. Mapping the local root user to an Active Directory user account enforces the Active Directory password policies on the account and makes it more difficult for an unauthorized user to obtain escalated privileges on the UNIX computer. Privileged account management Understanding service desk operations Active Directory and Centrify simplify help desk and service desk operations by: Enabling centralized administration for tasks such as adding new users or granting access to new computers. Consolidating user passwords and reducing the need for password resets. Simplifying troubleshooting for log on failures for UNIX users. You should provide help desk staff with troubleshooting instructions to help them diagnose and resolve failed authentication or authorization tickets. Understanding capacity management activities During the deployment of Centrify agents, you should monitor and analyze network traffic and domain controller replication to determine how well your environment handles the extra load of UNIX users and computers in Active Directory. In general, Centrify software is configured to use minimal system resources and network bandwidth. In practice, however, you should monitor and evaluate the volume of traffic to determine its impact on performance across the network and the performance experienced by users logging on to UNIX workstations and servers. If the network traffic or resource usage exceeds your expectations, you may want to modify the default configuration to better suit your network topology. For example, Centrify provides numerous group policies and configuration parameters that you can modify to optimize network activity or control how much data is stored locally on individual computers. Chapter 16 • Managing and evolving operations after deployment 213 Understanding how Centrify software affects operations Determining whether you need more resources In most cases, deploying Centrify software does not noticeably affect the performance of the network or domain controllers. However, if you have a widely distributed network or replication delays, you should analyze your network’s capacity to handle the additional load of UNIX users and computers to determine whether you need to make changes to ensure optimal performance and availability. For example, the following factors may require you to allocate additional resources: If the UNIX computers are in a different physical location than the domain controllers that they access, you may want to install a domain controller on a computer that is physically closer to the UNIX computers to reduce long-distance network traffic and the chance of replication delays. If you need to ensure availability in the event of a network or server failure, you should ensure that you have an adequate number of domain controllers to support the UNIX computers when they need to fail-over to a backup domain controller. If you add a large number of UNIX users to the Active Directory domain, apply your standard method for balancing domain controllers per number of users. If you add a large number of UNIX computers to the Active Directory domain, apply your standard method for balancing domain controllers per numbers of computers. If you move a large number of UNIX users and groups from a local directory (/etc/ passwd and /etc/group) to Active Directory, you may need additional network bandwidth because authentication and authorization requests are now done over the network. For more information about modifying configuration parameters, see the Configuration and Tuning Reference Guide. Understanding how caching facilitates lookups Centrify agents store credentials in a local cache to reduce the network traffic required to look up information in the directory. For example, if a user executes the directory listing command in a UNIX command shell, the command looks up and displays a listing of files along with their attributes, such as the owner of each file. ls –l However, a file’s owner is stored as a number—the user’s UID—on UNIX-based computers, but because the ls command displays the owner as a name and not a number, the ls command must look up the actual user name associated with the file owner’s UID. Because UNIX UIDs and user names are stored in Active Directory, this lookup request must be serviced by Active Directory. If a large number of files are displayed when the ls command is run, this creates a substantial amount of lookup traffic between the UNIX computer and the Active Directory domain controller. Centrify reduces this traffic by caching the lookups so that the information does not have to be retrieved from the Active Directory each time a lookup is required. Commands such as Planning and Deployment Guide 214 Troubleshooting logon failures check the local cache first for the relevant information instead of retrieving the information from Active Directory every time. ls Troubleshooting logon failures If a user attempts to log on to a computer that is in a Centrify zone and the logon fails, the problem is typically caused by one of the following: Users attempting to log on to a computer they are not authorized to use. Users have an incomplete profile in the zone where the computer they are attempting to use is located. Users have not been assigned an appropriate role that allows logon access. Users have typed their non-Active Directory password or typed the wrong password more times than allowed. Local or group policy settings are applied to the computer to prevent access. To investigate these potential problem areas: 1 Check whether the local UNIX computer can connect to the Active Directory domain controller. Log on to the computer using a locally authenticated user, such as the local root user. Run the ping command with the name of an appropriate domain controller in the forest. For example, if the local computer is joined to the snowline.org forest, the command might look similar to this: su Password: ping shasta.snowline.org If the command receives a reply from the domain controller, the DNS service is functioning and the local computer is able to locate the domain controller on the network. If the ping command does not generate a reply, you should check your DNS configuration and check whether the local computer or the domain controller is disconnected from the network. 2 Check Active Directory information by running the adinfo command. The output from this command should appear similar to the following: Local host name: Joined to domain: Joined as: Current DC: Preferred site: Zone: Last password set: CentrifyDC mode: magnolia snowline.org magnolia.snowline.org shasta.snowline.org Default-First-Site-Name snowline.org/Centrify/Zones/cascade 2007-12-21 11:37:22 PST connected Chapter 16 • Managing and evolving operations after deployment 215 Troubleshooting logon failures If the mode is disconnected, check whether adclient is running and network connectivity. On a slow network adclient may drop the connection to Active Directory if there is a long delay in response time. If the output displays an <unavailable> error, you should try running the adleave command to leave Active Directory, re-run the adjoin command, then re-run the adinfo command. For example: adleave --force adjoin --user skip --zone cascade snowline.org Password: adinfo If a problem still exists, check the DNS host name of the local computer and the domain controller, the user name joining the domain, and the domain name you are using. 3 Check the clock synchronization between the local UNIX computer and the Active Directory domain controller. If the clocks are not synchronized, reset the system clock on the UNIX computer using the date command. 4 Check for denied users and groups in the /etc/centrifydc/centrifydc.conf file or the Login Controls group policy. For example, open the centrifydc.conf file in a text editor, such as vi: vi /etc/centrifydc/centrifydc.conf Search for the pam.deny.users line and make sure that the user who is trying to log on is not listed. Search for the pam.deny.groups line and make sure that the user who is trying to log on is not a member of any group that is listed on this line. 5 Check the contents of the system log files or the centrifydc.log file after the user attempts to log on. You can use information in this file to help determine whether the issue is with the configuration of the software or with the user’s account. 6 Check for conflicts between local user accounts and the user profiles in Active Directory by running the getent command. For example: getent passwd This command displays a list of local and Active Directory users with access to the computer. If the user’s name is not listed but other Active Directory users are listed, the problem may be in the user’s Active Directory account settings or UNIX profile. If no Active Directory users are listed in the output of the command, check whether adclient is running and whether the Active Directory domain controller is available. 7 Check the user’s Active Directory account settings using Access Manager or Active Directory Users and Computers. For example: Check whether the user has a UNIX profile for the local computer’s zone. Planning and Deployment Guide 216 Evaluating additional services and integrations If the user has a UNIX profile in the zone, check whether the profile is currently enabled. If the user has an enabled UNIX profile, check the user’s group membership to determine whether it is a local group defined in a different domain than the computer account. Check whether the user’s account has been disabled or locked. Check whether any user-based group policies have been applied to the user account that may prevent access to the UNIX computer. 8 Enable logging of adclient activity using the addebug command. For example: /usr/share/centrifydc/bin/addebug on This command enables extensive logging of each operation performed by the adclient process in the /var/log/centrifydc.log file. You can use the information in this file to further diagnose the cause of any problems or to enable Centrify’s support staff to assist with resolving any issues. Evaluating additional services and integrations Once you have deployed Centrify agents to implement an Active Directory-based security and directory services, you may want to explore other ways to take advantage of Active Directory’s infrastructure. In evaluating ways to extend your security and directory services, you must first understand: How are the UNIX servers and workstation that are joining the domain used? Which applications are accessed locally and which applications are accessed by remote users How are the servers and workstations managed and are administrators local users or remote users Whether there are specific additional IT services you want to enable Whether there are specific controls you want to apply As a starting point, you should consider whether computers joining the domain are workstations that primarily support local logon sessions or servers that require few, if any, local logon sessions. In many cases, UNIX computers have few interactive users but are frequently used as application servers that host database or web applications. For those computers, you should determine whether Active Directory authentication and authorization is primarily for administrators who manage the server or for users who log in to access the application. Some of the ways you can extend and evolve the deployment of Centrify software include: Adding authentication service for applications Adding custom reports for auditing UNIX properties Chapter 16 • Managing and evolving operations after deployment 217 Evaluating additional services and integrations Adding group policies Adding support for NIS clients Using programs optimized for Kerberos authentication Integrating with products from other vendors Adding authentication service for applications Because Active Directory and Centrify use Kerberos and LDAP standards, many Kerberos-enabled or PAM-enabled applications can use Active Directory for authentication and authorization service with little or no configuration. One way you can evolve your deployment is to add support for single sign-on to additional applications. Supporting single sign-on for Kerberos-enabled applications The primary way that Centrify supports single sign-on is through Kerberos. Kerberos provides a ticket-based authentication mechanism that is the default method for authentication in Active Directory. When a user logs on to a computer that uses Active Directory authentication, a Kerberos ticket is issued to the user and that ticket allows the user to access data, applications, other computers, and other sessions without having to present credentials again. This silent authentication that takes place in the background as users browse network shares or run applications is the key to enabling a single sign-on experience. Many applications are Kerberos-enabled by default or can be configured to support the use of Kerberos tickets. By default, when a computer joins an Active Directory domain, Kerberos requests are forwarded and serviced by the Kerberos Key Distribution Server on the Active Directory domain controller. Therefore, in most cases, existing Kerberos-enabled applications can authenticate and authorize access without any modification. If you use an application that is not configured to use Kerberos authentication by default, however, you may need to modify configuration options or use specific command line options to support single sign-on. In addition, users must be assigned to a role with the Non-password (SSO) login is allowed system right. This right is enabled in the predefined UNIX Login role. If you create custom roles and want to allow single sign-on, you should select this system right when defining the role. Supporting single sign-on for PAM-aware applications Pluggable Authentication Modules (PAM) provide a flexible mechanism for authenticating users regardless of the underlying authentication system. Most programs and applications that rely on user authentication use PAM. The Centrify agent uses its own PAM module, pam_centrifydc.so, to direct PAM requests to Active Directory. Therefore, in most cases, existing PAM-enabled applications can Planning and Deployment Guide 218 Evaluating additional services and integrations authenticate and authorize access without any modification and support single sign-on without any special configuration. One known exception, however, is that most database applications support PAM authentication, but do not enable it by default. To support single sign-on for database applications, you should modify the database configuration to enable PAM authentication. In addition, users must be assigned to a role with the Non-password (SSO) login is allowed system right. This right is enabled in the predefined UNIX Login role. If you create custom roles and want to allow single sign-on, you should select this system right when defining the role. Supporting Active Directory authentication for Apache and Java applications Most Web and J2EE platforms provide their own native authentication and authorization services for Web developers to use. With Centrify Server Suite, you can choose to extend the native interfaces to enable web applications to provide single sign-on capability or redirect authentication requests to Active Directory instead of a native authenticator. Supporting database server applications Most database servers provide their own native authentication and authorization services. With Centrify Server Suite, you can choose to extend the native interfaces to enable supported database servers to provide single sign-on capability or redirect authentication requests to Active Directory instead of a native authentication service. Adding custom reports for auditing UNIX properties Centrify Server Suite includes several default reports that you can use to monitor and audit access to the computers in your environment. The default reports provide detailed information about your UNIX users, groups, computers, zones, and licenses, and enable you to verify which users have access to specific computers, zones, or applications. Default reports also provide easy access to the information that you require for auditing, business planning, and regulatory compliance. After you generate a report, you can save the report in the following formats: Microsoft Excel (.xls) Microsoft Word (.doc) Adobe Acrobat (.pdf) XML document (.xml) For example, after generating a report with information about the users in each zone, you can save it as a Microsoft Excel spreadsheet (.xls), and import the information into an Excel Workbook to create a Charge Back report on account usage for each department. One of the most common ways to evolve the Centrify Server Suite deployment is by creating custom reports that are specifically tailored to your organization and auditing requirements. The Access Manager console includes a Report Wizard that allows you select Chapter 16 • Managing and evolving operations after deployment 219 Evaluating additional services and integrations the specific Active Directory objects and properties and the relationships on which you want to base the report. For information about creating and generating custom reports, see the Administrator’s Guide for Linux and UNIX. Adding group policies For many companies, centralized policy management and configuration control is just as important as centralized identity management. With Centrify Server Suite, you can apply group policy settings from Active Directory to the non-Windows computers and UNIX users. Evaluating existing policy settings If you have applied any domain-wide policies in the Active Directory forest, you should review what the policy settings are and where they are enforced for Windows-based computers. You should then evaluate which policy settings, if any, are applicable for computers running UNIX, Linux, or Mac OS X operating systems. For example, most organizations establish a policy for password complexity. You can view your current password policy settings by clicking Domain Security Policy under Administrative Tools to open the Default Domain Security Settings, then select Password Policy. If you enable any password policy settings for the domain, they automatically apply to UNIX users and managed computers because Active Directory uses these settings when authenticating users. If you enable or change any of the default domain policy settings, you should consider how they affect UNIX users and computers. For information about the standard Windows group policies that apply for UNIX, see the Group Policy Guide. Adding Centrify-specific group policies to a GPO You can add Centrify-specific configuration settings to any Group Policy Object applied to any site, domain, or organizational unit in the Active Directory forest. You can then manage the specific policies enabled and settings applied centrally through the Group Policy Object Editor on Windows. Each GPO can consist of configuration information that applies to computers, configuration information that applies to users, or sections of policy that apply specifically either to users or to computers. You link a GPO to an Active Directory organizational unit, domain, or site. Windows then applies the policy settings based on an established hierarchical order. The Centrify-specific group policy settings available for users and groups are defined separate administrative templates (.adm or .xml files) that can be added to any GPO. If you enable any of the policy settings, they are written to a virtual registry on the UNIX computer. The Centrify agent then runs a set of local mapping programs that read the virtual registry and modify local configuration files to implement the setting defined by the group policy. You can also create your own custom administrative template and mapper programs to implement custom group policies. Planning and Deployment Guide 220 Evaluating additional services and integrations For more detailed information about creating and managing Centrify-specific group policies, see the Group Policy Guide and Active Directory documentation. Adding support for NIS clients You can extend Centrify software to provide NIS service from a Centrify-managed computer, acting as a NIS server, to NIS client requests using Active Directory as the central data store for NIS maps. There are many scenarios in which adding the Centrify Network Information Service (adnisd) to your infrastructure can enable you to integrate Centrify and Active Directory with other enterprise solutions. For example, the adnisd Network Information Service and Centrify zones can be used to centrally manage and map multiple UNIX identities to a Windows user account for access resources stored on EMC Celerra Network Servers or Network Appliance Filers. Active Directory remains the central identity store and zones remain the primary way of mapping UNIX profiles to a user account, but the Centrify Network Information Service enables you to deliver the appropriate information to servers and devices across the network. Using the Centrify Network Information Service in conjunction with the Centrify agent is a scenario like this provides the following advantages: Redundancy. As a NIS client, the Celerra Network Server can find NIS servers by broadcasting on the local subnet. If a subnet hosts more than one Centrify-managed computer acting as a NIS server, the Celerra or NetApp server can fail over from one NIS server to another NIS server on that subnet, thus enabling multiple NIS paths to the same data held within Active Directory. Multi-domain support. The Centrify NIS service can provide user mapping data to NIS clients who may have an account anywhere within an Active Directory forest, including remote or child domains. Through the Active Directory Global Catalog, Centrify agents can find user mapping information for users anywhere across the forest. Extending your deployment with the Centrify Network Information Service also enables you to centrally manage network information and publish custom information to NIS clients throughout the network without modifying the underlying Active Directory schema. Using programs optimized for Kerberos authentication As a management platform, Centrify provides it own versions of commonly-used open source programs. For example, the following packages have been optimized to work with Centrify software and Active Directory: Standard MIT Kerberos utilities, such as kinit and kdestroy, are installed with the agent to support Kerberos keytab management for accounts in Active Directory. Kerberos-enabled client programs such as OpenSSH, support Kerberos authentication and single sign-on for secure connections between Centrify-managed computers. Chapter 16 • Managing and evolving operations after deployment 221 Getting assistance from Centrify Support An enhanced version of PuTTY supports Kerberos authentication for secure, remote access from Windows computers to Centrify-managed computers. Integrating with products from other vendors Centrify software also integrates with products from many other vendors, such as Splunk, IBM DB2, SAP Netweaver and Secure Network Communication (SNC), and Quest ActiveRoles Server. In addition to Active Directory, you can use Centrify software to extend other Microsoft services such as Services for Network File System (NFS), Microsoft Identity Integration Server (MIIS), and Microsoft Active Directory Federation Services (ADFS). For more information about add-on packages, integration with other systems, or configuring Centrify software to work with other products, see the Resource Center on the Centrify website. Getting assistance from Centrify Support Centrify recommends you take the following steps if you need assistance with an issue or have questions about the operation of Centrify components: 1 Check the Centrify Support Portal on the Centrify website to search the Knowledge Base to see if your problem is a known issue or something for which there is a recommended solution. Open http://www.centrify.com/support/login.asp in a Web browser. Log in using your customer account information and password. Click Find Answer and type one or more key words to describe the issue, then click Find to view potential answers to your question. For example, to search for known issues, type known issues and click Find to see articles related to the known issues in different releases. If your issue is not covered in an existing Knowledge Base article or the Centrify documentation set, you should open a case with Centrify Support. 2 Click Log a Case to open a new case using the Centrify Support Portal. Alternatively, you can contact Centrify Support by email or telephone, if you prefer. Worldwide contact information is available in the “How to open a case and collect information for Centrify Support” Knowledge Base article (KB-0301). 3 Provide as much information as possible about your case, including the operating environment where you encountered the issue, and the version of the Centrify product you are working with, then click Submit to open the case. Planning and Deployment Guide 222 Getting assistance from Centrify Support Before or after opening a support case, you may need to collect additional information about your environment. To help ensure your issue gets resolved quickly and efficiently, you should take the following steps to gather as much information as possible: 1 Verify the Centrify agent is running on the computer where you have encountered a problem. For example, run the following command: ps –ef | grep adclient If the adclient process is not running, check whether the watchdog process, cdcwatch, is running: ps –ef | grep cdcwatch The cdcwatch process is used to restart adclient if it stops unexpectedly. 2 Enable logging for the Centrify agent. For example: /usr/share/centrifydc/bin/addebug on 3 Create a log file for the Mac OS X Directory Service. For example: killall –USR1 DirectoryService 4 Run the adinfo command to generate a report that describes the domain and current environment. For example: adinfo --diag --output filename 5 Duplicate the steps that led to the problem you want to report. For example, if an Active Directory user can’t log in to a Centrify managed computer, attempt to log the user in and confirm that the attempt fails. Be sure to make note of key information such as the user name or group name being, so that Centrify Support can identify problem accounts more quickly. 6 Verify that log file /var/log/centrifydc.log or /var/adm/syslog/centrifydc.log exists and contains data. 7 Generate information about Active Directory domain connectivity and configuration files by running the following command: adinfo --support This command writes output to the file /var/centrify/tmp/adinfo_support.txt. 8 If there is a core dump during or related to the problem, save the core file and inform Centrify Support that it exists. Centrify Support may ask for the file to be uploaded for their review. If the core dump is caused by a Centrify agent process or command, such as adclient or adinfo, open the /etc/centrifydc/centrifydc.conf file and change the adclient.dumpcore parameter from never to always and restart the Centrify agent: /etc/init.d/centrifydc restart 9 If there is a cache-related issue, Centrify Support may want the contents of the /var/ centrifydc directory. You should be able to create an archive of the directory, if needed. Chapter 16 • Managing and evolving operations after deployment 223 Getting assistance from Centrify Support 10 If there is a DNS, LDAP, or other network issue, Centrify Support may require a network trace. You can use Ethereal to create the network trace from Windows or UNIX. You can also use Netmon on Windows computers. 11 Create an archive (for example, a .tar or .zip file) that contains all of the log files and diagnostic reports you have generated, and add the archive to your case or send it directly to Centrify Support. 12 Consult with Centrify Support to determine whether to turn off debug logging. If no more information is needed, run the following command: /usr/share/centrifydc/bin/addebug off Planning and Deployment Guide 224 Chapter 17 Templates and sample forms This section provides templates and samples that you can customize and use in the deployment process. These templates represent documents that are commonly used, such as change control requests and email notifications of software changes. Your organization may require you to use organization-specific versions of these documents. The following examples are provided: Simplified environment analysis and zone design template Change control request form Test case matrix sample Preliminary software delivery notification email template Department-specific announcement and instructions email template General announcement and deployment schedule email template Deployment team task checklist Simplified environment analysis and zone design template This template provides a framework for the information that the deployment team should collect, analyze, and document in evaluating the existing network infrastructure and how it will change after deployment. Depending on your environment and requirements, you might need to collect additional information, but this template describes the most common elements with examples that you can adapt to your organization. 1 Introduction Use this section to provide a brief overview of the deployment plan. For example, document the features yon plan to deploy, any primary goals that might affect design decisions, and any dependencies or special considerations, such as activities that require change control approval or enhanced permissions. 2 Network architecture Use this section to capture details about your existing network configuration and Active Directory architecture. For example, you might want to record information about the Active Directory site, forest, and domain controllers, including trust relationships and domain and forest functional levels, if applicable. You might also include details about your DNS configuration, including whether you have more than one DNS namespace and any port requirements, firewall restrictions, and 225 Change control request form any network connectivity issues. For details about the default ports used, see“Default ports for network traffic and communication” on page 36. 3 Centrify-managed computers Use this section to provide details about the existing UNIX, Linux, and Mac OS X computers on which you plan to deploy the Centrify agent. 4 Provisioning process Use this section to describes the process for provisioning computers, groups, and users. 5 Rights, roles, and role assignments Use this section to describe the rights, roles, role assignments, and configuration policies you require. For example, if you use the sudo program and the sudoers file, use this section to document how rights and roles defined in the sudoers file and whether the sudoers file is managed locally on each computer or in a central location. 6 Zone architecture Use this section to identify the Active Directory schema you are using and where Centrify-related objects are located in the Active Directory forest. 7 Deployment preparation in Active Directory Use this section to summarize the deployment of Centrify components into the existing Active Directory forest and domain. 8 Windows installation Use this section to describe how zones will be created and configured. 9 UNIX deployment Use this section describes the deployment of Centrify agents on UNIX computers. 10 Group Policies Use this section describes the group policies that will be deployed for UNIX computers. Change control request form Most larger organizations require a formal change request to be submitted for any changes to Active Directory. The purpose of this template is to illustrate a request for creating new Active Directory organizational units, groups, and users. If the deployment team is not allowed to add UNIX groups and group members to Active Directory after the organizational structure if created, it is likely the project will experience delays. Computer: Planning and Deployment Guide 226 Test case matrix sample Change Requested: Approved By: Test case matrix sample To validate the pilot deployment, most organization execute at least some formal testing of features and functionality. The purpose of this template is to suggest a basic set of test cases to execute that apply to most environments. These test activities apply to setting up your environment, installing the software, and performing common administrative tasks. You can skip any activities that don’t apply to your organization. Testing Matrix Activity Remarks Create the OU Structure with a script or manually Active Directory setup activities Date Create the OU Permissions with a script or manually Create Security Groups with a script or manually Create Distribution Groups with a script or manually Create the Zones Container with the Setup Wizard, a script, or manually Create the Licenses Container with the Setup Wizard, a script, or manually Create the service account for the Zone Provisioning Agent Update the local or domain policy to allow the Zone Provisioning Agent service to Log on as a service right Install Deployment Manager on a Windows computer Deployment Manager activities Add computers to Deployment Manager Analyze discovered computers Resolve open issues for analyzed computers Re-run the analysis to verify all issues have been resolved Deploy the agent on computers that are Ready to Install Create a zone with a script or Access Manager console Access Manager console activity Delegate zone control with a script or using the Delegate Zone Control Wizard Pre-Create Computer account Import UNIX groups from group files or group NIS maps Resolve mapping issues Import UNIX users from passwd files or passwd NIS maps Assign interactive users to the UNIX Login role Chapter 17 • Templates and sample forms Authorization activities 227 Test case matrix sample Activity Remarks Date Assign users who need profile but not access to the listed role Join computers to the domain using Deployment Manager or adjoin You should prepare for migration and create one or more initial zones before you join the domain. Configure root-equivalent rights Configure root-equivalent replacement role Add an Active Directory group for the role Test role access Test role privileges control Identify current management process (manual or automated) UID consolidation activities Document the new management process Define the business rule for assigning UIDs (for example, SID) Identify active users to preserve, migrate, and keep Run adfixid to change file ownership Identify current management process (manual or automated) GID consolidation activities Document the new management process Define the business rule for assigning the primary GID values (for example, GID) Identify the Active Directory groups for primary GID assignments Domain Users Validate Active Directory log on credentials User login activities Validate successful access to UNIX, Linux, Mac OS X Validate successful application usage Validate password complexity policy Validate account lockout policy Validate role enforcement Validate single sign on Validate password reset Test period users validated Clean up activities Test period groups validated Test period roles validated Run adrmlocal to remove local accounts Planning and Deployment Guide 228 Preliminary software delivery notification email template Preliminary software delivery notification email template The purpose of this template is to notify users that they are scheduled to receive new software that will be delivered to their computers. This email notice should include a specific delivery date or a time frame estimate, if possible. Although you can delete this information from the email message you send out in your organization, this notice is most effective if users know specifically when the change is scheduled to occur. You can also customize the specific requirements or objectives that Centrify Server Suite is helping your organization achieve. Colleagues: The [Department Testing Centrify] has successfully completed testing of the Centrify [Standard/Enterprise Suite 20xx] software and is ready to begin the deployment portion of the project. The target date for deployment is [Scheduled time]. Deployment of this software will greatly enhance our ability to comply with multiple industry requirements to include [List objectives, such as: PCI, Sarbanes-Oxley compliance, Internal/External Security Audit, specific organization initiatives]. These requirements are in alignment with prioritized corporate business objectives. The Centrify [Standard/Enterprise Suite 20xx] enables the streamlining of authentication, access controls and privileges, and auditing for all corporate IT systems. For the most part, deployment and streamlined authentication and authorizations services occurs “behind the scenes” with minimal, if any, user disruption. You should not notice any operational changes when the software is deployed to your computer. Thank you for your cooperation, [IT Department Signature] Department-specific announcement and instructions email template The purpose of this template is to notify users in a specific department that they are scheduled to transition to using Centrify Server Suite for authentication and authorization. This email notification indicates that you plan to join the computers in the department to an Active Directory domain during down time. Depending on your organization’s policies, this email may suggest users log on with their Active Directory credentials or explicitly state that they can continue to log on with their existing credentials. Colleagues: The [Specific department you are deploying to, such as: Accounting Department] is scheduled to begin the transition to Centrify Server Suite next week. In order to ensure a smooth transaction we simply ask that you log off of all systems before leaving for the weekend. When you return to work the following week, you should [be able to log on with your current user name and password]. Chapter 17 • Templates and sample forms 229 General announcement and deployment schedule email template If you experience any difficulties logging on, or with application connectivity, please submit a ticket or contact the support desk immediately. Several members of each department helped the IT team perform successful testing and validation of this new solution, and we anticipate a smooth transition. Thank you for your cooperation, [IT Department Signature] General announcement and deployment schedule email template The purpose of this template is to notify a broader user community of the deployment schedule for multiple departments across the company. This sample also illustrates the type of notes you can incorporate into the email message to keep other groups informed of their status. The general announcement may also include portions of the other two email templates. For example, you may want to include the objectives the transition to Centrify Server Suite helps the company achieve or the instructions to use current or Active Directory credentials after migration. Colleagues: At the completion of the week, the [Centrify Deployment Project Team] will allocate first response resources to the next department scheduled for deployment. This is the schedule coordinated with the Department Heads throughout the company: Date DEPARTMENT 9 May 2011 Information Technology 16 May 2011 Accounting 23 May 2011 Marketing 30 May 2011 Security 6 Jun 2011 Sales 13 Jun 2011 Executive 20 Jun 2011 PMO 27 Jun 2011 Data Warehouse 3 Jul 2011 Training 10 Jul 2011 Business Development 17 Jul 2011 Audit REMARKS Pending EOQ Reports Pending EOQ Reports The IT Department would like to thank everyone to date for their work on this project, and look forward to a successful deployment. If you have any questions, please submit them to the [centrify_project] distribution list and include your contact information. We will respond with answers or contact you directly for more information. Planning and Deployment Guide 230 Deployment team task checklist Sincerely, [IT Department | Centrify Deployment Project Team] Deployment team task checklist Before you install the pilot deployment, you should prepare a deployment checklist to ensure you have the information you need to successfully complete the deployment. For example, you should review port requirements, verify DNS resolution, and create one or more spreadsheets that describe the user and group accounts to be imported and any special relationships, such as membership in specific groups that need to be preserved or any special configuration you want to implement. Creating a deployment checklist is optional, but can help you to collect detailed information about each of the computers targeted for deployment. If you use Deployment Manager, many of items in the checklist can be analyzed remotely for computers on the network. Note The following example illustrates information you can collect and record in a deployment team task checklist. Preparing computers for deployment Operating system, version, and patch level for target computers Host name and IP address for target computers Current disk space for target computers Review the details of the current DNS configuration For example: Is the address resolved through a UNIX DNS server, Windows DNS server, or settings in the /etc/hosts and /etc/resolv.conf files? Is the computer using a DNS server that has SRV records for Active Directory domain controllers? Are UNIX subnets registered and associated with Sites in Active Directory? Are you using a disjointed DNS namespace, where a UNIX computer name may be server.company.com but the Active Directory domain name is server.windows.company.com? Are you using DNS aliases and do they resolve correctly? Are there multiple network interfaces (NIC) in use? Current network time provider (NTP) For example, does the computer use a different server to determine the time than the Active Directory domain controller? Current firewall configuration For example, are there any firewalls blocking required ports between the UNIX computer and the Active Directory domain controllers for the registered sites? Chapter 17 • Templates and sample forms 231 Deployment team task checklist Preparing computers for deployment Current applications and services For example, do you have Perl, Samba, or OpenSSH deployed? Are the versions you have compatible with the Centrify agent or—if a Centrify version is available—to be replaced by versions provided by Centrify? Do you have existing authentication providers deployed? Are existing applications and services Kerberos-enabled or PAM-enabled? Are there other applications that require local users or groups? Current source of user and group information For example, are the /etc/passwd and /etc/group files the only source of user information for the users who access this computer or other identity stores, such as existing LDAP servers or NIS domains, used? Are there any specific users or groups that should remain locally defined? Current NSS configuration For example, have you reviewed the contents of the nsswitch.conf file to check for other sources of user and group information? Connectivity between this computer and the domain controller For example, is there a reply from the domain controller when you run the ping command? User names and UIDs checked for conflicts across the target group Zone requirements analyzed for the target group Zone identified for this computer Centrify agent installed and the computer joined to the domain Groups allowed or denied access identified for this computer Existing users and groups for this computer imported into Active Directory Imported user and group profiles mapped to Active Directory accounts Allowed or denied groups configured using parameter values or group policy If you use a deployment checklist, you can also include additional notes and details about the activities performed. For example, a partially completed checklist might look something like this: Preparing computers for deployment Operating system: Sun Solaris 10 with all patches applied (17-April-2011) Host name and IP address: aspen, 177.29.10.10 Current DNS configuration: Resolved through the enterprise DNS server, spider.ajax.org Current time source is NTP server: ntpd on solstice.ajax.org Change for deployment: Use SNTP on the Active Directory domain controller Current firewall configuration: No port issues Planning and Deployment Guide 232 Deployment team task checklist Preparing computers for deployment Existing OpenSSH version to be replaced, no other issues found. Current source of user and group information: /etc/passwd, /etc/group, and NIS domain nwest03 have users who access aspen Connectivity with the domain controller: Verified by JR (2-May-2011). User names and UIDs checked for conflicts across the target group: Analyzed by JR and DC (4-May-2011). Zone requirements analyzed for the target group: Zones required for the target group are nwest01, swest02, corp-main, and nwest03 (9 May 2011). SF to recommend new extended zone descriptions for approval. Zone identified for this computer: nwest03 Centrify agent installed and the computer joined to the Active Directory domain: dc3colorado.ajax.org, OU: US-UNIX-Computers Groups allowed r denied access identified for this computer: Allowed access group—all_employees, oracle_sys Denied access—consultants, temps Existing users and groups for this computer imported into Active Directory: Completed by DC (20-May2011). Imported user and group profiles mapped to Active Directory accounts: Work complete for users and groups that already had matching Active Directory candidates. Work in progress for the remaining profiles without any matching Active Directory candidate. Target date for completion: 31-May-2011 Allowed or denied groups configured using parameter values or group policy: TBD Chapter 17 • Templates and sample forms 233 Chapter 18 Active Directory permissions required for administrative tasks This chapter describes the permissions required to perform administrative tasks that affect Centrify-specific objects in Active Directory. You can set these permissions manually for individual users and groups who manage Centrify zones in Active Directory. However, setting permissions manually can be time-consuming and error-prone. In most cases, you should use the Zone Delegation Wizard to authorize users to perform specific tasks. The following topics are covered: Understanding how permissions are set Understanding permissions for the Setup Wizard Understanding tasks for the Enterprise Administrator Understanding permissions for the Zone Delegation Wizard About the required parent containers in the Active Directory forest Setting rights to create and modify zones Setting rights to join or leave the domain Setting rights to work with computer accounts Setting rights to work with user accounts Setting rights to work with group accounts Setting rights to work with license keys Setting rights to work with NIS maps Setting permissions for password synchronization Setting permissions for rights and roles Setting permissions for the Zone Provisioning Agent At a minimum, all Access Manager actions require users to have generic Read permission. This permission is typically granted to all Authenticated Users by default. Notes Because Authenticated Users have read access, they can run reports in the Report Center. No additional rights need to be granted to enable users to run reports. Understanding how permissions are set Access Manager requires specific rights for administrators to work with objects such as UNIX users, groups, and computers within Active Directory. As part of your deployment 234 Understanding how permissions are set planning process, you should review the rights required to set up and manage Centrify-specific objects and understand how to manually assign rights for managing Centrify objects, if needed. Built-in Windows groups, such as Domain Admins and Domain Users, have default permissions, which may be customized for your organization. In general, the administrators for the forest root domain have broad authority to set permissions for other users and groups, including the administrators of other domains. Therefore, whether you can modify the permissions for specific users and groups within your Active Directory environment will depend on the policies of your organization. If you have the appropriate authority, there are several ways you can access, verify, and modify the permissions assigned to specific users and groups. For example, you can: Use ADSI Edit to directly modify any Active Directory attributes. Use Active Directory Users and Computers to set basic or advanced permissions on any Active Directory object through the Security tab. To display this tab, you may need to select View > Advanced Features. For some advanced permissions to be available in Active Directory Users and Computers, however, your user account must have Create all child objects or Write all properties permissions. Run the Zone Delegation Wizard to set the appropriate permissions for specific users or groups to perform specific tasks within a zone. Click Permissions when viewing Zone Properties in Access Manager to set basic or advanced permissions on any zone object. Click Permissions when viewing the Centrify Profile for a user in Access Manager to set basic or advanced permissions on any user object. For example, you can set permissions from Active Directory Users and Computers or Access Manager by doing the following: 1 Open the console you want to use and connect to the Active Directory domain. 2 Select an Active Directory object, such as a user or computer, right-click, then click Properties. Chapter 18 • Active Directory permissions required for administrative tasks 235 Understanding how permissions are set 3 Click the Security tab, then click Advanced. Click the Security tab to view and set permissions Click Advanced to set specific rights for a user or group 4 Select the user or group to which you want to assign rights, then click Edit. If the user or group isn’t listed, click Add to find the account to which you want to assign rights. Select a user or group then click Edit to display the Permission Entry dialog box 5 In the Permission Entry dialog box, click the Object or Properties tab, as needed. Where you set the permission and where the permission should be applied varies depending on the task you are allowing a user or group to perform. Planning and Deployment Guide 236 Understanding permissions for the Setup Wizard 6 Select the specific rights you want to assign by scrolling to find the permission, then clicking the Allow checkbox. 7 When you are finished setting the appropriate permissions, click OK. For more specific information about how to set permissions on Active Directory objects and properties and how to view, modify, and remove permissions, see your Active Directory documentation. Understanding permissions for the Setup Wizard In most cases, you run the Setup Wizard to guide you through the configuration of Active Directory for Centrify. The Setup Wizard updates Active Directory with Centrify-specific objects and properties, including zone and license containers that are required for proper operation. To successfully perform these tasks, the user account that runs the Setup Wizard must have specific rights. Because some of these rights may be reserved for administrative accounts, other users may not be able to perform all of the steps in the Setup Wizard. To allow other user accounts to run the Setup Wizard, you can manually create the appropriate container objects, then assign to those objects only the specific permissions needed to correctly complete the configuration of Centrify-specific objects. Users can then use the Setup Wizard to select the appropriate container objects and perform all of the necessary steps without being members of an administrative group. Chapter 18 • Active Directory permissions required for administrative tasks 237 Understanding permissions for the Setup Wizard The following table describes the minimum rights that must be applied to the Centrify-specific container objects or other users to successfully complete the configuration of Centrify software. This target object Requires these permissions Applied to Licenses container • Read all properties This object only • Create classStore Objects • Modify permissions • Write Description property This object and all child objects • Write displayName property The Setup Wizard requires you to create or select at least one parent container for license keys. By default, this container object is: domain/Program Data/Centrify/Licenses You can create additional License containers, if needed, through the Manage Licenses dialog box. By default, all Authenticated Users have read and list contents permission for the Licenses container and all of its child objects. You can change these permissions if you want to restrict access to Access Manager. Zones container or any container • Read all properties used as a destination for a new zone • Create classStore Objects This object only • Create container objects • Write displayName property This object and all child objects The Setup Wizard requires you to create or select a parent container object for creating new zones. By default, this container object is: domain/Program Data/Centrify/Zones You can use other containers for zones, if needed. For example, if you have created a separate high-level organizational unit called UNIX as the parent container: domain/UNIX/Zones ZoneName/Computers container • Create group objects This object only • Write Description property These permissions are only needed if you are supporting “agentless” authentication in a zone. Computers container • Write operatingSystem property SELF on Computer objects For example, the generic Computers • Write operatingSystemVersion container: domain.com/Computers property • Write operatingSystemHotfix property • Write operatingSystemServicePack property These permission are granted to each computer’s SELF account when you select the Grant computer accounts in the Computers container permission to update their own account information option in the Setup Wizard. Planning and Deployment Guide 238 Understanding tasks for the Enterprise Administrator Understanding tasks for the Enterprise Administrator By default, Centrify does not require you to be an enterprise administrator or domain administrator of the forest root domain to install or configure Centrify-specific properties. However, some optional configuration tasks do require you to be an enterprise administrator or a domain administrator of the forest root domain. These optional tasks involve: Creating Display Specifiers for Centrify profiles to enable access to the Centrify Profile properties page in the Active Directory Users and Computers console. Registering the administrative notification handler to ensure data consistency if users delete Centrify objects using Active Directory Users and Computers. Creating parent containers manually for Centrify objects objects to enable maximum control over the placement of and rights associated with Centrify-related objects within Active Directory. In most cases, if you want to perform any of these tasks, you must use an account that is an enterprise administrator or a domain administrator of the forest root domain. Creating Display Specifiers for Centrify profiles To set up the Centrify Profile properties page in the Active Directory Users and Computers console, you must be an enterprise administrator or a domain administrator for the forest root domain because adding the Centrify Profile to Active Directory Users and Computers requires you to add Display Specifiers to Active Directory. Note A Display Specifier is an Active Directory object that allows you to add components to the Active Directory Users and Computers (ADUC) interface. If you want to provide access to the Centrify Profile in the Active Directory Users and Computers console, an enterprise administrator can manually define the display specifiers (under domain/Configuration/DisplaySpecifiers/LanguageID/) for computer, group, and user properties by modifying the adminPropertyPages attribute with the appropriate GUID. For example, if the Active Directory domain is ajax.org and the language you support is US-English (CN=409), you would define the display specifiers in: ajax.org/Configuration/DisplaySpecifiers/409 Adding the display specifiers for Centrify properties is an optional step you can perform manually using ADSI Edit or by running the displayspecifier.vbs script. If you manage all Centrify objects through Access Manager, you do not need to perform this task. Note To use the displayspecifier.vbs script to set up the display specifiers: 1 Log on using an enterprise administrator account or a domain administrator for the forest root domain. Chapter 18 • Active Directory permissions required for administrative tasks 239 Understanding tasks for the Enterprise Administrator 2 Open a Command Prompt window and change to the Centrify installation directory. For example: cd C:\Program Files\Centrify\DirectManage Access Manager 3 Run the displayspecifier.vbs script. If you want to manually add the display specifiers to display property pages in the Active Directory Users and Computers, you must create the following entries using ADSI Edit, where n is the next number in the index of values for the attribute: For this target object Set this attribute To computer-Display displaySpecifier adminPropertyPages n,{DB5E4BE1-A0F0-4e6c-AD8A-B46475D727CB} group-Display displaySpecifier adminPropertyPages n,{0CDC9AD0-E870-483f-8D16-17EAB3B7F881} user-Display displaySpecifier adminPropertyPages n,{543DBFE3-317D-4493-8D00-84591E4EDCDE} inetOrgPerson-Display adminPropertyPages n,{543DBFE3-317D-4493-8D00-84591E4EDCDE} For example, if the Active Directory domain is ajax.org and the language you support is US-English (CN=409), you would add these entries to the objects in: ajax.org/Configuration/DisplaySpecifiers/409 In most cases, you only need to set up the display specifiers once for the Active Directory forest. If you support multiple languages, you can manually add the display specifiers to each language you support. For example, if your organization supports US-English (CN=409), Standard French (CN=40C), and Japanese (CN=411), you would add the display specifiers to these three containers. Once you have updated Active Directory by running the displayspecifier.vbs script or by manually adding the display specifiers, you can access the Centrify Profile properties using Active Directory Users and Computers. Registering the administrative notification handler The administrative notification handler provides services to ensure data integrity in the Active Directory forest. You can register the notification handler automatically through the Setup Wizard the first time you start the Access Manager console, but this requires an account that is an Enterprise Administrator or a Domain Administrator in the forest root domain. Registering the administrative notification handler is optional, but doing so helps to ensure that no orphan UNIX data is left in the directory if a user, group, or computer is deleted using Active Directory Users and Computers. When registered, the notification handler automatically deletes any service connection point (SCP) dependencies on a directory object, if the directory object is deleted. Without this service, deleting a directory object such as a computer or user object in an Active Directory console may leave an orphan service connection point for the object in the directory. Planning and Deployment Guide 240 Understanding permissions for the Zone Delegation Wizard If you don’t want to perform this step in the Setup Wizard, you can manually configure the administrative notification handler using ADSI Edit or you can choose not to register the administrative notification handler for Centrify. If you choose not to register the administrative notification handler, however, you should periodically run the Analyze command to check for orphan data in the Active Directory forest. To manually set up the administrative notification handler for Centrify, add the following entry using ADSI Edit under domain/Configuration/DisplaySpecifiers/LanguageID/ where n is the next number in the index of values for the attribute: For this target object Set this attribute To DS-UI-DefaultSettings dSUIAdminNotification n,{D0D2C2AE-C143-4C81-A61C-BE95C3C5EEDF} For example, if the Active Directory domain is ajax.org and the language you support is US-English (CN=409), you would add this entry to the object in: ajax.org/Configuration/DisplaySpecifiers/409 Understanding permissions for the Zone Delegation Wizard If you use the Zone Delegation Wizard to delegate administrative tasks to specific users and groups, you are providing those users and groups specific permissions for working with objects in Active Directory. The user who creates a zone has full control on the zone’s serviceConnectionPoint. That user has exclusive permission to delegate administrative tasks to other users. The user who creates a zone is also the only user who can add NIS maps to the zone because creating NIS maps requires permission to create containers in Active Directory. The zone creator can, however, grants others users permission to add, remove, or modify NIS map entries. Note The following table summarizes the permissions that can be assigned through your selections in the Zone Delegation Wizard. In addition to the permissions listed, however, Chapter 18 • Active Directory permissions required for administrative tasks 241 Understanding permissions for the Zone Delegation Wizard the basic Read permission is required to perform any action. The Read permission is granted to Authenticated Users by default. Selecting this task Grants these rights All Permissions to perform all of the actions listed in the Zone Delegation Wizard and described below. This option allows a designated user or group to perform all of the other actions. Only the user who creates a zone can grant this permission to other users and groups for the zone. Change zone properties • List contents on the ZoneName object container. • Read all properties on the ZoneName object container. • Write name on the ZoneName object container. • Write Name on the ZoneName object container. • Write Description property on the ZoneName object container. Add users • List contents on the ZoneName/Users object container. • Read all properties on the ZoneName/Users object container. • Create serviceConnectionPoint objects on the ZoneName/Users object container. Add groups • List contents on the ZoneName/Groups object container. • Read all properties on the ZoneName/Groups object container. • Create serviceConnectionPoint objects on the ZoneName/Groups object container. Add local users • List contents on the ZoneName/Local Users object container. • Read all properties on the ZoneName/Local Users object container. • Add local users to the zone. Add local groups • List contents on the ZoneName/Local Groups object container. • Read all properties on the ZoneName/Local Groups object container. • Add local groups to the zone. Join computers to the zone • List contents on the ZoneName/Computers object container. • Read all properties on the ZoneName/Computers object container. • Create serviceConnectionPoint objects on the ZoneName/ Computers object container. Note Joining the domain requires additional permissions on the Active Directory computer object, but the join command performs the necessary operations without requiring the additional permissions to be granted to the user or group you are designating as a trustee. Remove zones • List contents on the ZoneName object container. • Read all properties on the ZoneName object container. • Allow Delete on the ZoneName object container. • Allow Delete Subtree on the ZoneName object container. Planning and Deployment Guide 242 Understanding permissions for the Zone Delegation Wizard Selecting this task Grants these rights Remove users • List contents on the ZoneName/Users object container. • Read all properties on the ZoneName/Users object container. • Delete serviceConnectionPoint objects on the ZoneName/Users object container. Remove groups • List contents on the ZoneName/Groups object container. • Read all properties on the ZoneName/Groups object container. • Delete serviceConnectionPoint objects on the ZoneName/Groups object container. Remove local users • List contents on the ZoneName/Local Users object container. • Read all properties on the ZoneName/Local Users object container. • Remove local users from the zone. Remove local groups • List contents on the ZoneName/Local Groups object container. • Read all properties on the ZoneName/Local Groups object container. • Remove local groups from the zone. Remove computers from the zone • List contents on the ZoneName/Computers object container. • Read all properties on the ZoneName/Computers object container. • Delete serviceConnectionPoint objects on the ZoneName/ Computers object container. Modify user profiles • List contents on the ZoneName/Users object container. • Read all properties on the ZoneName/Users object container. • Write cn on the serviceConnectionPoint object. • Write name on the serviceConnectionPoint object. • Write Name on the serviceConnectionPoint object. • Write keywords on the serviceConnectionPoint object. For RFC 2307-compliant zones, modifying the user’s UNIX profile also requires the following rights on the serviceConnectionPoint object of the UNIX user object: • Write uid. • Write uidNumber. • Write loginShell. • Write gidNumber. • Write gecos. • Write unixHomeDirectory. The additional rights for RFC 2307-compliant zones are applied to the posixAccount object associated with the serviceConnectionPoint for the UNIX user object. Chapter 18 • Active Directory permissions required for administrative tasks 243 Understanding permissions for the Zone Delegation Wizard Selecting this task Grants these rights Modify group profiles • List contents on the ZoneName/Groups object container. • Read all properties on the object containers. • Write name on the serviceConnectionPoint object. • Write Name on the serviceConnectionPoint object. • Write keywords on the serviceConnectionPoint object. For RFC 2307-compliant zones, modifying the group’s UNIX profile also requires the following rights applied to the posixGroup object associated with the serviceConnectionPoint object of the UNIX group object: • Write gidNumber. Modify local user profiles • List contents on the ZoneName/Local Users object container. • Read all properties on the ZoneName/Local Users object container. • Modify local users in the zone. Parameters that can be modified are: • User name (the UNIX login name). • The user identifier (UID). • The user’s primary group profile numeric identifier (GID). • The default home directory for the user. • The default login shell for the user. • General information about the user account (GECOS). • State. Modify local group profiles • List contents on the ZoneName/Local Groups object container. • Read all properties on the object containers. • Modify local groups in the zone. Parameters that can be modified are: • Group name. • Group members. • Group identifier (GID). • State. Modify computer profiles • List contents on the ZoneName/Computers container object. • Read all properties on the ZoneName/Computers container object. • Write description on the ZoneName/Computers container object if the zone is a hierarchical zone. • Write keywords on the serviceConnectionPoint object. • Write displayName on the serviceConnectionPoint object. • Write cn on the serviceConnectionPoint object. • Write name on the serviceConnectionPoint object. Planning and Deployment Guide 244 Understanding permissions for the Zone Delegation Wizard Selecting this task Grants these rights Allow computers to respond to NIS client requests • List contents on the ZoneName/Computers/ zone_nis_servers group object. • Read all properties on the ZoneName/Computers/ zone_nis_servers group object. • Write member property of group object on the ZoneName/ Computers/zone_nis_servers group object. Import users and groups to zone • List contents on the ZoneName/Users and ZoneName/Groups container object. • Read all properties on the ZoneName/Groups container object. • Create serviceConnectionPoint on the ZoneName/Users and ZoneName/Groups container objects. • Write cn on the serviceConnectionPoint object. • Write name on the serviceConnectionPoint object. • Write managedby on the serviceConnectionPoint object. • Write displayName on the serviceConnectionPoint object. • Write keywords on the serviceConnectionPoint object. For RFC 2307-compliant zones, importing users also requires the following rights on the serviceConnectionPoint object of the UNIX user object ZoneName/Users: • - Write uid. • - Write uidNumber. • - Write loginShell. • - Write gidNumber. • - Write unixHomeDirectory. • - Write gecos. For RFC 2307-compliant zones, importing groups also requires the following right on the serviceConnectionPoint object of the UNIX group object under ZoneName/Groups: • - Write gidNumber. Chapter 18 • Active Directory permissions required for administrative tasks 245 Understanding permissions for the Zone Delegation Wizard Selecting this task Grants these rights Manage roles and rights • List contents on the AzTask container and all child objects. • Read all properties on the AzTask container and all child objects. • Create msDS-AzTask objects • Delete msDS-AzTask objects • Write msDS-AzApplicationData on the msDs-AzTask object. • Write cn on the msDs-AzTask object. • Write name on the msDs-AzTask object. • Write description on the msDs-AzTask object. • Write msDs-OperationsForAzTask on the msDs-AzTask object. • List contents on the AzOperation container and all child objects. • Read all properties on the AzOperation container and all child objects. • Create msDS-AzOperation objects • Delete msDS-AzOperation objects • Write msDs-AzApplicationData on the msDs-AzOperation object. • Write cn on the msDs-AzOperation object. • Write name on the msDs-AzOperation object. • Write description on the msDs-AzOperation object. • List contents on the msDS-AzAdminManager object. • Read all properties on msDS-AzAdminManager object. • Write msDs-AzApplicationData on msDS-AzAdminManager object. Manage role assignments • List contents on the msDS-AzAdminManager object and all child objects. • Read all properties on the msDS-AzAdminManager object and all child objects. • Create msDS-AzRole objects. • Delete msDS-AzRole objects. • Write msDS-AzApplicationData on the msDS-AzRole object. • Write msDS-TasksForAzRole on the msDS-AzRole object. • Write msDS-MembersForAzRole on the msDS-AzRole object. • Write displayName on the msDS-AzRole object. • Write msDS-AzApplicationData on the msDS-AzAdminManager object. Modify computer roles • List contents on the ZoneName object and all child objects. • Read all properties on the ZoneName object and all child objects. • Write msDS-AzApplicationData • Write msDS-AzScopeName • Write description Planning and Deployment Guide 246 About the required parent containers in the Active Directory forest Selecting this task Grants these rights Add or remove NIS map entries • List contents on the ZoneName/NISMaps object container. • Read all properties on the ZoneName/NISMaps object container. • Create classStore Objects on the ZoneName/NISMaps object container. • Write name on the ZoneName/NISMaps object container. • Write Name on the ZoneName/NISMaps object container. Modify NIS map entries • List contents on the ZoneName/NISMaps object container. • Read all properties on the ZoneName/NISMaps object container. • Write adminDescription on the classStore object. • Write Description on the classStore object. • Write wWWHomePage on the classStore object. Remove NIS maps • List contents on the ZoneName/NISMaps object container. • Read all properties on the ZoneName/NISMaps object container. • Allow Delete on the MapName object. • Allow Delete Subtree on the MapName object. In some cases, the permissions granted through the Zone Delegation Wizard are a subset of the complete permissions required to perform some tasks. For information about the complete permissions required to perform a specific task, see the section that describes the permissions for performing that task. For example, for information about setting permissions for NIS maps, see “Setting rights to work with NIS maps” on page 270. Note About the required parent containers in the Active Directory forest Regardless of whether you use the organizational structure described in Chapter 4, “Planning Active Directory organizational units and security groups,” Centrify software requires the following: Licenses parent container object. You must have at least one parent container for license keys in the forest. You may want to create more than one of these container objects to give you more granular control over who has access to which licenses. Zones parent container object. You must create at least one parent container for zones. You may want to create more than one parent Zones container to give you more granularity for delegating administrative tasks. In most cases, you create the parent container objects for Centrify objects using the Setup Wizard. Optionally, you can create container objects when you create a new zone, or from the Manage Licenses dialog box. You can also manually create one or more of any of the container objects, if needed, provided you have an account with the appropriate permissions. Chapter 18 • Active Directory permissions required for administrative tasks 247 Setting rights to create and modify zones Creating parent containers manually for Centrify objects Some organizations prefer to create and manage Active Directory objects manually to ensure tight control over the objects and their related attributes. For example, you may want to manually create separate Zones or Licenses parent containers for different business units or geographic locations so that you can manually set different sets of permissions and related properties on those containers. Creating objects manually also enables you to have precise control over who has access to the objects. You can create the container objects anywhere in the forest’s directory structure, but you must have at least one parent Zones container object and at least one parent Licenses container object. Centrify recommends you create the Zones and Licenses objects under the top-level UNIX organizational unit (OU=UNIX, DC=sidebet, DC=org), as described in “Selecting the Active Directory location for the top-level OU” on page 47. Setting up multiple UNIX organizational units If your organization is divided into regions, independent business units, or segregated in other ways, you may have a separate “top-level” UNIX organizational unit for each logical division of the organization. Each division would then manage its own set of container objects, organizational units, security groups, and permission assignments. Centrify recommends that you maintain a separation of duties model for each division and that you keep the UNIX objects separate from Windows objects in the Active Directory forest. Setting rights to create and modify zones To create new zones, your user account must be set with the following permissions: Select this target object To apply these permissions Parent container for new zones you created or On the Object tab, select Allow to apply the following permission to selected in the Setup Wizard. this object and all child objects: For example: • Create Container Objects domain/UNIX/Zones • Create Organizational Unit Objects Note Both permissions are required if you want to allow zones to be created as either container objects or organizational unit objects. Parent container for Computers in the zone On the Object tab, select Allow to apply the following permission to this object only: • Create group objects Click the Properties tab and select Allow to apply the following properties to this object only: • Write Description property These permissions are only needed if you are supporting “agentless” authentication in the new zone. Planning and Deployment Guide 248 Setting rights to create and modify zones The user who creates a zone by default has full control over the zone and can delegate administrative tasks to other users and groups through the Zone Delegation Wizard. In most cases, users who create zones have domain administrator privileges and only the zone owner has the appropriate rights to delegate administrative tasks to other users. Notes If you manually set the permissions for domain users to create zones, however, you should also manually set the permissions to allow those users to manage rights and roles or notify zone administrates that they should run the Zone Delegation Wizard and assign those tasks to their own account or to other appropriate users and groups. At least one administrator must have permission to add an authorization store, define rights and roles, and manage role assignments in each zone. All users must have at least one valid role assignment to access a zone. Opening zones To open an existing zone, your user account must be set with the following permissions: Select this target object To apply these permissions Parent container for new zones For example: On the Object tab, select Allow to apply the following permission to this object: domain/UNIX/Zones • List contents Container for the individual zone For example, a ZoneName container object, such as: domain/UNIX/Zones/arcade Click the Properties tab and select Allow to apply the following properties to this object only: • Read allowedAttributes • Read allowedAttributesEffective • Read canonicalName • Read Description • Read displayName • Read name • Read objectClass Parent container for Users in the zone Click the Properties tab and select Allow to apply the following properties to this object only: • Read objectClass Parent container for Groups in the zone Click the Properties tab and select Allow to apply the following properties to this object only: • Read objectClass Chapter 18 • Active Directory permissions required for administrative tasks 249 Setting rights to create and modify zones Modifying zone properties To modify zone properties for a zone, your user account must be set with the following permissions: Select this target object To apply these permissions Container for an individual zone For example, a ZoneName container object: Click the Properties tab and select Allow to apply the following properties to this object only: domain/UNIX/Zones/arcade • Read Name • Read name • Read Description • Read displayName • Write Description Note You can grant these permission to specific users or groups by selecting the Change zone properties task in the Zone Delegation Wizard. These permissions also enable you to change the parent zone for a selected zone object. Renaming a zone To rename a zone, your user account must be set with the following permissions: Select this target object To apply these permissions Container for an individual zone Click the Properties tab and select Allow to apply the following properties to this object only: For example, a ZoneName container object, such as: domain/UNIX/Zones/arcade • Write name property • Write Name property Note You can grant this permission to specific users or groups by selecting the Change zone properties task in the Zone Delegation Wizard. Planning and Deployment Guide 250 Setting rights to create and modify zones Deleting a zone To delete a zone from Active Directory, your user account must be set with the following permissions: Select this target object To apply these permissions Container for an individual zone On the Object tab, select Allow to apply the following properties to this object only: For example, a ZoneName container object, such as: domain/UNIX/Zones/arcade • Delete • Delete Subtree Click the Properties tab and select Allow to apply the following properties to this object only: • Read Name • Read name • Read displayName Note You can grant this permission to specific users or groups by selecting the Delete zone task in the Zone Delegation Wizard. Managing roles and rights in a zone To manage rights and roles in a zone, including creating and deleting role definitions and updating time constraints, your user account must be set with the following permissions: Select this target object To apply these permissions Container for the authorization store For example: On the Object tab, select Allow to apply the following properties to this object and all child objects: domain/UNIX/Zones/arcade/ • List contents Authorization • Read all properties Click the Properties tab and select Allow to apply the following properties to the msDS-AzAdminManager object: • Write msDS-AzApplicationData Chapter 18 • Active Directory permissions required for administrative tasks 251 Setting rights to create and modify zones Select this target object To apply these permissions AzTaskObjectContainer On the Object tab, select Allow to apply the following properties to this object and all child objects: • List contents • Read all properties • Create msDS-AzTask objects • Delete msDS-AzTask objects Click the Properties tab and select Allow to apply the following properties to msDS-AzTask objects: • Write msDS-AzApplicationData • Write cn • Write name • Write description • Write msDs-OperationsForAzTask AzOpObjectContainer On the Object tab, select Allow to apply the following properties to this object and all child objects: • List contents • Read all properties • Create msDS-AzOperation objects • Delete msDS-AzOperation objects Click the Properties tab and select Allow to apply the following properties to msDS-AzOperation objects: • Write msDS-AzApplicationData • Write cn • Write name • Write description Planning and Deployment Guide 252 Setting rights to create and modify zones Managing role assignments in a zone To manage role assignments in a zone, your user account must be set with the following permissions: Select this target object To apply these permissions Container for the authorization store On the Object tab, select Allow to apply the following properties to this object only: For example: domain/UNIX/Zones/arcade/ Authorization • List contents • Read all properties • Create all child objects • Delete all child objects Click the Properties tab and select Allow to apply the following properties to this object only: • Write msDS-AzApplicationData Click the Properties tab and select Allow to apply the following properties to msDS-AzRole objects: • Write displayName • Write msDS-AzApplicationData • Write msDS-TasksForAzRole • Write msDS-MembersForAzRole Computers container in the zone On the Object tab, select Allow to apply the following properties to this object only: • Create Container Right This permission is required to allow a delegated user to make the first role assignment after a computer is joined to Active Directory. Chapter 18 • Active Directory permissions required for administrative tasks 253 Setting rights to create and modify zones Select this target object To apply these permissions AzRoleObjectContainer On the Object tab, select Allow to apply the following properties to the msDS-AzApplication object and all child objects: • List contents • Read all properties • Create msDS-AzRole objects • Delete msDS-AzRole objects Click the Properties tab and select Allow to apply the following properties to msDS-AzRole objects: • Write displayName • Write msDS-AzApplicationData • Write msDS-TasksForAzRole • Write msDS-MembersForAzRole Click the Properties tab and select Allow to apply the following properties to msDS-AzAdminManager objects: • Write msDS-AzApplicationData AzOpObjectContainer On the Object tab, select Allow to apply the following properties to this object only: • Read all properties • Create msDS-AzOperation objects • Delete msDS-AzOperation objects • Create msDS-AzRole objects • Delete msDS-AzRole objects Click the Properties tab and select Allow to apply the following properties to msDS-AzRole objects: • Write displayName • Write msDS-AzApplicationData • Write msDS-TasksForAzRole • Write msDS-MembersForAzRole Click the Properties tab and select Allow to apply the following properties to msDS-AzOperation objects: • Read name • Read Name • Write msDS-AzApplicationData • Write name • Write description Planning and Deployment Guide 254 Setting rights to join or leave the domain Changing the properties of a computer role in a zone To manage computer role properties in a zone, your user account must be set with the following permissions: Select this target object To apply these permissions Container for the authorization store On the Object tab, select Allow to apply the following properties to this object only: For example: domain/UNIX/Zones/arcade/ Authorization/guid • Read all properties Click the Properties tab and select Allow to apply the following The guid object is a globally unique properties to msDS-AzScope objects: identifier (GUID) for the Authorization object. • Read name For example: • Read Name CN=cab186af-61a0-4d54-a0dd... • Write msDS-AzApplicationData • Write msDS-AzScopeName • Write description Setting rights to join or leave the domain To join a UNIX computer to an Active Directory domain without predefining a computer account, your Active Directory user account must be set with the following permissions: Select this target object To apply these permissions Parent container object for computer accounts On the Object tab, select Allow to apply the following permission to this object only: For example: • Create serviceConnectionPoint Objects domain/UNIX/Servers Note You can grant this permission to specific users or groups by selecting the Join computers task in the Zone Delegation Wizard. To join a UNIX computer to an Active Directory domain and place the computer account in a specific organizational unit (OU), the Active Directory account used to join the domain must be set with the following permissions: Select this target object To apply these permissions Parent container object for the computer accounts On the Object tab, select Allow to apply the following permission to this object only: • Create serviceConnectionPoint Objects • Create Computer Objects Chapter 18 • Active Directory permissions required for administrative tasks 255 Setting rights to work with computer accounts To join a UNIX computer to an Active Directory domain when you are using a predefined computer account, your Active Directory user account must be set with the following permissions: Select this target object To apply these permissions Parent container object for the computer account On the Object tab, select Allow to apply the following permission to this object only: • Create serviceConnectionPoint Objects On the Object tab, select Allow to apply the following permission to For example, if the computer account is AJAX this object only: in the default Active Directory Computers • Full Control container: This permission is required for enabling or disabling a computer Computer account object in Active Directory domain/Computers/AJAX account. To remove a UNIX computer from an Active Directory domain, your Active Directory user account must be set with the following permissions: Select this target object To apply these permissions Parent container object for the computer account On the Object tab, select Allow to apply the following permission to this object only: • Delete serviceConnectionPoint Objects If you are deleting a computer account, you also need the Delete Computer Objects permission. This setting only gives the user or group permission to leave an Active Directory domain. If you want to grant permission for a user or group to delete a computer account, you also need the Delete Computer Objects permission. Note Setting rights to work with computer accounts Although joining or leaving a domain is the primary task for working with computer accounts in Active Directory, there are also specific permissions required to list computers or modify computer properties. The objects and permissions can also vary depending on the type of zone the computer account is associated with and the task to be performed. In most cases, you can grant the required permissions to specific users or groups by selecting the appropriate task in the Zone Delegation Wizard. Planning and Deployment Guide 256 Setting rights to work with computer accounts Joining a computer to a zone To join a computer to a zone, your user account must have the following permission: Select this target object To apply these permissions Parent container object for the computer account in the zone Click the Object tab and select Allow to apply the following permission to this object only: For example, in a classic zone, the ZoneName/ • Create serviceConnectionPoint Objects Computers container object: domain/UNIX/Zones/acme/Computers Click the Object tab and select Allow for the Full Control permission For example, if the computer account name is for the user with permission to join the domain. The adjoin command grants the computer’s SELF account the AJAX: following permissions: domain/UNIX/Servers/AJAX Computer account object in Active Directory • Write operatingSystem • Write operatingSystemVersion • Write operatingSystemHotfix • Write operatingSystemServicePack • Write servicePrincipalName • Write userAccountControl • Write dnsHostName Listing computer accounts To list computers, your user account must have the following permission: Select this target object To apply these permissions Parent container object for the computer account in Active Directory On the Object tab, select Allow to apply the following permission to this object for each of the computers to be included in the list: For example: • List contents domain/UNIX/Servers Parent container object for the computer account in the zone Click the Properties tab and select Allow to apply the following properties to this object only: For example, in a classic zone, the ZoneName/ • Read objectClass Computers container object: domain/UNIX/Zones/acme/Computers Chapter 18 • Active Directory permissions required for administrative tasks 257 Setting rights to work with computer accounts Select this target object To apply these permissions The serviceConnectionPoint object for the computer account Click the Properties tab and select Allow to apply the following properties to this object for each of the computers to be included in For example, if the computer account name is the list: AJAX, select: • Read displayName domain/UNIX/Servers/AJAX • Read keywords then select: • Read managedBy serviceConnectionPoint objects • Read Name • Read objectClass Click the Properties tab and select Allow to apply the following For example, if the computer account name is properties to this object for each of the computers to be included in the list: AJAX: • Read objectClass domain/UNIX/Servers/AJAX Computer account object in Active Directory • Read Operating System • Read Operating System Version • Read userAccountControl Modifying computer properties To modify any computer account properties for a UNIX computer, your user account must have the following permission: Select this target object To apply these permissions Parent container object for the computer account in Active Directory On the Object tab, select Allow to apply the following permission to this object only: For example: • List contents domain/UNIX/Servers Planning and Deployment Guide 258 Setting rights to work with computer accounts Select this target object To apply these permissions The serviceConnectionPoint object for the computer account Click the Properties tab and select Allow to apply the following properties to this object only: For example, if the computer account name is • Read allowedAttributes AJAX, select: • Read allowedAttributesEffective domain/UNIX/Servers/AJAX then select: serviceConnectionPoint objects • Read displayName • Read keywords • Read managedBy • Read Name • Read objectClass • Write keywords Click the Properties tab and select Allow to apply the following For example, if the computer account is AJAX properties to this object only: in the default Active Directory Computers • Read objectGUID container: • Read objectSid Computer account object in Active Directory domain/UNIX/Servers/AJAX • Read objectClass • Read Operating System • Read Operating System Version • Read userAccountControl If you are supporting “agentless” authentication and want to allow a computer to service NIS client requests in a zone, the computer must be made a member of the zone_nis_servers group in the zone. Setting or unsetting the Allow this computer to authenticate NIS users property requires the following permissions: Select this target object To apply these permissions The zone_nis_servers group object For example, select: Click the Properties tab and select Allow to apply the following properties to this object only: domain/UNIX/Zones/acme/Computers/ • List contents zone_nis_servers • Read all properties • Write member property If the zone_nis_servers group does not already exist in the current zone, setting the Allow this computer to respond to NIS client requests property also requires the following permission on the ZoneName/Computers object: • Create group objects Chapter 18 • Active Directory permissions required for administrative tasks 259 Setting rights to work with computer accounts If you need to change the zone for a computer account, your user account must have the following additional permissions: Select this target object To apply these permissions All parent container objects for the original and new zones Click the Properties tab and select Allow to apply the following properties to this object only: • Read name • Read Name The serviceConnectionPoint object for the computer account Click the Properties tab and select Allow to apply the following properties to this object only: • Write name • Write Name Note The Name property is the common name (cn) of the serviceConnectionPoint object. Original parent container for the computer account in the current zone On the Object tab, select Allow to apply the following permission to this object only: For example, if you are moving a computer from the Finance zone to the Corporate zone, the target object would be: • Delete serviceConnectionPoint Objects domain/UNIX/Zones/Finance/ Computers • Read objectGUID New parent container for the computer account in the new zone On the Object tab, select Allow to apply the following permission to this object only: For example, if you are moving a computer from the Finance zone to the Corporate zone, and you use the default Computers container, the target object would be: • Create serviceConnectionPoint Objects domain/UNIX/Zones/Corporate/ Click the Properties tab and select Allow to apply the following properties to this object only: Click the Properties tab and select Allow to apply the following properties to this object only: • Read objectGUID Computers You can set the permissions for modifying computer accounts by clicking the Security tab when you are viewing a computer’s properties. Note Planning and Deployment Guide 260 Setting rights to work with computer accounts Pre-creating a computer object in a zone To prepare a computer account in a zone before joining, the following permissions apply to the user or group you want to designate as the trustee for joining the domain: Select this target object To apply these permissions The serviceConnectionPoint object for the computer account Click the Object tab and select Allow to apply the following permission to this object only: • Read all properties • Write keywords property • Write displayName property Click the Object tab and select Allow to apply the following For example, if the computer account name is permission to this object only: AJAX: • Reset Password Computer account object in Active Directory domain/Computers/AJAX • Write userAccountControl • Validated write to DNS host name • Write to service principal name • Computer account is reset during adjoin. The adjoin command resets the computer account and grants the computer’s SELF account the following permissions: • Write operatingSystem • Write operatingSystemVersion • Write operatingSystemHotfix • Write operatingSystemServicePack • Write to altSecurityIdentities If you use Active Directory Users and Computers to pre-create the computer object instead of the Prepare Computer wizard, the following permissions must be granted on the computer for the trustee: • Validated write to DNS Host Name • Validated write to service principal name • Write Account Restrictions • Write Description • Write displayName • Write computer name (Pre-Windows 2000) • Delete • Delete Subtree • Read Permission • All Extended Rights Chapter 18 • Active Directory permissions required for administrative tasks 261 Setting rights to work with computer accounts If you use Active Directory Users and Computers to pre-create the computer object instead of the Prepare Computer wizard, the following permissions must be granted on the computer for the trustee: Select this target object To apply these permissions Click the Object tab and select Allow to apply the following For example, if the computer account name is permission to this object only: AJAX: • Validated write to DNS Host Name Computer account object in Active Directory domain/Computers/AJAX • Validated write to service principal name • Write Account Restrictions • Write Description • Write displayName • Write computer name (Pre-Windows 2000) • Delete • Delete Subtree • Read Permission • All Extended Rights Modifying computer roles If you use computer role assignments to control access to a computer, the following permissions are required to modify computer roles: Select this target object To apply these permissions msDS-AzScope Click the Properties tab and select Allow to apply the following properties to this object only: This object is listed under a globally unique identifier (GUID) for the Authorization object. • Read description For example: • Read msDS-AzScopeName CN=cab186af-61a0-4d54-a0dd... • Read msDS-AzApplicationData • Write description • Write msDS-AzScopeName • Write msDS-AzApplicationData Planning and Deployment Guide 262 Setting rights to work with user accounts Deleting computer roles If you use computer role assignments to control access to a computer, the following permissions are required to delete computer roles: Select this target object To apply these permissions msDS-AzScope Click the Properties tab and select Allow to apply the following properties to this object only: This object is listed under a globally unique identifier (GUID) for the Authorization object. • Read Name • Read name • Read displayName • Allow Delete • Allow Delete Tree Setting rights to work with user accounts The specific objects and permissions required to work with user accounts depend on the type of zone the user account is associated with and the task to be performed. In most cases, you can grant the required permissions to specific users or groups by selecting the appropriate task in the Zone Delegation Wizard. Chapter 18 • Active Directory permissions required for administrative tasks 263 Setting rights to work with user accounts Adding a user to a standard zone In a standard Centrify zone when the functional level of the forest is Windows Server 2003 or later, adding a user account with an Active Directory security group as the primary group to a zone requires the following permissions: Select this target object To apply these permissions Parent container object for the user profile On the Object tab, select Allow to apply the following permission to this object only: For example, if you use classic zones, the default Users container in the Finance zone: domain/UNIX/Zones/Finance/Users • Create serviceConnectionPoint Objects This permission is required for both standard zones and RFC 2307-compliant zones. For standard zones, you need to apply additional permissions. Click the Properties tab and select serviceConnectionPoint objects from the object list, then select Allow to apply the following properties to this object: • Read Name • Read name • Read displayName For example: Click the Properties tab and select Allow to apply the following properties to this object only: domain/Users/user_name • Read objectCategory User account object in Active Directory • Read objectClass • Read objectGUID • Read objectSid • Read userAccountControl Parent container object for the individual zone Click the Properties tab and select Allow to apply the following properties to this object only: For example, if you are adding a user to the • Read objectGUID Finance zone: • Write Description domain/UNIX/Zones/Finance Planning and Deployment Guide 264 Setting rights to work with user accounts Modifying users in standard zones In a standard zone, modifying user account properties for a user with a standard Active Directory security group as the primary group requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the user account Click the Properties tab and select Allow to apply the following properties to this object only: For example, if you are using classic zones and • Read allowedAttributesEffective the UNIX user name is chris: • Read objectGUID domain/UNIX/Zones/Finance/Users/ chris then select serviceConnectionPoint objects • Write keywords If you are changing the UNIX user name for the user, you need the following additional permissions applied to this object: • Read name • Write name • Write Name property Note The Name property is the common name (cn) of the serviceConnectionPoint object. Note You can set the permissions for modifying user accounts by clicking Permissions when you are viewing the Centrify Profile for a user. Modifying users in RFC 2307-compliant zones In a standard RFC 2307-compliant zone, modifying user account properties for a user with an Active Directory security group as the primary group requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the user account Click the Properties tab and select Allow to apply the following properties to this object only: For example, if you are using classic zones and • Read allowedAttributesEffective the UNIX user name is chris: • Write keywords domain/UNIX/Zones/Finance/Users/ chris then select serviceConnectionPoint objects • Write uid • Write uidNumber • Write gidNumber • Write loginShell • Write unixHomeDirectory If you don’t see some of these attributes listed for serviceConnectionPoint objects, change the object selected to posixAccount objects, then click Allow for the additional properties. The GECOS field in a user’s UNIX profile is derived from the displayName attribute or the Name property (cn). Chapter 18 • Active Directory permissions required for administrative tasks 265 Setting rights to work with user accounts You can grant the required permissions to specific users or groups for any zone by selecting the Modify users task in the Zone Delegation Wizard. Note Listing user information in standard zones In a standard zone, listing user account information requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the user account Click the Properties tab and select Allow to apply the following properties to this object for each user included in the list: • Read displayName • Read managedBy • Read objectClass • Read Name to display the UNIX name • Read keywords to display the other UNIX attributes Listing user information in RFC 2307-compliant zones In a standard RFC 2307-compliant zone, listing user account information requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the user account Click the Properties tab and select Allow to apply the following properties to this object for each user included in the list: • Read displayName • Read keywords • Read managedBy • Read objectClass • Read uid to display the UNIX name • Read uidNumber to display the UNIX UID • Read gidNumber to display the GID of the user’s primary group • Read logonShell to display the default shell for the user • Read unixHomeDirectory to display the user’s home directory • Read Public Information to display the userPrincipalName for the user Planning and Deployment Guide 266 Setting rights to work with group accounts Removing users from zones Removing a user account from a standard zone or RFC 2307-compliant zone requires the following permission: Select this target object To apply these permissions The serviceConnectionPoint object for the user account On the Object tab, select Allow to apply the following permission to this object only: • Delete Setting rights to work with group accounts The specific objects and permissions required to work with group accounts can vary depending on the type of zone the group is associated with and the task to be performed. In most cases, you can grant the required permissions to specific users or groups by selecting the appropriate task in the Zone Delegation Wizard. Adding an Active Directory group to a zone Adding an Active Directory group to a zone requires the following permissions: Select this target object To apply these permissions Parent container object for the group On the Object tab, select Allow to apply the following permission to For example, if you are using classic zones, the this object only: • Create serviceConnectionPoint objects ZoneName/Groups container: domain/UNIX/Zones/acme/Groups Click the Properties tab and select Allow to apply the following properties to this object only: • Read objectClass Note You can grant the required permissions to specific users or groups by selecting the Add or remove groups task in the Zone Delegation Wizard. Group account object in Active Directory For example: Click the Properties tab and select Allow to apply the following properties to this object only: domain/UNIX/UNIX groups/group_name • Read groupType • Read objectCategory • Read objectClass • Read objectGUID • Read objectSid Parent container object for the individual zone Click the Properties tab and select Allow to apply the following properties to this object only: For example, if you are adding a group to the • Read objectGUID Finance zone: • Write Description domain/UNIX/Zones/Finance Chapter 18 • Active Directory permissions required for administrative tasks 267 Setting rights to work with group accounts Modifying a group in standard zones In a standard zone, modifying a group profile in a zone requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the group account Click the Properties tab and select Allow to apply the following properties to this object only: For example, if the UNIX group name is web- • Read allowedAttributesEffective qa in the HKLab zone: • Read objectGUID domain/UNIX/Zones/HKLab/Groups/ web-qa then select serviceConnectionPoint objects • Read Name If you are changing the UNIX group name for a group, you need the following additional permissions applied to this object: • Read name • Write name • Write Name Note The Name property is the common name (cn) of the serviceConnectionPoint object. Modifying a group in RFC 2307-compliant zones In a standard RFC 2307-compliant zone, modifying a UNIX-enabled group in a zone requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the group account Click the Properties tab and select Allow to apply the following properties to this object only: • Read allowedAttributesEffective • Read objectGUID • Read Name If you are changing the UNIX group identifier for a group, you need the following additional permissions applied to this object: • Read gidNumber • Write gidNumber Note If you don’t see this attribute listed for the serviceConnectionPoint object, change the object selected to posixGroup objects. If you are changing the UNIX name for a group, you need the following additional permissions applied to this object: • Read name • Write name • Write Name Note The Name property is the common name (cn) of the serviceConnectionPoint object. Planning and Deployment Guide 268 Setting rights to work with group accounts Listing group information in zones In a standard zone, listing group account information requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the group account Click the Properties tab and select Allow to apply the following properties to this object for each group included in the list: • Read displayName • Read managedBy • Read objectClass • Read Name to display the UNIX group name • Read keywords to display the UNIX GID Listing group information in RFC 2307-compliant zones In a standard RFC 2307-compliant zone, listing group account information requires the following permissions: Select this target object To apply these permissions The serviceConnectionPoint object for the user account Click the Properties tab and select Allow to apply the following properties to this object for each user included in the list: • Read displayName • Read keywords • Read managedBy • Read objectClass • Read objectGUID • Read Name to display the group name • Read gidNumber to display the group GID Removing groups from zones Removing an Active Directory group from a standard zone or RFC 2307-compliant zone requires the following permission: Select this target object To apply these permissions The serviceConnectionPoint object for the group account On the Object tab, select Allow to apply the following permission to this object only: • Delete Chapter 18 • Active Directory permissions required for administrative tasks 269 Setting rights to work with license keys Setting rights to work with license keys Starting the Access Manager console requires the following permissions on the container object for licenses: Select this target object To apply these permissions The domain root object Click the Properties tab and select Allow to apply the following For example, if the root domain of the forest is properties to this object only: arcade.com: • Read objectClass DC=arcade,DC=com Parent container for the Licenses container object On the Object tab, select Allow to apply the following permission to this object only: For example: • List contents domain/Centrify UNIX Parent container for license keys On the Object tab, select Allow to apply the following permission to For example, the Licenses container object this object only: you created or selected in the Setup Wizard: • List contents domain/Centrify UNIX/Licenses To add and remove license keys, your user account must have the following permissions: For this target object You need these permissions Parent container for license keys Click the Properties tab and select Allow to apply the following For example, the Licenses container object properties to this object and all child objects: you created or selected in the Setup Wizard: • Write Description domain/Centrify UNIX/Licenses Setting rights to work with NIS maps You can delegate administrative permissions for all NIS Maps in a zone or for any specific NIS map within a zone by selecting either the NIS Maps parent container object or the specific NIS map object you want to work with. If you select the NIS Maps parent container object, the permissions you set apply to all NIS maps you add to the zone. If you select the individual NIS map object, the permissions you set only apply to that individual NIS map. To set permissions on NIS maps or NIS map entries: 1 Open the ADSI Edit MMC snap-in and connect to the Active Directory domain. For NIS maps, you must use the Zone Delegation Wizard or ADSI Edit to set Active Directory permissions. Note 2 In the console tree, navigate to the zone folder. Planning and Deployment Guide 270 Setting rights to work with NIS maps For example, if you installed in the default location and are setting permissions for NIS maps in the default zone, expand Domain > CN=Program Data > CN=Centrify > CN=Zones > CN=global-default. 3 Select CN=NisMaps to set permissions for all NIS Maps in a zone, right-click, then select Properties. If setting permissions for an individual map, expand CN=NisMaps, then select the map object, for example, CN=auto_master, right-click and select Properties. 4 Click the Security tab, then click Advanced. 5 Click Add to search for the user or group to which you want to give administrative privileges, select the user or group in the results, then click OK. 6 Scroll to locate the appropriate permissions for the object and its properties to allow the selected user or group to perform the administrative task, check Allow, then click OK. Adding NIS maps to a zone To add NIS maps to the NIS Maps parent container in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps For example, if you are using classic zones: On the Object tab, select Allow to apply the following permissions to this object and all child objects: domain/UNIX/Zones/ZoneName/NISMaps • Create Container Objects Deleting NIS maps from a zone To delete NIS maps in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps On the Object tab, select Allow to apply the following permissions: • Delete Container Objects applied to this object and all child objects. On the Object tab, set Apply onto to Container objects, then select Allow to apply the following permissions: • Delete Subtree Note This permission is required if the map contains any entries. Chapter 18 • Active Directory permissions required for administrative tasks 271 Setting rights to work with NIS maps Adding map entries to any NIS map To add entries to any NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps On the Object tab, set Apply onto to Container objects, then select Allow to apply the following permissions: • Create classStore Objects Modifying map entries in any NIS map To modify entries in any NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps Click the Properties tab, set Apply onto to classStore objects, then select Allow for the following properties: • Write adminDescription • Write Description • Write wWWHomePage Changing the map type for any NIS map To change the map type for any NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps Click the Properties tab, set Apply onto to This object and all child objects, then select Allow for the following properties: • Write Description Deleting map entries from any NIS map To delete entries from any NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Parent container for NIS Maps Click the Properties tab, set Apply onto to classStore objects, then select Allow for the following properties: • Write name • Write Name Planning and Deployment Guide 272 Setting rights to work with NIS maps Adding entries to a specific NIS map in a zone To add entries to a specific NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Individual NIS map On the Object tab, select Allow to apply the following permissions to this object and all child objects: • Create classStore Objects Modifying entries in a specific NIS map To modify the entries in a specific NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Individual NIS map Click the Properties tab, set Apply onto to classStore objects, then select Allow for the following properties: • Write adminDescription • Write Description • Write wWWHomePage Changing the map type for a specific NIS map To change the map type for a specific NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Individual NIS map Click the Properties tab, set the Apply onto to This object and all child objects, then select Allow for the following properties: • Write Description Deleting map entries from a specific NIS map To delete entries from a specific NIS map in a zone, the user account must have the following permissions: Select this target object To apply these permissions Individual NIS map Click the Properties tab, set Apply onto to classStore objects, then select Allow for the following properties: • Write name • Write Name Chapter 18 • Active Directory permissions required for administrative tasks 273 Setting permissions for password synchronization Setting permissions for password synchronization If you want to use the Network Information Service, adnisd, and the Centrify Password Filter to support “agentless” authentication of NIS client requests, the computer that will service the requests must be a member of the zone_nis_servers group in the zone and must be able to access the Active Directory attribute that stores the password hash. The specific permissions required depend on the attribute being used to store the password hash. If you are using the Centrify Password Filter synchronization service, the zone_nis_servers group requires the following permissions: If this attribute is used These permissions are required altSecurityIndentities • Read altSecurityIndentities msSFU30Password • Read msSFU30Password unixUserPassword • Read unixUserPassword • All Extended Rights Using the Microsoft password synchronization service If you are using the password synchronization service and the Centrify Network Information Service, adnisd, to authenticate NIS client requests, you must set the following permissions at the domain level, on the Users container object, or on another container that applies to all users. Select this target object To apply these permissions Users object or a container that applies to all Click the Object tab, set the Apply onto to User objects and select users Allow to apply the following permission: • All Extended Rights You can apply this permission to Domain Computers or to a specific group of computers that contains the computer where the adnisd service is running. For information about installing and configuring a Microsoft password synchronization service, see the Microsoft documentation for that service or refer to documentation on the Microsoft Web site. Setting permissions for rights and roles If you define specific rights and establish role-based access controls on a zone-by-zone or computer-by-computer basis, you may want to manually assign permissions for users who can configure rights and roles. Planning and Deployment Guide 274 Setting permissions for rights and roles All of the information about rights, roles, and role assignments is held in an authorization store for each zone in Active Directory. The name of authorization store object is CN=Authorization under the zone object’s DN. For example, the authorization store for the zone named EMEA_Territories in the Arcade.Net forest is: cn=Authorization, cn=EMEA_Territories, cn=Zones, cn=UNIX, dc=Arcade, dc=Net To create the authorization store for a zone, users must have the following permissions: Select this target object To apply these permissions Parent container for an individual zone On the Object tab, select Allow to apply the following permissions to this object and all child objects: For example, a ZoneName container object, such as: domain/UNIX/Zones/arcade • List contents • Read all properties • Read Permissions Select Allow to apply the following permissions to this object only: • Create msDS-AzAdminManager objects To configure rights, roles, and role assignments, users must have the following permissions: Select this target object To apply these permissions Authorization On the Object tab, select Allow to apply the following permissions to this object and all child objects: • List contents • Read all properties • Write all properties On the Object tab, select Allow to apply the following permissions to This object is listed under a globally unique this object (listed as CN=GUID under the Authorization object) and identifier (GUID) for the Authorization object. all child objects: • Create and delete msDS-AzOperation objects For example: msDS-AzApplication CN=cab186af-61a0-4d54-a0dd... • Create and delete msDS-AzTask objects • Create and delete msDS-AzRole objects • Create msDS-AzScope objects Note You must grant these permissions on the CN=GUID object if you are granting permissions manually with ADSI Edit. The proper permissions are set automatically for the users when you delegate administrative tasks for a zone. Configuring authorization in classic zones Unlike hierarchical zones, authorization is an optional feature in classic zones. You must be an administrator or the user who created a classic zone to initialize the authorization store in Active Directory, identify the users who should be allowed to configure rights, roles, and role assignments, and enable or disable the enforcement of the rights and role assignments you have configured. Chapter 18 • Active Directory permissions required for administrative tasks 275 Setting permissions for rights and roles To update the list of users and groups who are allowed to configure DirectAuthorize rights and roles, you must have the Modify permissions right on the Authorization container under the classic zone container applied to this object and all child objects. If you have this permission, you can click Add to add Windows users and groups to the list of users and groups who can configure rights and roles. If you have the Modify permissions right, you can also select a user or group in the list and click Remove a user or group from the list. Adding roles To add roles for users or groups, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzTaskObjectContainer On the Object tab, select Allow to apply the following permissions to this object: This object is listed under a globally unique identifier (GUID) for the Authorization object. • Create msDS-AzTask objects Click the Properties tab, then select Allow for the following properties: • Read objectClass Modifying roles To modify roles for users or groups, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzTaskObjectContainer/ CN=roleName Click the Properties tab, then select Allow for the following properties: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a specific role name. • Read description • Read msDS-AzApplicationData • Write Name • Write name • Write description • Write msDS-AzApplicationData Planning and Deployment Guide 276 Setting permissions for rights and roles Deleting roles To delete roles for users or groups, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzTaskObjectContainer/ CN=roleName Click the Properties tab, then select Allow for the following properties: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a specific role name. • Allow Delete Adding rights To add the definition for a right in a zone, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-OpObjectContainer On the Object tab, select Allow to apply the following permissions to this object: This object is listed under a globally unique identifier (GUID) for the Authorization object. • Create msDS-AzOperation objects Click the Properties tab, then select Allow for the following properties: • Read objectClass Chapter 18 • Active Directory permissions required for administrative tasks 277 Setting permissions for rights and roles Modifying rights To modify right definitions in a zone, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzTaskObjectContainer/ CN=roleName Click the Properties tab, then select Allow for the following properties: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a specific role name. • Read description • Read msDS-AzApplicationData • Write Name • Write name • Write description • Write msDS-AzApplicationData Deleting rights To delete right definitions in a zone, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzOpObjectContainer/ CN=pam-rightName Click the Properties tab, then select Allow for the following properties: or • Read Name msDS-AzOpObjectContainer/ CN=pc-rightName • Read name • Allow Delete This object is listed under a globally unique identifier (GUID) for the Authorization object and a specific PAM access right name or privileged command name. Planning and Deployment Guide 278 Setting permissions for rights and roles Adding or removing rights from roles To add or remove rights from a role in a zone, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzTaskObjectContainer/ CN=roleName Click the Properties tab, then select Allow for the following properties: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a specific role name. • Read msDS-OperationsForAzTask • Write msDS-OperationsForAzTask Adding role assignments To add a role assignment, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzRoleObjectContainer On the Object tab, select Allow to apply the following permissions to This object is listed under a globally unique this object: identifier (GUID) for the Authorization object. • Create msDS-AzRole objects Modifying role assignments To modify role assignments, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData Chapter 18 • Active Directory permissions required for administrative tasks 279 Setting permissions for the Zone Provisioning Agent Select this target object To apply these permissions msDS-AzRoleObjectContainer On the Object tab, select Allow to apply the following permissions to This object is listed under a globally unique this object: identifier (GUID) for the Authorization object. • Create msDS-AzRole objects msDS-AzRoleObjectContainer/ CN=CRA_<guid> Click the Properties tab, then select Allow for the following properties to allow changes to the assigned user or groups: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a unique identifier for the role • Allow Delete assignment. Click the Properties tab, then select Allow for the following properties to allow changes to the available time for a role assignment: • Read Name • Read name • Read msDS-AzApplicationData • Write msDS-AzApplicationData Deleting role assignments To modify role assignments, users must have the following permissions: Select this target object To apply these permissions Authorization Click the Properties tab, then select Allow for the following properties: • Write msDS-AzApplicationData msDS-AzRoleObjectContainer/ CN=CRA_<guid> Click the Properties tab, then select Allow for the following properties: This object is listed under a globally unique • Read Name identifier (GUID) for the Authorization object • Read name and a unique identifier for the role • Allow Delete assignment. Setting permissions for the Zone Provisioning Agent The Zone Provisioning Agent requires permission to create UNIX profiles, that is, the service connection points in each zone where it needs to perform provisioning operations. The service account that runs the Zone Provisioning Agent requires the Log on as a service right set as a local computer security policy, or in the default domain policy. Planning and Deployment Guide 280 Index A Access Manager key tasks 22 prerequisites 62 required containers 54 starting the first time 73 account mapping evolving the deployment 213 integrating the enterprise 221 risks 198 to 199 services 197 Active Directory attributes in UNIX profiles 162 authority to manage groups 53 change control 47 computer roles 194 contacting administrators 46 data storage 58 distribution groups 53 DNS configuration 62 domain controller selection 25 empty forest root 48 group policies 220 initial configuration 73 licenses container 74 notification handler 75 NTLM authentication 209 one-way trust 50 opening ports 206 organizational structure 47 read-only domain controllers 208 replicating objects 208 required containers 54 schema 21 separate forests for external resources 205 service account mapping 197 single forest 48 tools available 59 top-level provisioning groups 123 trusted forests 49 two-way trusts 49 using NTLM authentication 209 zones container 74 Active Directory Users and Computers Centrify Profile 22 data manipulation 60 installation requirement 62 ongoing administrative tasks 212 privileged tasks 239 setting permissions 235 using instead of Access Manager 21 adcheck 83, 84 adclient key tasks 25 managed computers 20 NSS operation 27 operations performed 24 to 25 PAM operation 26 adjoin automating 176 common options 146 operations performed 145 permissions granted 257, 261 precreate option 208 provision new computers 145 requirements 146 self-service option 209 using in build scripts 145 administrative console key tasks 22 starting the first time 73 ADSI Edit 270 agent cached information 25 deploying 40 joining a read-only domain controller 208 managed computers 20 Name Service Switch (NSS) 27 Pluggable Authentication Module 25 support for UNIX services 23 agentless authentication computer account 259 281 enterprise edition features 20 permissions 274 Analysis Tools checks performed 85 downloading 83 location 83 running on discovered computers 85 viewing open issues 87 assessment introduction 85 preparing for deployment 85 Auto Zone 106 B business processes automated provisioning 149 identifying stakeholders 46 leveraging existing 137 protecting an internal forest 50 provisioning rules 53 C Centrify administrators creating a security group for 55 Centrify agent insstall.sh 91 key tasks 23 managed computers 20 mapping NTLM domains 209 typical logon 28 Centrify software Active Directory and DNS 62 agent services 23 preparing to install 61 setup program 62, 64 system requirements 63 Centrify website 11 computer account creating for a DMZ 208 naming 130 options for creating 130 overrides 130 preparing for migration 130 computer roles purpose 193 simplified management 193 conventions, documentation 10 Planning and Deployment Guide cross-forest authentication 49 D de-militarized zone (DMZ) 50, 205 deployment analysis and design 13 checklist example 231 defining goals 17 department announcement template 229 documentation 16 evaluation stage 13 identifying stakeholders 47 importance of planning 13 iterative process 76 iterative roll-out 14 management and evolution 14 notification template 229 obstacles 47 pilot stage 14 production environment 173 project plan 15 project team members 15 selecting target computers 77 test case examples 227 testing and resolving issues 172 testing and validation stage 14 training materials 172 using a DMZ 207 validating operations 168 verifying authentication and password policies 169 zone design template 225 Deployment Manager alternatives to 91 analyze discovered computers 85 assessment feature 85 authentication method 81 checking for reachable computers 79 checking for software updates 212 discovery options 78 downloading software 83 exporting users and groups 117 installing Centrify agents 89 Internet connection 83 introduction 71 inventory results 82 joining the domain 103, 143 key tasks 77 282 local repository 82 network connectivity 72 offline product catalog 84 packages location 83 re-running analysis 89 resolving issues 88 results displayed 86 reviewing open issues 87 security 71 specifying account information 80 standalone installation 72 standalone setup program 64 system requirements 71 unreachable computers 79 without Internet access 73 without the Internet 84 deployment process preliminary risk assessment 85 DirectManage Access Active Directory and DNS requirements 62 installation prerequisites 63 prerequisites 62 disconnected operation cache usage 27 checking the network 215 credential storage 25 verifying authentication 171 disjointed namespace Active Directory infrastructure 48 adjoin options to use 146 checking for 231 joining a domain 144 preparing a computer object 130 display specifiers 239 documentation additional 10 audience 8 conventions 10 summary of contents 8 to 10 domain controller authentication through firewalls 209 failover 20 failover operation 25 locating in a site 25 network traffic 213 preparing for installation 62 troubleshooting authentication 215 Index domain controllers read-only 208 replicating objects 208 Domain Name Service (DNS) disjointed namespace 48 resolving common issues 88 Windows requirement 62 F firewall allowing authentication through 50 NTLM authentication 209 port requirements 207 protected assets 205 resolving common issues 88 forest account and resource domains 49 de-militarized zone (DMZ) 50 empty root domain 48 one-way trust 205 read-only domain controllers 208 single domain 48 trust relationships 49 G group policy Centrify templates 220 commonly deployed 40 domain settings 220 groups adding new profiles 157, 163 avoiding name collisions 132 business rules for provisioning 149 defining in a DMZ 206 importing into a parent zone 133 importing into child zones 134 managing role assignments 137 naming convention 132 provisioning in the parent zone 142 setting attributes on specific computers 134 using the Import from UNIX wizard 133 H HP-UX agent directory 92 downloading software 83 file names displayed 92 283 I IBM AIX agent directory 92 deployment team members 15 downloading software 83 mount command 92 identity management inherited attributes 111 legacy profile attributes 106 planning zones 105 runtime variables 112 identity risk assessment introduction 85 installation account credentials required 63 Active Directory and DNS requirements 62 automated software delivery 103 configuration files 94 files and directories 103 interactive using install.sh 91 native programs 98 parameters to configure 95 to 97 return codes 98 running setup on Windows 64 to 65 sample configuration 97 silent 93 Windows components 61 internal networks 205 K Kerberos overview of operation 27 to 28 timestamp 25 trust relationships 49 L LDAP binding time 31 creating a trace 224 firewall restrictions 209 identity stores 232 look-up requests 24, 27 migrating user identities 106 using standard commands 59 licenses parent container 54 licensing Planning and Deployment Guide container permissions 238 Linux deployment team members 15 downloading software 83 mount command 92 naming convention 10 zone strategy 127 listed role identifying users 138 profiles without login access 137 login role assigning in parent or child zone 138 introduction 114 minimizing disruption 137 M Mac OS X additional documentation 8 adjoin requirements 146 agent directory 92 Apple Remote Desktop 103 deployment team members 15 downloading software 83 installation instructions 92 UNIX naming convention 10 man pages adinfo 170 adjoin 146 managed computers 20 Microsoft Management Console (MMC) Active Directory 22 ADSI Edit 270 Microsoft Services for UNIX (SFU) storing UNIX attributes 22 migration accounts to ignore 119 accounts to import 121 collecting information 116 group attributes 121 invalid and locked accounts 119 joining the domain 143 local user accounts 145 NIS domains 118 other departments 117 provisioning groups 124 user attributes 120 using scripts 118 284 validating with formal testing 168 verifying access before joining 140 verifying authentication 146 N Name Service Switch (NSS) agent service 24 configuration file 27 retrieving information from Active Directory 27 Network Information Service (NIS) client requests to Active Directory 221 map permissions 270 to 273 migrating 106 zone permissions 241 NT Lan Manager (NTLM) authentication requests 209 O operating system requirements 63 organizational unit (OU) Centrify Administration 52 Computer Roles 52 Licenses container 54 management of UNIX data 50 multiple top-level 48 Provisioning Groups 53 recommended structure 47 regional or team-based 75 Servers 52 Service Accounts 53 UNIX Groups 53 User Roles 54 Zones container 54 P pam.ntlm.auth.domains 209 password management computer accounts 25 default domain policies 220 PAM-enabled services 26 perimeter forest 50, 205 permissions assigned by delegation 241 computer accounts 256 computer role properties 255 creating a zone 248 delegating administrative tasks 249 Index deleting a zone 251 displaying the Centrify Profile 239 group accounts 267 joining a domain 255 leaving a domain 256 managing rights and roles 251 managing role assignments 253 methods for setting 235 modifying zone properties 250 NIS maps 270 opening a zone 249 password synchronization 274 preparing a computer account 261 renaming a zone 250 rights and roles 274 Setup Wizard 237 starting Access Manager 270 user accounts 263 Zone Provisioning Agent 280 planning assembling a project team 15 formal testing 168 Identifying goals and priorities 17 identifying stakeholders 46 information required 12 minimal disruption 13 obstacles 47 Pluggable Authentication Module (PAM) agent module 24 enabling for applications 218 modifying configuration 26 placed first 25 services provided 26 typical logon process 28 primary groups assigning for all UNIX users 151 user attribute 21 using the zone default value 153 privileged commands role 178 provisioning adding new users 155 command line options 157 Domain Users as the primary GID 151 groups in the parent zone 142 hierarchical zones 154 integrating with existing processes 148 leveraging existing processes 137 285 manual 167 stakeholders 46 users in the parent zone 141 using Active Directory attributes 162 Provisioning Agent Windows Service 69 R read-only domain controllers (RODC) 208 restricted shells 113 rights all commands 178 cumulative 192 defined 113 predefined 113 run as root 178 switch user (su) operations 181 zone hierarchy 178 risk reduction 85 role assignments assigning on individual computers 139 inheritance 113 login for interactive access 137 managing outside of Active Directory 139 provisioning new users 155 recognized without log on access 137 using Active Directory groups 137 verifying access 140 roles business problem 177 computer-specific assignments 187 cumulative rights 192 customizing 192 defined 113 dzsh shell 185 executing services 181 linking computers to groups 192 login 114 PAM access rights 182 root-equivalent 177 shared accounts 182 switch user (su) operations 181 temporary 185 testing access 184 zone hierarchy 178 root user error encountered 98 install.sh script 91 Planning and Deployment Guide mapping 213 native installers 99 root-equivalent role Active Directory group 180, 183 creating in a zone 179 defining rights for 178 purpose 177 security of 178 system rights 179 S separation of duties child domains 48 consolidating UNIX data 47 planning for 18 recommended OUs 50 zone design 107 service accounts assigning the role 201 choosing to migrate 196 creating user for 197 definition 195 disabling 199 enabled user 198 Kerberos authentication 203 mapping to Active Directory 197 non-restricted shell 200 outage period 198 password-guessing attacks 199 restricted role 181 risks 198 to 199 role definition 200 shared passwords 195, 196 SSH keys 196 sudoers policies 196 UNIX profile definition 201 using SSH keys 202 Setup Wizard Licenses container 74 permission requirements 237 required containers 51 starting Access Manager 73 Zones container 74 Show Effective Users 140 single sign-on (SSO) Kerberos-enabled applications 218 PAM-aware applications 218 286 system right 113 Web applications 219 Sun Solaris agent directory 92 downloading software 83 global zone 95 native package installer 99 system rights 113 T trust relationships 50 trusted external forests 33 U UNIX clock maintenance 25 consolidating data 47 domain controller selection 25 files and directories 103 interactive log ons 137 naming convention 10 new users 26 verifying operations 170 UNIX profile managing properties 22 users business rules for provisioning 151 enabling authentication for a DMZ 206 importing into zones 135 login role assignment 137 migrating using zones 106 provisioning in the parent zone 141 secondary group membership 136 skeleton files 26 valid UNIX profile 136 verifying access 140 W Windows checking system requirements 63 integrating Unix computers 20 knowledge of 8 workstation mode 106 writable domain controllers 208 Z Zone Administrators Index authority to manage groups 53 Zone Provisioning Agent Active Directory infrastructure 53 components 66 existing users in the parent zone 141 failover 67 installing the property page 68 introduction 66 monitoring 69 ongoing operation 66 organizational units 70 policy requirement 67 polling interval 70 service account 67 standalone setup program 64 starting 71 using Active Directory attributes 163 Windows service 69 zones advantages of using 105 automated provisioning of new groups 149 candidate profiles 114 classic 108 conflicting attributes 120 container permissions 238 controlling access with 107 creating the parent 123 default role definitions 114 delegated administration 107 deployment model 115 hierarchical 109 identity stores 106 importing users 135 incomplete profiles 111 inheritance 110 initial goals 116 keys to designing 105 limitations 109 mapping identities 106 migrating users 106 parent and child 111, 122 parent container 54, 74 partial profiles 112 permission requirements 248 permissions assigned by delegation 241 profile management 122 profiles attributes 111 287 role assignments 113 role-based access 113 runtime variables 112 sample analysis template 225 strategies for 110 understanding the use of 105 to 106 UNIX group naming 132 using in the DMZ forest 206 zoneupdate adding a group profile 151 command line options 157 preview mode 156 Planning and Deployment Guide 288
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
advertising