Los roles de administrador definen dos aspectos: un conjunto de capacidades y un ámbito de control. (El término "ámbito de control" se refiere a una o más organizaciones administradas.) Una vez definidos, los roles de administrador pueden asignarse a uno o varios administradores.
No hay que confundir los roles y los roles de administrador. Los roles sirven para administrar el acceso de los usuarios finales a los recursos externos, mientras que los roles de administrador se utilizan sobre todo para gestionar el acceso del administrador a los objetos de Identity Manager.
En esta sección nos limitamos a los roles de administración. Para obtener información sobre los roles, consulte Conceptos y administración de roles.
Es posible asignar varios roles de administrador a un único administrador. Ello permite que un administrador tenga un conjunto de capacidades en un ámbito de control y otro distinto en otro ámbito de control. Por ejemplo, un rol de administrador puede conceder al administrador el derecho a crear y editar usuarios para las organizaciones controladas especificadas en ese rol de administrador. Sin embargo, un segundo rol de administrador asignado al mismo administrador podría garantizar únicamente el derecho a cambiar las contraseñas de los usuarios en un conjunto distinto de organizaciones controladas definidas en el rol de administrador.
Los roles de administrador permiten reutilizar las parejas de capacidades y ámbito de control. También simplifican la gestión de los privilegios de administrador con cifras de usuarios muy elevadas. En lugar de asignar directamente capacidades y organizaciones controladas a los usuarios, conviene utilizar roles de administrador para otorgar privilegios de administrador.
La asignación de capacidades, organizaciones o ambas a un rol de administrador puede ser directa o dinámica (indirecta).
Directo. Con este método, las capacidades y/u organizaciones controladas se asignan explícitamente al rol de administrador. Por ejemplo, a un rol de administrador se le podría asignar la capacidad Administrador de informes de usuario y la organización controlada superior.
Dinámico (indirecto). Este método aplica reglas para asignar capacidades y organizaciones controladas. Las reglas se evalúan cada vez que inicia la sesión un administrador que tiene asignado el rol de administrador. Una vez autenticado un administrador, las reglas determinan dinámicamente qué conjunto de capacidades y/u organizaciones controladas se asigna.
Por ejemplo, cuando un usuario inicia la sesión:
Si su cargo de usuario de Active Directory (AD) es administrador, la regla de capacidades podría devolver Administrador de cuentas como capacidad para ser asignada.
Si su departamento de usuario de Active Directory (AD) es marketing, la regla de organizaciones controladas podría devolver Marketing como organización controlada para ser asignada.
La asignación dinámica de roles de administrador a los usuarios se puede habilitar o inhabilitar para cada interfaz de inicio de sesión (por ejemplo, interfaz de usuario o de administración). Para ello, defina el siguiente atributo de configuración del sistema en true o false:
security.authz.checkDynamicallyAssignedAdminRolesAtLoginTo.logininterface
El valor predeterminado para todas las interfaces es false.
Encontrará instrucciones para editar el objeto de configuración del sistema en Edición de objetos de configuración de Identity Manager.
Identity Manager incluye reglas de ejemplo que puede aprovechar para crear reglas de roles de administrador. Estas reglas se encuentran en el directorio de instalación de Identity Manager dentro del archivo sample/adminRoleRules.xml.
La Tabla 6–1 contiene los nombres de regla y el tipo de autorización (authType) que debe especificar con cada una.
Tabla 6–1 Ejemplos de reglas de roles de administrador
Nombre de regla |
authType |
---|---|
Regla de organizaciones controladas |
ControlledOrganizationsRule |
Regla de capacidades |
CapabilitiesRule |
Regla de usuario con rol de administrador asignado |
UserIsAssignedAdminRoleRule |
Encontrará información sobre las reglas de ejemplo suministradas para los roles de administración de usuarios de proveedores de servicios dentro de Administración delegada para usuarios de Service Provider en el Capítulo 17Administración de Service Provider.
Identity Manager incluye un rol de administrador interno: el rol de administrador de usuarios. Carece de asignaciones predeterminadas de capacidades y organizaciones controladas. No se puede eliminar. Este rol de administrador se asigna implícitamente a todos los usuarios (usuarios finales y administradores) al iniciar la sesión, con independencia de la interfaz donde la inicien (por ejemplo, usuario, administración, consola o Identity Manager IDE).
Encontrará información sobre la creación de roles de administrador para los usuarios de proveedores de servicios dentro de Administración delegada para usuarios de Service Provider en el Capítulo 17Administración de Service Provider.
El rol de administrador de usuarios se puede editar en la interfaz de administración (seleccione Seguridad y después Roles de administrador (Admin).
Como las capacidades u organizaciones controladas asignadas estáticamente mediante este rol de administrador se asignan a todos los usuarios, se recomienda utilizar reglas para asignar capacidades y organizaciones controladas. Así será posible que distintos usuarios tengan distintas (o ninguna) capacidades, mientras que el ámbito de las asignaciones dependerá de factores como quiénes son, en qué departamento trabajan o si son directivos, lo que puede consultarse en el contexto de las reglas.
El rol de administrador de usuarios no impide ni sustituye el uso de la marca authorized=true en los flujos de trabajo. Esta marca sigue siendo apropiada cuando el usuario no debería tener acceso a los objetos a los que se accede en el flujo de trabajo, excepto cuando se está ejecutando el flujo de trabajo. Básicamente, esto permite al usuario introducir un modo de ejecución como superusuario.
No obstante, a veces interesa que un usuario tenga acceso específico a uno o más objetos fuera (y potencialmente dentro) de los flujos de trabajo. En estos casos, el uso de reglas para asignar dinámicamente capacidades y organizaciones controladas permite la autorización minuciosa de dichos objetos.
Para crear o editar un rol de administrador, debe tener asignada la capacidad Administrador de roles de Admin.
Para acceder a los roles de administrador en la interfaz de administración, seleccione Seguridad y después la ficha Roles de administrador (Admin). La lista de la página Roles de administrador (Admin) sirve para crear, editar y eliminar roles de administrador para los usuarios de Identity Manager y los usuarios de proveedores de servicios.
Para editar un rol de administrador existente, haga clic en un nombre de la lista. Pulse Nuevo para crear un rol de administrador. Identity Manager muestra las opciones de la vista Crear rol de administrador (Admin) (ilustrada en la Figura 6–3). La vista Crear rol de administrador (Admin) ofrece cuatro fichas que sirven para especificar los atributos, las capacidades y el ámbito genéricos del nuevo rol de administración, así como asignaciones del rol a los usuarios.
En la ficha General de la vista de creación o edición de rol de administrador se especifican las siguientes características básicas del rol de administrador:
Nombre. Un nombre único para este rol de administrador.
Por ejemplo, podría crear el rol de administrador financiero para los usuarios que vayan a tener capacidades administrativas en el departamento (u organización) financiero.
Tipo. Elija Objetos de Identity o Usuarios de Service Provider como tipo. Este campo es necesario.
Seleccione Objetos de Identity si va a crear un rol de administrador para usuarios (u objetos) de Identity Manager. Seleccione Usuarios de Service Provider si va a crear el rol de administrador para conceder acceso a usuarios de proveedores de servicios.
Encontrará información sobre la creación de roles de administrador para otorgar acceso a los usuarios de proveedores de servicios dentro de Administración delegada para usuarios de Service Provider en el Capítulo 17Administración de Service Provider.
Asignadores. Seleccione o busque los usuarios que estarán autorizados a asignar este rol de administrador a otros usuarios. El conjunto de usuarios seleccionables incluye los que tienen asignado el derecho de asignar capacidades.
Si no se selecciona ningún usuario, el único que podrá asignar el rol de administrador será el que lo haya creado. Si el usuario que creó el rol de administrador no tiene asignada la capacidad Asignar capacidades de usuario, seleccione uno o varios usuarios como Asignadores para garantizar que al menos un usuario pueda asignar el rol de administrador a otro usuario.
Organizaciones. Seleccione una o varias organizaciones para las que estará disponible este rol de administrador. Este campo es necesario.
El administrador puede administrar objetos en la organización asignada y en cualquier organización que pertenezca a ella en la jerarquía.
Identity Manager permite controlar qué usuarios quedan dentro del ámbito de control de un usuario final.
Use la ficha Ámbito de control (Figura 6–4) para especificar las organizaciones que pueden administrar los afiliados a esta organización, o la regla determinante de las organizaciones que deben administrar los usuarios con rol de administrador, así como para seleccionar el formulario de usuario para el rol de administrador.
Organizaciones controladas. En la lista Organizaciones disponibles, seleccione las organizaciones que este rol de administrador tiene derecho a gestionar.
Regla de organizaciones controladas. Seleccione una regla que, al iniciar la sesión, evaluará las organizaciones que deben ser controladas por el usuario al que se le asigne este rol de administrador. La regla seleccionada debe tener el tipo de autenticación ControlledOrganizationsRule. De manera predeterminada no se selecciona ninguna regla de organización controlada.
Puede aplicar la regla EndUserControlledOrganizations para establecer la lógica necesaria para asegurar que el conjunto adecuado de usuarios esté disponible para delegar, de acuerdo con sus necesidades organizativas.
Si prefiere que la lista de usuarios del ámbito sea igual para los administradores, ya utilicen la interfaz de administración o de usuario final, debe cambiar la regla EndUserControlledOrganizations.
Modifique la regla para comprobar primero si el usuario autenticador es un administrador y después configure lo siguiente:
Si el usuario no es un administrador, devolver el conjunto de organizaciones que debe controlar un usuario final, como su propia organización (por ejemplo, waveset.organization).
Si el usuario es un administrador, no devolver ninguna organización, de manera que el usuario sólo controle las organizaciones que se le asignen por ser administrador.
Por ejemplo:
<Rule protectedFromDelete=’true’ authType=’EndUserControlledOrganizationsRule’ id=’#ID#End User Controlled Organizations’ name=’End User Controlled Organizations’> <Comments> If the user logging in is not an Idm administrator, then return the organization that they are a member of. Otherwise, return null. </Comments> <cond> <and> <isnull><ref>waveset.adminRoles</ref></isnull> <isnull><ref>waveset.capabilities</ref></isnull> <isnull><ref>waveset.controlledOrganizations</ref></isnull> </and> <ref>waveset.organization</ref> </cond> <MemberObjectGroups> <ObjectRef type=’ObjectGroup’ id=’#ID#Top’ name=’Top’/> </MemberObjectGroups> </Rule> |
Si el usuario o administrador pertenecen a una organización dinámica, no se devuelven en los resultados de búsqueda.
Sin embargo, es posible crear una regla para devolver usuarios en organizaciones dinámicas. Cambie la regla de ejemplo siguiente añadiendo un atributo nuevo a la definición de esquema de usuario de Identity Manager incluida en el objeto Idm Schema Configuration, importe dicho objeto y después reinicie el servidor de Identity Manager.
<IDMAttributeConfigurations> ... <IDMAttributeConfiguration name='region' syntax='STRING' description='region of the country'/> </IDMAttributeConfigurations> <IDMObjectClassConfigurations> ... <IDMObjectClassConfiguration name='User' extends='Principal' description='User description'> ... <IDMObjectClassAttributeConfiguration name='region' queryable='true'/> </IDMObjectClassConfiguration> </IDMObjectClassConfigurations> Next, import the following Identity Manager objects: <!-- User member rule that will include all users whose region attribute matches the region organization display name --> <Rule name="Region User Member Rule" authType="UserMembersRule"> <Description>User Member Rule</Description> <list> <new class='com.waveset.object.AttributeCondition'> <s>region</s> <s>equals</s> <ref>userMemberRuleOrganizationDisplayName</ref> </new> </list> <MemberObjectGroups> <ObjectRef type="ObjectGroup" id="#ID#All" name="All"/> </MemberObjectGroups> </Rule> <!-- North & South Region organizations with user member rule assigned --> <ObjectGroup id='#ID#North Region' name='North Region' displayName='North Region'> <UserMembersRule cacheTimeout='3600000'> <ObjectRef type='Rule' name='Region User Member Rule'/> </UserMembersRule> <MemberObjectGroups> <ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/> </MemberObjectGroups> </ObjectGroup> <ObjectGroup id='#ID#South Region' name='South Region' displayName='South Region'> <UserMembersRule cacheTimeout='3600000'> <ObjectRef type='Rule' name='Region User Member Rule'/> </UserMembersRule> <MemberObjectGroups> <ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/> </MemberObjectGroups> </ObjectGroup> <!-- Organization containing all employees --> <ObjectGroup id='#ID#Employees' name='Employees' displayName='Employees'> <MemberObjectGroups> <ObjectRef type='ObjectGroup' name='Top' id='#ID#Top'/> </MemberObjectGroups> </ObjectGroup> <!-- End user controlled organization rule that give each user control of the regional organization they are a member of --> <Rule protectedFromDelete='true' authType='EndUserControlledOrganizationsRule' id='#ID#End User Controlled Organizations' name='End User Controlled Organizations' primaryObjectClass='Rule'> <switch> <ref>waveset.attributes.region</ref> <case> <s>North Region</s> <s>North Region</s> </case> <case> <s>South Region</s> <s>South Region</s> </case> <case> <s>East Region</s> <s>East Region</s> </case> <case> <s>West Region</s> <s>West Region</s> </case> </switch> <MemberObjectGroups> <ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/> </MemberObjectGroups> </Rule> <!-- 4 employees (2 in North and 2 in South region) --> <User name='emp1' primaryObjectClass='User' asciipassword='1111'> <Attribute name='firstname' type='string' value='Employee'/> <Attribute name='fullname' type='string' value='Employee One'/> <Attribute name='lastname' type='string' value='One'/> <Attribute name='region' type='string' value='North Region'/> <MemberObjectGroups> <ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees' displayName='Employees'/> </MemberObjectGroups> </User> <User name='emp2' primaryObjectClass='User' asciipassword='1111'> <Attribute name='firstname' type='string' value='Employee'/> <Attribute name='fullname' type='string' value='Employee Two'/> <Attribute name='lastname' type='string' value='Two'/> <Attribute name='region' type='string' value='North Region'/> <MemberObjectGroups> <ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees' displayName='Employees'/> </MemberObjectGroups> </User> <User name='emp4' primaryObjectClass='User' asciipassword='1111'> <Attribute name='firstname' type='string' value='Employee'/> <Attribute name='fullname' type='string' value='Employee Four'/> <Attribute name='lastname' type='string' value='Four'/> <Attribute name='region' type='string' value='South Region'/> <MemberObjectGroups> <ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees' displayName='Employees'/> </MemberObjectGroups> </User> <User name='emp5' primaryObjectClass='User' asciipassword='1111'> <Attribute name='firstname' type='string' value='Employee'/> <Attribute name='fullname' type='string' value='Employee Five'/> <Attribute name='lastname' type='string' value='Five'/> <Attribute name='region' type='string' value='South Region'/> <MemberObjectGroups> <ObjectRef type='ObjectGroup' id='#ID#Employees' name='Employees' displayName='Employees'/> </MemberObjectGroups> </User> |
A continuación, inicie la sesión en la interfaz de usuario final de Identity Manager como emp1 , que se halla al norte del país. Seleccione Delegaciones -> Nuevo. Cambie el criterio de búsqueda a Comienza con y el valor a emp, después elija Buscar. Con este método se debería devolver emp2 en la lista de usuarios disponibles.
Formulario de usuario de organizaciones controladas. Seleccione el formulario de usuario que utilizará un usuario que tenga asignado este rol de administrador cuando cree o edite usuarios afiliados a estas organizaciones controladas del rol de administrador. De manera predeterminada no se selecciona ningún formulario de usuario regla de organizaciones controladas.
Un formulario de usuario asignado mediante un rol de administrador sustituye a cualquier formulario de usuario heredado de la organización a la que pertenece el administrador. No sustituye a los formularios de usuario asignados directamente al administrador.
Las capacidades asignadas al rol de administrador determinan los derechos administrativos que tienen los usuarios asignados al rol de administrador. Por ejemplo, este rol de administrador podría restringirse a la creación de usuarios exclusivamente para las organizaciones controladas especificadas del rol de administrador. En tal caso, deberá asignar la capacidad Crear usuario.
En la ficha Capacidades, seleccione las opciones siguientes.
Capacidades. Son capacidades (derechos administrativos) específicos que los usuarios del rol de administrador tendrán para sus organizaciones controladas. Elija una o más capacidades en la lista de capacidades disponibles y trasládelas a la lista Capacidades asignadas.
Regla de capacidades. Seleccione una regla de manera que, cuando se evalúe al iniciar la sesión el usuario, determine la lista de cero o más capacidades otorgadas a los usuarios que tienen el rol de administrador. La regla seleccionada debe tener el tipo de autenticación CapabilitiesRule.
Puede especificar un formulario de usuario para quienes tienen un rol de administrador. Use la ficha Asignar a usuarios de la vista de creación o edición de rol de administrador para especificar las asignaciones.
El administrador que tiene asignado el rol de administrador utilizará este formulario al crear o editar usuarios en las organizaciones controladas por dicho rol. Un formulario de usuario asignado mediante un rol de administrador sustituye a cualquier formulario de usuario heredado de la organización a la que pertenece el administrador. Este formulario no sustituye a los formularios de usuario asignados directamente al administrador.
El formulario de usuario empleado para editar un usuario se determina por este orden de prioridad:
Si hay un formulario de usuario asignado directamente al administrador, es ése el que se utiliza.
Si no hay ningún formulario de usuario asignado directamente al administrador, pero éste tiene asignado un rol de administrador que controla la organización al que pertenece el usuario que se crea o edita y se especifica un formulario de usuario, es ése el que se utiliza.
Si no hay ningún formulario de usuario asignado directamente al administrador, o asignado indirectamente mediante un rol de administrador, se utiliza el formulario asignado a las organizaciones del administrador (empezando justo después de la Superior).
Sin ninguna de las organizaciones del administrador tiene asignado un formulario, se utiliza el formulario de usuario predeterminado.
Si un administrador tiene asignados varios roles de administrador que controlan la misma organización pero especifican distintos formularios de usuario, aparece un error cuando intenta crear o editar un usuario de dicha organización. Si un administrador intenta asignar dos o más roles de administrador que controlan la misma organización pero especifican distintos formularios de usuario, también aparece un error. Los cambios no pueden guardarse hasta que se resuelve el conflicto.