IBM Content Manager, Versión 8.5      Soporta:  Oracle, DB2, C++, Java

Listas de control de accesos (ACL) y reglas de nivel de vinculación de ACL

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.

Lista de control de accesos (ACL)

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.

El sistema Content Manager proporciona las ACL preconfiguradas siguientes: SuperUserACL, NoAccessACL y PublicReadACL.
SuperUserACL
Esta ACL consiste en una sola regla que autoriza al usuario preconfigurado de CM ICMADMIN a realizar todas las funciones de CM (AllPrivSet) sobre las entidades vinculadas.
NoAccessACL
Esta ACL consiste en una sola regla que especifica, para todos los usuarios de CM (público), que no se permite ninguna acción (NoPrivSet).
PublicReadACL
Esta ACL consiste en una sola regla que especifica, para todos los usuarios de CM (ICMPUBLC), que se permite la capacidad de lectura (ItemReadPrivSet). Este es el valor predeterminado asignado al DfltACLCode de un usuario.

Reglas de nivel de vinculación de ACL

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:

Nivel de tipo de elemento
La ACL se toma de la definición de vista de tipo de elemento. Si no se especifica ninguna vista o si el tipo de elemento es una parte, la ACL se toma de la vista de tipo de elemento base (que es la misma que la ACL de tipo de elemento).
Nivel de elemento
La ACL se toma de la ACL de elemento. La ACL del elemento es definida por la aplicación durante la creación del elemento, o toma como valor predeterminado la ACL del tipo de elemento o la ACL predeterminada del usuario, en función de la definición del tipo de elemento.
Mixto (elemento o tipo de elemento)
La ACL se toma de la ACL de vista de tipo de elemento o de la ACL de elemento, dependiendo del distintivo de ACL de nivel de elemento establecido durante la definición del tipo de elemento. El nivel de vinculación de ACL mixto es el valor predeterminado para Content Manager Versión 8.
Nivel de biblioteca
La ACL se toma del código de la ACL de biblioteca del parámetro de configuración del servidor de biblioteca.

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.

Reglas de elemento
Nivel de tipo de elemento
Los privilegios se comprueban utilizando la ACL de la vista de tipo de elemento proporcionada o la vista base si no se proporciona ninguna (ACLCODE de la tabla ICMSTITVIEWDEFS).
Nivel de elemento
El privilegio se comprueba utilizando la ACL del elemento (ACLCODE de la tabla ICMSTITEMS001001).
Nivel mixto
Comprueba el distintivo de ACL de nivel de elemento de la definición de tipo de elemento (ITEMLEVELACL de la tabla ICMSTITEMTYPEDEFS) para determinar si se realiza la vinculación de ACL a nivel de tipo de elemento o a nivel de elemento. Para tipos de elemento de direccionamiento de documentos predefinidos del sistema (ROUTINGPROCESS, WORKNODE, WORKLIST), el distintivo de ACL de nivel de elemento es "true" (la ACL se comprueba a nivel de elemento).
Nivel de biblioteca
El privilegio se comprueba utilizando el código de ACL de biblioteca de la configuración del servidor de biblioteca (LIBRARYACLCODE de la tabla ICMSTSYSCONTROL).
Reglas de parte
Nivel de tipo de elemento
El privilegio se comprueba utilizando la ACL de la relación de tipo de elemento para la parte (DFLTACLCODE de la tabla ICMSTITEMTYPEREL).
Nivel de elemento
El privilegio se comprueba utilizando la ACL del elemento (ACLCODE de la tabla ICMSTITEMS001001).
Nivel mixto
Comprueba el distintivo de ACL de nivel de elemento de la definición de tipo de elemento de la parte (ITEMLEVELACL de la tabla ICMSTITEMTYPEDEFS) para determinar si se realiza la vinculación de ACL a nivel de tipo de elemento o a nivel de elemento. Para tipos de elemento de parte predefinidos del sistema (ICMBASE, ICMBASETEXT, ICMBASESTREAM, ICMNOTELOG, ICMANNOTATION), el distintivo de ACL de nivel de elemento es "false" (la ACL se comprueba a nivel de tipo de elemento).
Nivel de biblioteca
El privilegio se comprueba utilizando el código de ACL de biblioteca de la configuración del servidor de biblioteca (LIBRARYACLCODE de la tabla ICMSTSYSCONTROL).


Comentarios

Última actualización: Diciembre de 2013
dcmcm035.htm

© Copyright IBM Corp. 2013.