Cuando un usuario crea un elemento en el sistema IBM® Content Manager, ese usuario debe definir el acceso que los demás usuarios tendrán a ese elemento y las operaciones que podrán realizar sobre ese elemento.
La lista de usuarios que tienen acceso al elemento y las operaciones que pueden llevar a cabo sobre él se denomina lista de control de accesos (ACL). Una ACL se utiliza durante la ejecución para determinar qué operaciones CRUD puede ejecutar un usuario en un elemento o tipo de elemento determinados. Una ACL puede contener uno o más ID de usuario individuales o grupos de usuarios y sus privilegios asociados. Puede asociar una ACL a elementos, tipos de elemento y listas de trabajo. Mientras que los conjuntos de privilegios definen la capacidad máxima de un usuario para utilizar el sistema, una ACL restringe el acceso de dicho usuario a un elemento. Por ejemplo, si la ACL permite suprimir el elemento "foto", pero el usuario John no tiene privilegio de supresión en su conjunto de privilegios, John no podrá suprimir la foto.
Una ACL de usuario es cualquier ACL creada por un usuario con el privilegio UserACLOwner y sólo se puede asignar a elementos. Los usuarios pueden buscar en otras ACL de usuario. Las ACL de usuario no se muestran en el cliente de administración del sistema. Un usuario que se lista en la ACL de usuario y que tiene el privilegio UserACLOwner, o un administrador, pueden modificar una ACL de usuario utilizando las API.
Una entidad controlada está vinculada a una ACL específica mediante el código de ACL. Cuando una ACL está asociada a una entidad controlada, la ACL define la autorización de la entidad vinculada y no se pasan por alto los privilegios de usuario. Se aplica una ACL y se comprueban privilegios de usuario.
Una ACL contiene una o más reglas de ACL. Los usuarios especificados en las reglas de control de accesos pueden ser usuarios individuales, grupos de usuarios o usuarios públicos. La interpretación está determinada por el campo UserKind de una regla. A efectos ilustrativos, los tipos de reglas respectivos se pueden denominar Regla de ACL para usuario, Regla de ACL para grupo y Regla de ACL para público. Si se especifica público, la Regla de ACL para público autoriza a todos los usuarios para que realicen operaciones especificadas en los Privilegios de ACL sobre la entidad vinculada, siempre que los usuarios pasen la comprobación de Privilegios de usuario. Los privilegios de ACL sobre la entidad vinculada para Público se pueden configurar a nivel de sistema. La posibilidad de abrir una entidad vinculada para Público se puede configurar en todo el sistema. El parámetro de configuración se denomina PubAccessEnabled (definido en la tabla ICMSTSysControl). Si ese parámetro está inhabilitado, todas las Reglas de ACL para Público se pasan por alto durante el proceso de control de accesos.
Dentro de la misma ACL, se puede especificar un usuario en más de un tipo de regla. La prioridad de los tres tipos, de mayor a menor, es la siguiente: Regla de ACL para publico, Regla de ACL para usuario y Regla de ACL para grupo. Cuando se aplican comprobaciones de ACL, si se supera algún tipo de regla de prioridad más alta, se resuelve la autorización y se detiene el proceso. Si la comprobación de la Regla de ACL para Público ha fallado, el proceso de comprobación proseguirá para los tipos de regla de prioridad inferior.
En cambio, si falla la comprobación de la Regla de ACL para Usuario, el proceso de comprobación se detiene. La Regla de ACL para Grupo no se comprueba. No es necesario continuar la comprobación para el tipo Grupo, pues si un usuario pasa un control para usuarios individuales, quedará excluido del acceso de tipo Grupo de acuerdo con el algoritmo de control de accesos. La comprobación del control de accesos para el tipo Usuario y el tipo Grupo no es un proceso secuencial. Es una situación en la que se puede realizar cualquiera de los dos procesos, pero no es contraproducente efectuar una comprobación secuencial.
Si el usuario no pasa una comprobación para el tipo Usuario (o si el usuario no tiene una regla en la tabla de Listas de accesos), el proceso de comprobación continuará para el tipo Grupo. Si el usuario pertenece a uno de los grupos y pasa la comprobación de privilegios, se acuerda la autorización y se detiene el proceso. De lo contrario, se deniega el acceso y también se detiene el proceso. Si se especifica un usuario en más de una Regla de ACL para una grupo, el usuario es autorizado por la unión de los Privilegios de ACL de todas estas reglas. Nunca se especifica un usuario en más de una Regla de ACL para usuario.
Nivel de vinculación de ACL es un parámetro de configuración que permite que el usuario elija qué ACL se utiliza para la comprobación de ACL. Una ACL es una comprobación adicional utilizada durante la ejecución para determinar qué operaciones CRUD puede ejecutar un usuario en un elemento o tipo de elemento determinados. Además de satisfacer una comprobación de privilegios generales, la comprobación de ACL debe satisfacer el elemento o tipo de elemento determinado, dependiendo de la acción.
La comprobación de ACL se basa en las reglas siguientes:
El parámetro de configuración, Nivel de vinculación de ACL permite al usuario elegir la ACL que se utilizará para realizar la comprobación de privilegios en operaciones CRUD. Las opciones del nivel de vinculación son las siguientes:
Las “reglas” siguientes describen cómo se realiza la comprobación de privilegios de ACL en base al nivel de vinculación de ACL y a la clasificación de tipo de elemento.