El control de acceso basado en grafos ( GBAC ) es una forma declarativa de definir derechos de acceso , asignaciones de tareas, destinatarios y contenido en sistemas de información . Los derechos de acceso se conceden a objetos como archivos o documentos, pero también a objetos comerciales como una cuenta. GBAC también se puede utilizar para la asignación de agentes a tareas en entornos de flujo de trabajo. Las organizaciones se modelan como un tipo específico de grafo semántico que comprende las unidades organizativas, los roles y funciones, así como los agentes humanos y automáticos (es decir, personas, máquinas). La principal diferencia con otros enfoques como el control de acceso basado en roles o el control de acceso basado en atributos es que en GBAC los derechos de acceso se definen utilizando un lenguaje de consulta organizacional en lugar de una enumeración total.
Los fundamentos de GBAC se remontan a un proyecto de investigación llamado CoCoSOrg (Configurable Cooperation System) [ [1] ] (en inglés, consulte [2] ) en la Universidad de Bamberg. En CoCoSOrg, una organización se representa como un gráfico semántico y se utiliza un lenguaje formal para especificar los agentes y sus derechos de acceso en un entorno de flujo de trabajo. Dentro del Proyecto C-Org en el Instituto de Sistemas de Información (iisys) de la Universidad de Hof, el enfoque se amplió con características como la separación de funciones, el control de acceso en organizaciones virtuales [3] y el control de acceso orientado a sujetos. [4]
El control de acceso basado en gráficos consta de dos bloques fundamentales:
El grafo organizativo se divide en un nivel de tipo y un nivel de instancia. En el nivel de instancia hay tipos de nodos para unidades organizativas, unidades funcionales y agentes. La estructura básica de una organización se define mediante las llamadas "relaciones estructurales". Definen las relaciones "es parte de" entre unidades funcionales y unidades organizativas, así como la asignación de agentes a unidades funcionales. Además, hay tipos de relaciones específicas como "deputyship" o "informed_by". Estos tipos pueden ser ampliados por el modelador. Todas las relaciones pueden ser sensibles al contexto mediante el uso de predicados .
En el nivel de tipo, las estructuras organizativas se describen de una manera más general. Constan de tipos de unidades organizativas, tipos de unidades funcionales y los mismos tipos de relaciones que en el nivel de instancia. Las definiciones de tipo se pueden utilizar para crear nuevas instancias o reutilizar el conocimiento organizativo en caso de excepciones (para obtener más información, consulte [1] [2] ).
En GBAC se utiliza un lenguaje de consulta para definir agentes que tienen determinadas características o capacidades. La siguiente tabla muestra el uso del lenguaje de consulta en el contexto de una matriz de control de acceso.
La primera consulta significa que pueden leer el informe financiero todos los gerentes que trabajan en la empresa durante más de seis meses, así como los gerentes que están clasificados por la bandera "LeerInformeFinancial".
El informe financiero diario sólo puede ser escrito por el gerente del departamento de control o por los empleados del departamento que estén habilitados para hacerlo (WriteFinancialReport==TRUE).
GBAC se implementó por primera vez en el entorno CoCoS dentro del servidor organizacional CoCoSOrg. [1] En el proyecto C-Org se amplió con funciones más sofisticadas, como la separación de funciones o el control de acceso en entornos distribuidos. También existe una implementación basada en la nube [5] en la plataforma Bluemix de IBM [6] .
En todas las implementaciones, el servidor recibe una consulta de un sistema cliente y la resuelve en un conjunto de agentes. Este conjunto se envía de vuelta al cliente que realiza la llamada como respuesta. Los clientes pueden ser sistemas de archivos, sistemas de gestión de bases de datos, sistemas de gestión de flujo de trabajo, sistemas de seguridad física o incluso servidores telefónicos.
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite journal}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )