Chapter 27. Configuration: Defining Access Control for IdM Users Access control is a security system which defines who can access certain resources - from machines to services to entries - and what kinds of operations they are allowed to perform. Identity Management provides several access control areas to make it very clear what kind of access is being granted and to whom it is granted. As part of this, Identity Management draws a distinction between access controls to resources within the domain and access control to the IdM configuration itself. This chapter details the different internal access control mechanisms that are available for users within IdM to the IdM server and other IdM users. 27.1. About Access Controls for IdM Entries Access control defines the rights or permissions users have been granted to perform operations on other users or objects. 27.1.1. A Brief Look at Access Control Concepts The Identity Management access control structure is based on standard LDAP access controls. Access within the IdM server is based on the IdM users (who are stored in the backend Directory Server instance) who are allowed to access other IdM entities (which are also stored as LDAP entries in the Directory Server instance). An access control instruction (ACI) has three parts: Who can perform the operation . This is the entity who is being granted permission to do something; this is the actor. In LDAP access control models, this is called the bind rule because it defines who the user is (based on their bind information) and can optionally require other limits on the bind attempt, such as restricting attempts to a certain time of day or a certain machine. What can be accessed . This defines the entry which the actor is allowed to perform operations on. This is the target of the access control rule. What type of operation can be performed . The last part is determining what kinds of actions the user is allowed to perform. The most common operations are add, delete, write, read, and search. In Identity Management, all users are implicitly granted read and search rights to all entries in the IdM domain, with restrictions only for sensitive attributes like passwords and Kerberos keys. (Anonymous users are restricted from seeing security-related configuration, like sudo rules and host-based access control.) The only rights which can be granted are add, delete, and write - the permissions required to modify an entry. When any operation is attempted, the first thing that the IdM client does is send user credentials as part of the bind operation. The backend Directory Server checks those user credentials and then checks the user account to see if the user has permission to perform the requested operation. 27.1.2. Access Control Methods in Identity Management To make access control rules simple and clear to implement, Identity Management divides access control definitions into three categories: Self-service rules , which define what operations a user can perform on his own personal entry. The access control type only allows write permissions to attributes within the entry; it does not allow add or delete operations for the entry itself. Delegation rules , which allow a specific user group to perform write (edit) operations on specific attributes for users in another user group. Like self-service rules, this form of access control rule is limited to editing the values of specific attributes; it does not grant the ability to add or remove whole entries or control over unspecified attributes. Role-based access control , which creates special access control groups which are then granted much broader authority over all types of entities in the IdM domain. Roles can be granted edit, add, and delete rights, meaning they can be granted complete control over entire entries, not just selected attributes. Some roles are already created and available within Identity Management. Special roles can be created to manage any type of entry in specific ways, such as hosts, automount configuration, netgroups, DNS settings, and IdM configuration.

Commands: