Modelo de seguridad de control de acceso basado en atributos (ABAC)
El control de acceso basado en atributos (ABAC) se utiliza para controlar el acceso a un objeto (caso, reporte, propiedad) mediante la comparación de las características del objeto con los atributos del operador que solicita acceder al objeto. Las políticas de control de acceso determinan si usuarios específicos pueden acceder a los objetos. Esto sucede independientemente del rol del grupo de acceso y puede aprovechar la funcionalidad de herencia de Pega Platform™. Por ejemplo, puede asignar el atributo Cliente a un caso para decidir si un usuario tiene permiso para borrar el caso en función de la presencia o no del cliente en una lista de nombres de clientes de los cuales el usuario es responsable.
Las restricciones que limitan de forma amplia a los usuarios por su membresía en los roles del grupo de acceso se configuran mediante el control de acceso basado en roles (RBAC). Por el contrario, el ABAC permite ejercer un control más minucioso de la seguridad a nivel de las filas y las columnas en función de atributos de usuario definidos. El ABAC suplementa y extiende las capacidades de seguridad del RBAC. Los casos de uso más adecuados para un enfoque ABAC incluyen aquellos que ocultan la información a los usuarios que no posean un nivel de autorización apropiado o que les permiten a los usuarios ejecutar acciones solo si están asignados a un departamento en particular. La siguiente tabla muestra la utilización del atributo Clearance Level para controlar el acceso a las tareas:
Rol del usuario | Nivel de autorización | Leer reportes | Enviar reportes | Ocultar reportes |
---|---|---|---|---|
Agente | Sí | No | No | |
Agente | Nivel 2 | Sí | Sí | No |
Agente | Nivel 3 | Sí | Sí | Sí |
Para configurar el control de acceso basado en atributos en su aplicación, primero determine los atributos utilizados con propósitos de control de acceso. Luego, defina la condición de la política de control de acceso que compara los valores de atributo del objeto con los del usuario. Por último, defina la política de control de acceso para especificar la acción controlada por la evaluación de la lógica de la condición.
Condiciones de la política de control de acceso
Las restricciones en el ABAC se ejecutan mediante políticas de control de acceso que especifican el tipo de acceso permitido. Para cada política, una o más condiciones de política de control de acceso determinan si se aprueba el acceso o no.
Después de configurar los atributos que planea utilizar, configure el formulario de reglas de Condición de la política de control de acceso (Rule-Access-PolicyCondition). En un formulario de reglas de Condición de la política de control de acceso, usted define un conjunto de filtros y agrega una lógica que combine las condiciones para la política de control de acceso. El formulario de reglas describe las condiciones bajo las cuales se aprueba el tipo de acceso al objeto protegido. Si cumple con las condiciones en el formulario de reglas de Condición de la política de control de acceso, el usuario puede ejecutar las acciones definidas en la política de control de acceso. Por ejemplo, las condiciones definidas en un formulario de reglas de Condición de la política de control de acceso pueden garantizar que solo el gerente de un equipo específico de representantes de asistencia pueda aprobar los créditos de servicio que los miembros de ese equipo procesan.
En el formulario de reglas de Condición de la política de control de acceso, puede ingresar múltiples conjuntos de condiciones con valores de lógica de filtro. Cada especificación de lógica de filtro está asociada con una regla de decisión de acceso. Cada conjunto de filtros compara un atributo de caso (valor de propiedad) con cualquier valor de propiedad del portapapeles que desee durante el tiempo de ejecución. Este valor de comparación representa, por lo general, información relacionada con el usuario que intenta ingresar al objeto protegido.
Políticas de control de acceso
Después de configurar el formulario de reglas de Condición de la política de control de acceso, configure un formulario de reglas de Política de control de acceso (Rule-Access-Policy). En el formulario de política, puede seleccionar una de las siguientes acciones que limitan lo que el usuario puede hacer al acceder a un objeto:
- Leer: El usuario puede abrir un caso que cumpla con las condiciones de la política o ver los datos para el caso en listas, reportes, búsquedas, etc.
- Actualizar: El usuario puede crear un caso que cumpla con las condiciones de la política o actualizar los datos para un caso que cumpla con las condiciones de la política.
- Descubrir: El usuario puede ver información limitada (definida por un desarrollador) sobre un caso que no cumple con las condiciones de la política para Leer, pero que sí cumple con las condiciones de la política para Descubrir.
- Eliminar: El usuario puede eliminar un caso que cumpla con las condiciones de la política.
- Lectura de propiedad: El usuario tiene una visibilidad restringida de los valores de propiedad, incluidos los valores de propiedad con acceso para leer y actualizar.
Puede definir las políticas de control de acceso solo para las clases Assign-, Data-, Index- y Work- en la base de datos de Pega Platform. Las políticas de control de acceso pueden heredar atributos de múltiples clases. Las condiciones de política son una combinación de todas las políticas relevantes y facilitan el acceso solo cuando se cumple con todas las condiciones de política. A diferencia del RBAC, las políticas del ABAC aprovechan la funcionalidad de herencia que está integrada en Pega Platform.
Si una política de ABAC aprueba el acceso, el RBAC también se aplica y deberá aprobar el acceso.
Asignación de atributos
Para configurar el control de acceso basado en atributos en su aplicación, defina los atributos de usuario y de objeto que utiliza. Puede definir los atributos de usuario de varias maneras. Por ejemplo, si utiliza un proveedor de identidades (IDP) externo para autenticar a los usuarios, puede asignar los atributos a los usuarios en la información almacenada en el IDP. Luego, mapea esos atributos en la aplicación de Pega Platform al registro de operador del usuario o a una página de datos a nivel del solicitante. De forma opcional, puede añadir un atributo para un objeto agregando el valor del atributo a un campo de propiedad de la clase del objeto.
Puede utilizar tres tipos de datos para representar un atributo: un valor de cadena único, una lista de valores de cadena y un valor numérico.
Valor de cadena único
Puede utilizar propiedades de tipo de cadena para definir atributos específicos que deben cumplirse para que se le apruebe el acceso a un usuario. En el siguiente ejemplo, se le aprueba el acceso al usuario cuya Aprobación de seguridad sea Top Secret:
Operator.SecurityClearance = “Top Secret”
Lista de valores de cadena
Puede analizar una lista de valores de cadena separados por coma utilizando los operadores de comparación especiales All of y One of. Por ejemplo, si las políticas de seguridad requieren un nivel de Aprobación de seguridad que sea Top Secret o Secret, el operador One of aprueba el acceso a los usuarios que tengan cualquiera de los dos atributos. El operador All of evalúa todos los atributos en la lista de valores de cadena y solo aprueba el acceso si se cumplen todos los atributos.
Valor numérico
Puede representar atributos como un tipo de dato de valor numérico. Los valores de atributo deben mapearse a una propiedad numérica de máximo nivel tanto en el objeto (caso) como en el sujeto (operador). Esto es útil si las especificaciones de seguridad requieren una jerarquía de acceso. Por ejemplo, si utiliza los atributos Top Secret, Secret y Unclassified, puede crear los siguientes mapeos numéricos:
Nombre del atributo | Propiedad numérica |
Top secret | 1 |
Secret | 2 |
Unclassified | 3 |
Luego puede utilizar solo una condición con una comparación numérica para determinar el nivel de acceso:
Operator.SecurityClearance >= .SecurityClearance
Compruebe sus conocimientos con la siguiente actividad.
This Topic is available in the following Module:
¿Quiere ayudarnos a mejorar este contenido?